我按照本教程使用 php 集成 stripe: https://phppot.com/php/manage-recurring- payments-using-stripe-billing-in-php / (我的网站有一些订阅计划并重定向到 stripe 结账形式 ) 。然而,对于最后一步,我决定不使用 webhooks,我选择像本教程中那样存储信息https://www.codexworld.com/stripe-checkout- payment-gateway-integration-php/ (我知道不用于订阅,但我只是使用本教程中的 success.php 代码来收集客户信息和付款意图详细信息)。我测试了它,完成了条带结帐表单,成功后我打印了结帐会话对象,并注意到该对象的 payment_intent 字段为空!因此,尽管付款已成功完成并且显示在仪表板上,但我无法加载付款意图对象并获取其信息。知道为什么吗?
编辑:根据结帐会话的文档(https://stripe.com/docs/api/checkout/sessions/object), payment_intent 字段存储支付模式下结帐会话的 PaymentIntent ID。就我而言,我有一种订阅模式,而不是付款模式。但是,如果我仍然想获取 $intent->status ,我可以使用会话对象 $checkout_session-> payment_status 的 payment_status 字段吗?如果订阅付款确实没有 paymentintents ,那么为什么付款会出现在仪表板上的付款部分?
我正在尝试以消除比例行为的方式更新我的订阅。这就是我所做的,(它不起作用,在打印 $subscription_object 时,我没有看到任何 proration_behavior 字段,尽管它是在订阅对象的 API 文档中编写的)
$subscription_obj = \Stripe\Subscription::retrieve($checkout_session->subscription);
\Stripe\Subscription::update($subscription_obj->id, [
'proration_behavior' => 'none',
]);
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
$subscription_obj->proration_behavior = 'none';
$subscription_obj->save();
Run Code Online (Sandbox Code Playgroud)