Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 将paymentMethod添加到试用订阅,然后验证信用卡_Node.js_Reactjs_Stripe Payments_Payment Method - Fatal编程技术网

Node.js 将paymentMethod添加到试用订阅,然后验证信用卡

Node.js 将paymentMethod添加到试用订阅,然后验证信用卡,node.js,reactjs,stripe-payments,payment-method,Node.js,Reactjs,Stripe Payments,Payment Method,我正在与react node.js进行条带集成 虽然创建订阅时没有试用,但我没有任何问题,而且所有用例都非常简单 但是,我正在尝试创建免费试用版而不收集信用卡详细信息,稍后试用期到期时,我想收集信用卡详细信息 服务器端:创建不带付款方式的试用订阅: const subscription = await stripe.subscriptions.create({ customer: customer.id, items: [{ price: priceId }], tr

我正在与react node.js进行条带集成

虽然创建订阅时没有试用,但我没有任何问题,而且所有用例都非常简单

但是,我正在尝试创建免费试用版而不收集信用卡详细信息,稍后试用期到期时,我想收集信用卡详细信息

服务器端:创建不带付款方式的试用订阅:

  const subscription = await stripe.subscriptions.create({
    customer: customer.id,
    items: [{ price: priceId }],
    trial_end: expiredAt.unix(),
    expand: ['latest_invoice.payment_intent'], 
  });
客户端:试用期结束后,我想收集信用卡详细信息(paymentMethod),检查是否由于失败或3ds而需要用户操作,并通过更新客户的默认付款方式更新订阅:

  const updateCustomerDefaultPaymentMethod = await stripe.customers.update(
    customerId,
    {
      invoice_settings: {
        default_payment_method: req.body.paymentMethodId,
      },
    }
  );
如何更新订阅以执行paymentIntent或向用户收费,并将状态为“in_complete”的订阅对象返回到客户端,与创建订阅时没有试用期相同?
目前,在运行我的代码时,我一直处于“活动”状态,因为第一张发票处于“已付款”状态,价格为“0$”。

在免费试用的情况下,创建订阅不会导致初始付款,Stripe会自动为您创建一个隐藏的帐户。此SetupIntent用于收集客户的付款方式。因此,在,客户需要返回到您的应用程序以输入其信用卡详细信息,然后您可以使用SetupIntent:

一旦设置了付款方式并将其保存给客户(作为),试用结束时将使用该付款方式支付订阅的第一张发票。(最后一个常见问题),因此如果付款失败,条带将尝试使用常规功能重新收取付款

简而言之,您需要使用创建(并附加到订阅)的SetupIntent来保存用户的支付信息