Blog

Stripeで定期支払いの決済に失敗した時だけ手動で請求メールを飛ばす

WPのプラグインとかでStripeのSubscribeフォームを作っていると、カード情報を更新するフォームが用意されてなくて軽く詰む時があります。

今まではそのためのフォームをなんとか作るしかなかった(はず)なのですが、最近Stripe Billingがアップデートされてよしなにできるようになりました。

Failしたカスタマーをひらく

まずはStripeダッシュボードから決済が失敗している顧客をみましょう。

失敗したログがトップに記録されています。4回目までは自動でリトライがありますが、4回目が失敗すると決済失敗扱いになりますので要注意です。

Failした請求(インボイス)をひらく

カスタマーのページをスクロールすると、[インボイス]という項目があります。ここに失敗した請求が残っていますので、これを開きましょう。

決済URLを取得する

請求詳細ページに移動すると、[詳細]の中に[支払いページ]という項目があります。

このURLをクリックすると、失敗している請求を決済するためのフォームが現れます。

いい感じの決済フォームがあらわれましたね。

念のため支払い期日や請求内容に間違いがないか確認した後、このURLを顧客に案内すればOKです。

これならカード更新フォームを準備していなくても、再決済時に困らずにすみます。

余談:APIからもとれます

この支払いページURLですが、APIからも取得出来る様子です。

$ curl https://api.stripe.com/v1/invoices/in_XXXXXXXXX    -u sk_test_XXXXXXXXXXXx: | jq .hosted_invoice_url -r

https://pay.stripe.com/invoice/invst_XXXXXXXXXX

webhookでよしなにしたい場合や、webアプリでカード更新フォーム作りたくない時に使えるかもしれません。