Javascript 如何将客户链接到条带签出订阅?

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

我遇到的问题是,每次客户退房时,他们都会有一个新的客户id,该id链接到客户的电子邮件

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签出的限制,它不处理成员管理。如果您希望现有客户能够注册其他产品,我建议在您的应用程序上建立一个会员区。如果用户返回,他们登录到您的站点,您完全跳过结帐表单,您只需使用他们保存的卡进行收费或开始订阅即可。