【要約】Stripe で販売者に売り上げを帰属させる方法 [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
マルチベンダー型サービスを構築する開発者は、決済の帰属や手数料管理、整合性の維持に課題を抱える。具体的には以下の問題に直面する。
- ・販売者への売上帰属とプラットフォーム手数料の同時受領の両立。
- ・商品単位の管理による接続アカウント数の増大と管理コスト。
- ・Checkout成功URLの信頼性不足による、決済確定の誤判定。
- ・Webhookの遅延や重複による、業務データの不整合。
// Approach
SpringStartの開発において、Stripe ConnectのDirect chargesを用いた設計を採用した。主な手法は以下の通りである。
- ・1会員1接続アカウントとし、管理対象を最小化。
- ・Direct chargesを採用し、決済責任を販売者側に帰属。
- ・Webhookを冪等な状態遷移のトリガーとして扱い、署名検証を徹底。
- ・手数料計算は共通化し、業務ルール(開発支援と有料販売)は分離。
- ・機密情報はサーバー側で管理し、クライアントに渡さない設計。
// Result
この設計により、決済の責任分界と堅牢な状態管理を実現した。得られた成果は以下の通りである。
- ・決済完了の根拠をWebhookに集約し、ブラウザの挙動に依存しない確定を実現。
- ・返金や紛争を注文状態とは別の履歴として管理し、柔軟な状態遷移を可能に。
- ・決済時点のパラメータ保存により、将来のルール変更時も過去の整合性を維持。
Senior Engineer Insight
> 決済基盤において、APIの呼び出し以上に「責任分界点」と「状態遷移の冪等性」を重視している点が極めて実践的だ。特に、Checkout成功URLを信用せず、Webhookを状態遷移の入力とする設計は、分散システムにおける整合性確保の定石である。Direct chargesは販売者の責任が重いため、法務・税務面での事前検討が不可欠となる。実装前にビジネスモデルの検証を強く推奨する。