我正在尝试在我的web应用程序上实现条纹支付,Node和react是堆栈。
- 在后端创建条带订阅
newSubscription = await stripe.subscriptions.create({
customer: {{customerid},
items: [
{
price: {{price}},
},
],
payment_behavior: 'default_incomplete',
expand: ['pending_setup_intent'],
trial_period_days: 7,
off_session: true,
});
- 当我添加trail period时,我会得到客户端机密,比如"seti_XXXXX">
- 当没有线索的时候,我会把客户的秘密称为"pi_XXX">
- 当我使用支付意向时,秘密密钥条纹元素正在工作,交易正在发生
- 当我使用setup intent客户端secret时,当trial active不与stripe元素一起工作时,我会得到它。它显示了一些错误,说没有找到付款意向
我试图将两个客户端秘密都传递给元素,但当trail处于活动状态时。在这种情况下,我将获得setup-intent客户端机密,以便元素通过一些错误。`
{
"error": {
"code": "resource_missing",
"doc_url": "https://stripe.com/docs/error-codes/resource-missing",
"message": "No such payment_intent: 'seti_XXXXXXXXXXXXX'",
"param": "intent",
"request_log_url": "https://dashboard.stripe.com/test/logs/req_XXXXXXXXXXX",
"type": "invalid_request_error"
}
}
`如何解决这个问题,我想要trail激活订阅,当trail结束时,用户必须获得该金额。
当您在订阅中包含试用期时,最初会生成一张0美元的发票,无需付款。通过这种方式,您可以创建SetupIntent,而不是PaymentIntent。您可以在ID前缀中看到它:seti_…
。由于没有立即付款,SetupIntent允许您存储付款详细信息,订阅可以将其用于定期付款。
因此,当用户提交表单时,您应该使用confirmSetup方法。