使用条带订阅付款失败时发送电子邮件

时间:2014-06-13 11:11:52

标签: php stripe-payments subscription

我最终将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);
}

我只是不确定这是否会发送,如果不是,我应该添加什么来发送它。非常感谢。

1 个答案:

答案 0 :(得分:2)

订阅一旦被创建就完全由Stripe处理,所以不,在你编写代码时,你永远不会抓住Stripe_CardError。您的申请不会重新申请;条纹确实。

但是,Stripe提供an extensive webhook implementation就是出于这种目的。如果您不熟悉webhooks,则它们是异步API事件问题的简单解决方案:当事件发生时,第三方服务会将事件通知发送回您已定义的端点。

通过为您感兴趣的Stripe webhook实施响应器,例如,invoice.payment_failed对于发票付款失败 - 您可以在应用程序中执行任何操作。发送电子邮件给用户,发送不同的电子邮件给自己,设置一个标志,以便用户在登录时看到横幅...可能性是无限的。