There was no confirmation page, or any way to really regret the purchase (that I could find) other than contacting the seller, which I did to clear up the shipping snafu. (I still wanted the item, just not to that address.)
I've never opted for Apple Pay since, only ever just using card payments instead. It's marginally more involving when you've got cards setup with a secrets manager, but it's worth it to significantly reduce the risk of accidental purchase.
If the purchase flow in this case made use of Apple Pay than I for one find the "butt dial" explanation very plausible.
Speaking as someone who temporarily changes addresses often, ew. That's not good.
I think it's really actually nice that everything is there on one page and consistent to your platform [1], but I can see missing it and moving ahead by mistake.
[1] Android supports this as well https://github.com/luruke/browser-2020#payment-request-api
I made another purchase with the seller that I mentioned in my comment about the "accidental" purchase and verified that the shipping address was not part of the pay sheet, the way it is in the "detailed request" demo, so I guess they just haven't set it up right. I'm going to contact them with a link to that page and your comment so they know who to thank – hopefully they'll get around to fixing it! Thanks again for sharing!
I had almost exclusively made purchases through apps for digital goods, but I was really surprised when I did it for the first time on a website for a physical good. The thumbprint or double-click/face scan should be a clue about money changing hands (also implying it's the final step), but I can see how a mistake gets made.
No UI is 100% free of being misinterpreted by users of course. But I'm not sure the Apple Pay UI is to blame for either your mistake or Nassim's.
That said, I did get fooled by the lack of shipping address information. It was my first ever purchase with Apple Pay (not including app store purchases, where shipping address doesn't matter much) and I guess I just assumed I'd be inputting shipping details in the next step. It was never displayed on the pay sheet, and I think this may be due to how that particular web shop is set up – you specify shipping details after inputting payment details, but only for card purchases, for Apple Pay it just gets your Apple data.
I actually verified this by making another purchase from them (wherein I had no need to change the shipping information) and it never displayed shipping details on the pay sheet. It did show card information though.
Either way, inputting card details is only marginally more involving when using a secrets manager so I'm just gonna continue to opt for that when possible. Fool me once, and all that.
I've implemented the Apple Pay API in an iOS application, and there's no way to get shipping info without explicitly requesting it from the user. The only options I can think of are that:
1. If it's an app, it has access to your contacts, and it's finding your personal contact info and using that without asking you (seems unlikely for a bunch of reasons)
2. You've given the website your shipping information previously, and it's just remembering that
But there's no way for a website/app to just "get your Apple data"