Stripe何时可以成功付款?

Jas*_*ale 1 php payment-gateway stripe-payments

我正在创建一个Web应用程序:

付款成功且卡已收费(不拒收)时,我需要更新数据库。

我的代码在这里:我首先创建客户。(顺便说一句,变量已声明,一切正常)

$customer = \Stripe\Customer::create(array(
      'email' => $_POST['stripeEmail'],
      'source'  => $_POST['stripeToken'],
      'description' => $stripeEmail
      ));
Run Code Online (Sandbox Code Playgroud)

然后为客户创建订阅:

$subscription = \Stripe\Subscription::create(array(
      "customer" => $customer->id,
      "plan" => $planName
      ));
Run Code Online (Sandbox Code Playgroud)

我的问题:我是否需要创建一个网络挂钩来检测付款是否成功?还是成功提交表单后成功?

Ywa*_*ain 5

在正常情况下,当您创建订阅时,Stripe将立即尝试向客户收费(使用Stripe进行的订阅需预先付费)。如果付款尝试失败,则API将立即返回错误,并且不会创建任何订阅。

在这种情况下,您不需要使用Webhook。只需使用常规的错误处理并检查\Stripe\Error\Card调用时是否引发异常\Stripe\Subscription::create(...)

请注意,如果没有立即记帐的内容,则订阅创建将始终成功。这可能在各种情况下发生:

  • 如果trial_end在创建订阅时提供参数

  • 如果计划有默认的试用期

  • 如果您使用优惠券或负发票项目将第一张发票的总额减少到$ 0

  • 如果客户account_balance可以负担第一张发票的费用