stripeのwebhook複数設定
やりたかったこと
サービスを展開していく中で必要な決済機能を一括で担ってくれるstripeはとても優秀です。
申請と簡単な設定を行うだけで、手軽に決済サービスを展開することができます。
当方複数のサービスを展開しているのですが、その中で
「同じstripeアカウントに対して決済し、webhookのコールバックはサービスごとに分けたい」
ということを実現したいと思っておりました。
このように「webhookを追加」というボタンがあるので、これで解決とこの時は思いました。
(結論は、『そんな方法はない』です。。以下、試行錯誤の記録です)
イメージはこのような感じです。
実際にwebhookを追加してリクエストを投げると
service Aとservice Bの両方に
コールバックが返ってきます
どういうことかというと
serviceAとserviceBに毎回同じコールバックが返ってきますので
「どのサービスからのリクエストか」に関わらず全部飛んでくるということです。
結論 そんな方法はない
サービスによっては対応も可能
どのサービスからか、というより「誰がリクエストしたか」によって分けることは可能です。
よって、例えばBtoB向けのサービスで決済者が限られているようなケースになります。
解決方法
- 決済者を事前にstripeにcustomerとして登録しておく
- stripeにrequestする際に、customerのidを指定する
- webhookからのコールバック内のcustomerパラメータをみて、自サービスのものか判断する
事前の設定などが必要で、すべてのケースに当てはまるわけではございませんが有効なケースもあると思いますので、ご参考まで