Stripe 什么时候支付成功?
When is a payment successful in Stripe?
我正在创建一个网络应用程序:
我需要在付款成功并从卡中扣款(而不是拒绝)时更新数据库。
我的代码在这里:我首先创建客户。 (顺便说一句,变量已声明,一切正常)
$customer = \Stripe\Customer::create(array(
'email' => $_POST['stripeEmail'],
'source' => $_POST['stripeToken'],
'description' => $stripeEmail
));
然后我为客户创建订阅:
$subscription = \Stripe\Subscription::create(array(
"customer" => $customer->id,
"plan" => $planName
));
我的问题:我需要创建一个webhook来检测支付是否成功吗?还是表单提交成功就成功了?
在正常情况下,当您 create a subscription 时,Stripe 会立即尝试向客户收费(Stripe 的订阅是预先支付的)。如果付款尝试失败,API 将立即 return 一个错误并且不会创建订阅。
在这种情况下,您不需要使用 webhook。只需使用正常的 error handling 并检查调用 \Stripe\Subscription::create(...)
.
时是否引发了 \Stripe\Error\Card
异常
请注意,如果没有立即收费的内容,订阅创建总是会成功。这可能在各种情况下发生:
如果您在创建订阅时提供trial_end
参数
如果计划有默认试用期
如果您使用优惠券或负发票项目将第一张发票的总额减少到 0 美元
如果客户的account_balance
可以支付第一张发票的费用
我正在创建一个网络应用程序:
我需要在付款成功并从卡中扣款(而不是拒绝)时更新数据库。
我的代码在这里:我首先创建客户。 (顺便说一句,变量已声明,一切正常)
$customer = \Stripe\Customer::create(array(
'email' => $_POST['stripeEmail'],
'source' => $_POST['stripeToken'],
'description' => $stripeEmail
));
然后我为客户创建订阅:
$subscription = \Stripe\Subscription::create(array(
"customer" => $customer->id,
"plan" => $planName
));
我的问题:我需要创建一个webhook来检测支付是否成功吗?还是表单提交成功就成功了?
在正常情况下,当您 create a subscription 时,Stripe 会立即尝试向客户收费(Stripe 的订阅是预先支付的)。如果付款尝试失败,API 将立即 return 一个错误并且不会创建订阅。
在这种情况下,您不需要使用 webhook。只需使用正常的 error handling 并检查调用 \Stripe\Subscription::create(...)
.
\Stripe\Error\Card
异常
请注意,如果没有立即收费的内容,订阅创建总是会成功。这可能在各种情况下发生:
如果您在创建订阅时提供
trial_end
参数如果计划有默认试用期
如果您使用优惠券或负发票项目将第一张发票的总额减少到 0 美元
如果客户的
account_balance
可以支付第一张发票的费用