stripeのwebhook複数設定

やりたかったこと

サービスを展開していく中で必要な決済機能を一括で担ってくれるstripeはとても優秀です。

申請と簡単な設定を行うだけで、手軽に決済サービスを展開することができます。

当方複数のサービスを展開しているのですが、その中で

「同じstripeアカウントに対して決済し、webhookのコールバックはサービスごとに分けたい」

ということを実現したいと思っておりました。

このように「webhookを追加」というボタンがあるので、これで解決とこの時は思いました。

(結論は、『そんな方法はない』です。。以下、試行錯誤の記録です)

Stripe webhookエンドポイント設定

イメージはこのような感じです。

Stripe webhookの仕組み

実際にwebhookを追加してリクエストを投げると

service Aとservice Bの両方に

コールバックが返ってきます

どういうことかというと

serviceAとserviceBに毎回同じコールバックが返ってきますので

「どのサービスからのリクエストか」に関わらず全部飛んでくるということです。

結論 そんな方法はない

サービスによっては対応も可能

どのサービスからか、というより「誰がリクエストしたか」によって分けることは可能です。

よって、例えばBtoB向けのサービスで決済者が限られているようなケースになります。

解決方法

  1. 決済者を事前にstripeにcustomerとして登録しておく
  2. stripeにrequestする際に、customerのidを指定する
  3. webhookからのコールバック内のcustomerパラメータをみて、自サービスのものか判断する

事前の設定などが必要で、すべてのケースに当てはまるわけではございませんが有効なケースもあると思いますので、ご参考まで

コメントを残す