我最终将Stripe设置为在网站上发布,但是当用户将要订阅时,我希望保护自己免受在订阅期间(即第一次付款后的任何时间)被拒绝的卡片的侵害,并且通知他们是什么时候。关于Stripe网站上的错误处理没有深入讨论,所以我只想知道在订阅期间卡片下降时是否会执行以下操作,因为我不知道如何通过使用Stripe进行测试。
try
{
// Try to charge the customers card here, subscription
}
//In the event of a card error
catch (Stripe_CardError $e)
{
// Card was declined.
$e_json = $e->getJsonBody();
$error = $e_json['error'];
print ($error['message']);
//Send the email to notify both parties that the payment declined.
$to = $_POST['email'];
$subject = 'Your card ending in'.['last4'].'has declined';
$message = 'Please remedy the situtaion at your earliest convience, there will be another attempt to charge your card in three days';
wordwrap($message, $width=75, "\n");
mail($to, $subject, $message);
}
我只是不确定这是否会发送,如果不是,我应该添加什么来发送它。非常感谢。
答案 0 :(得分:2)
订阅一旦被创建就完全由Stripe处理,所以不,在你编写代码时,你永远不会抓住Stripe_CardError
。您的申请不会重新申请;条纹确实。
但是,Stripe提供an extensive webhook implementation就是出于这种目的。如果您不熟悉webhooks,则它们是异步API事件问题的简单解决方案:当事件发生时,第三方服务会将事件通知发送回您已定义的端点。
通过为您感兴趣的Stripe webhook实施响应器,例如,invoice.payment_failed
对于发票付款失败 - 您可以在应用程序中执行任何操作。发送电子邮件给用户,发送不同的电子邮件给自己,设置一个标志,以便用户在登录时看到横幅...可能性是无限的。