bauer's diary

凡人の凡人による凡人のための備忘録

Stripeをシステム導入する際に知っておいたほうがよいこと 〜その2〜

前回の記事

kitakitabauer.hatenablog.com

今回はStripeを使った開発上で困ったことを紹介します。
ただし、こちらは2017年08月時点の情報なので、中には改善されていることがあるかもしれないのでご了承ください。

テストカードの発行元設定が全て日本以外

https://stripe.com/docs/testing#cards
このページに、テスト環境でのみ使えるクレジットカードがありますが、
サイト運用にあたり、リスク回避のため日本以外で発行されたカードは許可していないのですが、テストカードに日本のものがないため、テスト環境では日本以外のカードも使えるようにしなければなりませんでした。

テストカードに関してはその点以外、イレギュラーケースとして請求が拒否されるカードなど様々なカードが用意されていたので、不都合はありませんでした。

定期購読プランの料金は変更不可

定期購読のプランの領収書に税を表示するために、開発途中で税込みから税抜きの価格設定に変更し、サブスクリプションを作成する際に事前に計算した税価格を渡すようにしました。
作成済プランの料金を変更することはできないので、当たり前ですが、本番運用開始までに十分検証期間が必要です。
そういったこともあり、​税込み価格での設定を前提として、途中から税率を変更できたらうれしいなぁと思いました。
税抜き価格のプランのため、税率変更の場合はおそらく新しいプランを用意する必要がありそうなので…


以降のケースは全てStripeからリクエストされるWebhookに関する事柄です。

Webhookのパターン検証の術がない

Webhookは様々なタイプのリクエストがあります。

  1. 支払い期限を迎えたときの請求を作成するリクエス
  2. 支払いが成功したときのリクエス
  3. 支払いが失敗したことにより、サブスクリプションがキャンセルしたときのリクエスト…

これらリクエストのイベントタイプに対してエンドポイントを設定し、サービス固有の処理をフックすることができるのですが、どういったデータがWebhookに載ってくるか事前にわかればテストしやすかったなぁと感じました。
本番稼働後では遅いので、それらがテスト環境で簡単に検証できたらうれしいものです。

ダッシュボード:イベントログのタイプをフィルタリングする術が手打ちしかない

f:id:kitakitabauer:20170812172517p:plain
Stripe利用ユーザには売上や入金先設定やプラン、Webhookなどを管理できるダッシュボードが提供されているのですが、
f:id:kitakitabauer:20170812174215p:plain
Webhookのログをフィルタリングしたいときに、毎回タイプを手打ちする必要があるのはやや手間でした^^;

ダッシュボード:Webhookが失敗したことを一覧しづらい・検知する術がない

Webhookが失敗したら何らかのユーザ対応が必要なこともあるのですが、常にログを見続けているわけではないので、気付きとなるような仕組みがほしいところです。
テスト環境の話ではありますが、開発中にWebhookのリクエストが失敗を繰り返していて、Stripe本国のエンジニアから "大量のリクエストが送られていることと、それらが全て失敗している" という旨のメールを頂いて初めて失敗し続けていることがわかりました。
失敗の原因は実装ミスだったのですが、気づいた時点で既に Webhookへのリクエストが止められていて、その後しばらく再開しなかった ため、開発スケジュールに影響が出てしまいました。
ダッシュボードで失敗がサマリされているビューがあって、slackなどに通知できたら最高です。


慣れていないこともありましたが、総じてWebhook周りのトラブルが多かったです。。

以上、どなたかのご参考になれば幸いです。