如何使用 Stripe PaymentIntent 处理产品 availability/taxes/shipping?

How to handle product availability/taxes/shipping with Stripe PaymentIntent?

使用 PaymentIntents API 我们设置了一个带有总计的 Intent 并将用户带到 Checkout。 在用户点击 "Buy".

之后,在访问我的服务器之前,我不想确认销售有几个原因

1) 商品还有货吗?另一个用户可能通过结帐更快。

2) 用户的最终税是多少(税率查询可能会很昂贵)?显示用户 "Estimated taxes"。不想为每个去结账的人做最后的计算。许多保释金。

3) 运费报价可能不准确(我的情况并非如此)但也取决于州(美国)可能会再次更改税费。

Stripe 要我们在前端确认付款。我该如何解决这些问题?

最佳做法是什么?由于费用 API 允许我们访问服务器,弄清楚所有这些事情,然后以最终金额开始收费。或在需要时退出。

您可以在服务器端通过以下方式确认https://stripe.com/docs/payments/accept-a-payment-synchronously

对于 handle 产品,您可以将它们放入 PaymentIntentCreateParams 的元数据中,如下所示

Product order = new Product();
Map<String, String> metadata = new HashMap<>();
metadata.put("productId", order.getProductId());
metadata.put("description", order.getDescription());

PaymentIntentCreateParams paymentIntentParams =  PaymentIntentCreateParams.builder().putAllMetadata(metadata)
    .setAmount(amountPaymentIntent).setCurrency(currencyPaymentIntent).setCustomer(customer.getId())
    .build();

 PaymentIntent paymentIntent = PaymentIntent.create(paymentIntentParams);