Javascript 如何将客户链接到条带签出订阅?
我遇到的问题是,每次客户退房时,他们都会有一个新的客户id,该id链接到客户的电子邮件Javascript 如何将客户链接到条带签出订阅?,javascript,stripe-payments,Javascript,Stripe Payments,我遇到的问题是,每次客户退房时,他们都会有一个新的客户id,该id链接到客户的电子邮件 var stripe = Stripe('pk_test_xxx', { betas: ['checkout_beta_4'] }); var checkoutButton = document.getElementById('checkout-button'); checkoutButton.addEventListener('click', function () { stripe.re
var stripe = Stripe('pk_test_xxx', {
betas: ['checkout_beta_4']
});
var checkoutButton = document.getElementById('checkout-button');
checkoutButton.addEventListener('click', function () {
stripe.redirectToCheckout({
items: [{
plan: 'plan_xxx',
quantity: 1
}],
customerEmail: 'test15@xxx.com',
clientReferenceId: 'cus_xxx',
successUrl: window.location.protocol + '//domain.test/en/accounts/billing-success',
cancelUrl: window.location.protocol + '//domain.test/en/accounts/billing-cancel',
}).then(function (result) {
if (result.error) {
var displayError = document.getElementById('error-message');
displayError.textContent = result.error.message;
}
});
});
我以为clientReferenceId
会保留条带客户id。似乎不是这样。订阅具有新的客户id。如中所述,如果签出成功,则传递给clientReferenceId
的值将包含在通过webhook发送的数据中
您需要在条带仪表板中定义webhook地址。签出完成后,将调用webhook,以便您可以在支付成功后执行所需的所有步骤。如Stripe API文档中所述,您只需将
客户键设置为所需的客户ID,而不是clientReferenceId
。
在对另一个SO帖子的回复中也提到了这一点:
为了更好的安全性,我还建议您在后端创建一个会话,并将sessionID
传递到前端,然后只使用sessionID调用redirectToCheckout
这是Stripe签出的限制,它不处理成员管理。如果您希望现有客户能够注册其他产品,我建议在您的应用程序上建立一个会员区。如果用户返回,他们登录到您的站点,您完全跳过结帐表单,您只需使用他们保存的卡进行收费或开始订阅即可。