我正在使用stripe-php库实现stripe订阅,遵循这个https://stripe.com/docs/billing/subscriptions/fixed-price文档
使用失败的付款方式模拟客户订阅,在发票状态打开的情况下成功生成条带订阅对象。
问题是在我的后端实现重试发票时,我的代码如下:
// retrieve new payment method (valid one)
$payment_method = \Stripe\PaymentMethod::retrieve (
$request->paymentMethodId
);
// attach customer to payment method
$payment_method->attach([
'customer' => $request->customerId,
]);
// update customer default payment method
\Stripe\Customer::update($request->customerId, [
'invoice_settings' => [
'default_payment_method' => $request->paymentMethodId
]
]);
// retrieve invoice object
$invoice = \Stripe\Invoice::retrieve($invoiceId, [
'expand' => ['payment_intent']
]);
在stripe dashboard上,客户默认付款方式已成功更新为最新的付款方式(有效卡),但订购发票仍保持未结状态。
请帮忙,有人也面临这个问题吗?恐怕我错过了条纹文档的一些步骤。
如评论中所述;附加新的PaymentMehod
不会重新尝试付款。
你需要:
PaymentIntent
,而是将发票PaymentIntent
的JavaScript
,调用Stripe。js'stripe.confirmCardPayment(…)
方法请注意,SetupIntent
方法可能不需要上述内容,这对订阅很有用,并允许所谓的“会话外”支付。