Split/Deferred payments through apple pay

2019-06-01 09:14发布

问题:

On the getting started page for Apple Pay, it says that Apple Pay supports "partial shipments." How is this implemented in practice? I know how to get a token from a successful PKPayment. Once I get that token, how do I use it to implement multiple sub-order payments through my payment gateway?

For example, say the user validates a total $100 purchase through Apple Pay of two separate suborder shipments ($40 and $60 each) and I now have an associated token for the $100 order. Because of restrictions on some networks, we can't capture each payment until the associated item has been shipped, and they ship at different times.

Do I have the ability to authorize and capture payments of any amounts using that token?

What is the best approach to authorizing and capturing those sub orders?

Do I auth for the total ($100) and then auth for each sub total ($40, $60) at shipment and then capture for each sub total? If so, then I will be potentially authorizing more than the necessary total ($200), and that doesn't seem right. Is it valid to just skip auth for the total, auth for each sub total, and then capture the sub totals as they ship?

回答1:

You can't capture an authorization more than once. For stripe you would need to save the token to a customer, and charge the customer for each shipment separately. This isn't only the best way it is the only way to do it.

Once you have a token and attach it to the customer object in stripe, you have the ability to charge it at any time & any amount up until the expiration date or if they remove the card from their apple pay account, like you would any other card regardless of the initial authorization.

The rest of your questions will vary by opinion as there are different ways of doing it, but here is how I would charge this type of order. I think this method benefits both the business and the customer, in addition to keeping stripe/apple happy. This isn't apple pay specific, I would treat most orders with these requirements the same. Also keep in mind apple pay supports it, but it is not required. You can collect all up front regardless of shipment dates.

  1. Generate token from PKPayment for $100
  2. Create customer(if needed) & add token to customer
  3. Create charge against customer using that card for $100 without capture
  4. Within 7 days assess expected shipping dates.
  5. Once assessment is complete immediately capture only the amount expected to ship within a week on the initial charge. In your example this is where I would capture $40 for the first charge. If nothing is expected to be captured issue a complete refund.
  6. Any shipments beyond the 7 days, create individual charges for the shipments using the customer object, not the token. Again in your example this is when the $60 shipment goes out charge that here.

As long as the second shipment charge doesn't happen to go out earlier than the 7 days this would prevent any authorizations overlapping resulting in holds of more than the initial amount at any given moment. I would treat almost any transaction like this apple pay or not.