如何检查条纹定期付款是否失败

时间:2020-08-25 14:46:03

标签: php stripe-payments stripe-api

我目前正在按条创建客户,并为其分配定期计划以接收定期每月付款。

//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,无论它是否正常工作。 如何检查定期付款失败还是成功

1 个答案:

答案 0 :(得分:2)

您对网络钩子是正确的:这是一种方法。 它们使您可以实时获取定期付款信息。 另外,我建议将订阅ID和Stripe的客户ID一起保存在您的用户实体中。

该过程如下:

  1. 您可以使用以下指南为您的终端创建一个Webhook:https://stripe.com/docs/webhooks
  2. 您对其进行了测试:https://stripe.com/docs/testing#webhooks
  3. 您根据收到的网络鸣叫来提供服务。

以下是有关订阅Webhooks的详细文档:https://stripe.com/docs/billing/subscriptions/webhooks

如果仍然很复杂,您可以使用一些后台作业来检查订阅状态。

您有两个选择:

  1. 遍历Stripe中的所有订阅,并为订阅已过期的用户停止服务。这种情况下的条带终结点将为https://stripe.com/docs/api/subscriptions/list
  2. 仅当您将订阅ID(最好是订阅续订/结束日期)存储在用户实体中时,此选项才有效。遍历系统中具有过期订阅日期的用户列表,从Stripe获取其订阅并检查订阅状态。在这种情况下使用的Stripe API:https://stripe.com/docs/api/subscriptions/retrieve