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アプリでカード更新フォーム作りたくない時に使えるかもしれません。
Tools to Support Stripe Development
We provide helpful tools to extend the Stripe Dashboard and streamline development and testing.
View All ToolsRelated Articles
Support This Project
If you find this content helpful, consider supporting the project through GitHub Sponsors. Your support helps maintain and improve these tools.
