Stripe Payment Intent 手动确认测试

Stripe Payment Intent manual confirmation for testing

我有一个设置,其中后端将创建一个 Stripe Source,并将重定向 url 传递到前端,以便将用户发送到以输入付款详细信息并提交付款。在测试环境中,这里还返回了一个url,基本上可以一键确认订单,然后处理webhook。

现在我正在尝试迁移到付款意向,但不再有重定向 url。 我可以将 client_secret 传递给前端,他们可以进行所有确认,但是对于测试来说,有没有一种方法可以以某种方式类似于访问此页面的来源?

谢谢

一般来说,对于 iDEAL,建议使用 webhook 来接收付款通知和自动确认,因为例如,在验证后,客户的浏览器可能会关闭或者他们的设备可能 运行 没电等付款,然后才能通知后端重新确认 PaymentIntent [0].

如果您确实想使用手动确认,则应按照此处的步骤操作:https://stripe.com/docs/payments/ideal/accept-a-payment but create the PaymentIntent with confirmation_method=manual [1]

stripe.confirmIdealPayment 会自动将客户重定向到该页面以“授权”或“失败”付款。

如果您想手动处理重定向而不是使用 stripe.confirmIdealPayment,我建议您看一看。 : https://stripe.com/docs/payments/ideal/accept-a-payment#web-handle-redirect

客户在他们的银行网站或移动应用程序上完成付款后,他们将被重定向回您的网站,您可以使用查询参数拨打API电话以确认付款。

对于自动化测试,您希望在第一次通过测试支付页面手动测试此流程(即点击“授权测试支付”或“失败测试支付”)时保存来自 Stripe 的响应,然后模拟随后。

如果您想尽可能轻松地进入测试授权页面进行测试,您可以在创建 PaymentIntent 时包含以下参数。响应应包含 next_action.redirect_to_url.url 参数,在浏览器中打开 link 将显示 Stripe 测试身份验证页面。

cURL 示例

curl https://api.stripe.com/v1/payment_intents \
  -u sk_test_...: \
  -d amount=2000 \
  -d currency=eur \
  -d confirm=true \
  -d payment_method_types[]=ideal \
  -d payment_method_data[type]=ideal \
  -d payment_method_data[ideal][bank]=ing \
  -d return_url="http://localhost/return"