问题描述
我目前正在按条创建客户,并为其分配定期计划以接收定期每月付款。
//Create Customer:
$customer = \Stripe\Customer::create(array(
'source' => $token,'email' => $_POST['email'],'plan' => "monthly_recurring_setupfee",));
// Charge the order:
$subscription = \Stripe\Subscription::create(array(
"customer" => $customer->id,"items" => array(
array(
"plan" => $plan->id,),));
但是几个月后,我看到很少有客户仍可以使用我的服务,但是他们的定期付款失败。
我知道有一个Webhook,但是我无法弄清楚它并且无法测试webhook,无论它是否正常工作。 如何检查定期付款失败还是成功
解决方法
您对网络钩子是正确的:这是一种方法。 它们使您可以实时获取定期付款信息。 另外,我建议将订阅ID和Stripe的客户ID一起保存在您的用户实体中。
该过程如下:
- 您可以使用以下指南为您的终端创建一个Webhook:https://stripe.com/docs/webhooks
- 您对其进行了测试:https://stripe.com/docs/testing#webhooks
- 您根据收到的网络鸣叫来提供服务。
以下是有关订阅Webhooks的详细文档:https://stripe.com/docs/billing/subscriptions/webhooks
如果仍然很复杂,您可以使用一些后台作业来检查订阅状态。
您有两个选择:
- 遍历Stripe中的所有订阅,并为订阅已过期的用户停止服务。这种情况下的条带终结点将为https://stripe.com/docs/api/subscriptions/list
- 仅当您将订阅ID(最好是订阅续订/结束日期)存储在用户实体中时,此选项才有效。遍历系统中具有过期订阅日期的用户列表,从Stripe获取其订阅并检查订阅状态。在这种情况下使用的Stripe API:https://stripe.com/docs/api/subscriptions/retrieve