【问题标题】:How to update credit card payment in stripe如何在条带中更新信用卡付款
【发布时间】:2021-09-19 08:34:36
【问题描述】:

我有一个使用 nodejs 和 reactjs 让用户订阅我的网站的流程。 因此,当用户登录时,他可以看到一些包。 当用户选择一个包并输入卡详细信息时,我会执行以下操作:

1 - 根据用户详细信息(姓名、电子邮件等,自用户登录后获取)创建新客户

2 - 根据选择的 price_id 为新创建的客户创建订阅

3 - 在前端收集卡号/cvc/到期日期:

const cardElement = elements.getElement(CardElement);

4 - 从前端调用条带化:

const { error, paymentIntent } = await stripe.confirmCardPayment(clientSecret, {
    payment_method: {
        card: cardElement,
        billing_details: {
            name: name,
        }
    }
}); 

我不确定这是否是最好的流程。但是,它正在工作。 我还管理更新订阅并取消它。 但是,我很难更改信用卡详细信息。 我从文档中了解到,我应该使用与创建卡支付时相同的调用。 所以我再次收集信用卡号码并再次调用相同的功能:

const { error, paymentIntent } = await stripe.confirmCardPayment(clientSecret, {
    payment_method: {
        card: cardElement,
        billing_details: {
            name: name,
        }
    }
}); 

但是,调用是针对:

https://api.stripe.com/v1/payment_intents/pi_XXXX/confirm        

并返回带有此信息的 400:

type: "invalid_request_error", code: "payment_intent_unexpected_state", doc_url: "https://stripe.com/docs/error-codes/payment-intent-unexpected-state"

我应该使用其他东西来更新信用卡信息吗?还是我叫错了?

【问题讨论】:

    标签: node.js reactjs stripe-payments


    【解决方案1】:

    您调用confirmCardPayment() 的初始流程是正确的,这也是Stripe 文档中推荐的内容:https://stripe.com/docs/payments/accept-a-payment?platform=web&ui=elements

    很难更改信用卡详细信息。我从文档中了解到,我应该使用与创建卡付款时相同的调用。

    要仅收集卡详细信息并创建 PaymentMethod,您应该从 Stripe.js 调用 createPaymentMethod() [0]。这会将客户的卡转换为像 pm_123 这样的 PaymentMethod。

    然后,您将该 PaymentMethod 发送到您的后端服务器,在那里(使用您的服务器端 Stripe API 库,如 stripe-node),您会将其附加到 Stripe 客户 [1] 并更新为客户的默认 PaymentMethod定期付款 [2]。

    [0]https://stripe.com/docs/js/payment_methods/create_payment_method

    [1]https://stripe.com/docs/api/payment_methods/attach

    [2]https://stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method

    【讨论】:

      猜你喜欢
      • 2019-02-25
      • 2021-10-12
      • 2013-01-25
      • 2012-07-11
      • 1970-01-01
      • 2014-03-14
      • 2021-01-22
      • 2012-11-27
      • 1970-01-01
      相关资源
      最近更新 更多