提问人:Neel Mani 提问时间:11/14/2023 最后编辑:Neel Mani 更新时间:11/14/2023 访问量:50
在 Stripe 中创建支付方式
Create a payment method in stripe
问:
我希望在 stripe 中创建一个付款方式,并使用 java -spring boot 将其附加到现有客户。 条纹文档
共享使用卡创建付款方式的示例代码。 代码是
PaymentMethodCreateParams params =
PaymentMethodCreateParams.builder()
.setType(PaymentMethodCreateParams.Type.CARD)
.setCard(
PaymentMethodCreateParams.Card.builder()
.setNumber("4242424242424242")
.setExpMonth(8L)
.setExpYear(2026L)
.setCvc("314")
.build()
)
.build();
PaymentMethod paymentMethod = PaymentMethod.create(params);
但是在运行此代码时,我们得到了响应
{
"error": {
"message": "Sending credit card numbers directly to the Stripe API is generally unsafe. We suggest you use test tokens that map to the test card you are using, see https://stripe.com/docs/testing. To enable raw card data APIs in test mode, see https://support.stripe.com/questions/enabling-access-to-raw-card-data-apis.",
"request_log_url": "https://dashboard.stripe.com/test/logs/req_9c6QitRqUgqM1i?t=1699942446",
"type": "invalid_request_error"
}
}
进一步阅读后,我了解到我们需要使用 stripe.js 在前端接受卡详细信息并获取卡令牌,我们将将其传递给服务器端。
我的问题是,在从客户那里获得令牌后,我如何从中创建付款方式并将其附加到现有客户。在这方面的任何帮助将不胜感激。
答:
我的问题是,在从客户那里获得令牌后,我如何从中创建付款方式并将其附加到现有客户。
我真的不明白这个问题,令牌和支付方式在这里真的不是不同的对象,但我理解这种混淆。
值得一提的是,Stripe 确实有一个函数,您可以在前端调用以创建支付方式。
现在,如果我没记错的话,你仍然不能用它对卡片细节进行硬编码,它会要求你改用 Elements,但它并不真正相关,因为这个函数真的不会在非常具体的用例之外使用。
原因是收集付款方式不仅仅是收集卡详细信息,您还需要执行其他步骤(即身份验证)来授权您的应用程序稍后从保存的卡中扣款。这是此函数不执行的操作,因此除非您稍后有一些逻辑来执行这些操作,否则不应使用它。
如果您想收集付款方式以备将来使用,并且上述文档不相关,则有两种选择:
- 保存付款方式而不付款 - 使用设置 Intent。
成功确认后,这将自动为您创建付款方式。如果你向它添加一个,它也会自动将其附加到它们。customer
- 使用付款意向保存付款方式。
同样的逻辑也适用于这里,只是流中也有电荷。
这些是您应该使用的方法,而不是创建付款方式,因为它们将自动执行允许您以后使用付款方式所需的任何其他步骤。
评论