LoginSignup
0
0

More than 3 years have passed since last update.

Stripeのカード番号、Sourceに関する仕様、Tips

Last updated at Posted at 2020-09-16

Stripe-PHP 7.37

オブジェクト間の関係

Stripeのカード番号等はSourceオブジェクトで管理されており。
SourceオブジェクトはCustomer(ユーザー)オブジェクトに紐づいている

Customer -> Source

ConnectでDirect Charge(Destination chargeではなく)をする場合は、CustomerがConnected Account(加盟店)に紐づくので、下記のような紐付け関係になる。

Account -> Customer -> Source
加盟店 -> ユーザー -> カード情報

つまり同じユーザーでも加盟店が異なる場合、Stripe上では別ユーザー扱いになる
加盟店A -> ユーザーB -> カード番号 C
加盟店B -> ユーザーB(Stripe上では上のユーザーと区別される) -> カード番号 C

Destination chargeで対応させるのであれば、加盟店ではなく、プラットフォーム側にユーザーが紐づくのでユーザーの情報管理に関してはシンプル。
(実装の都合に合わせてDestinationかDirectかを選択するのは本末転倒なのですが、一応)

蛇足ユーザーに対してカード番号の一覧を見せるような画面では、加盟店ごとにデータを取得することになるので、表示の重複を避けるのであればview等で表示の集約が必要になる

CustomerとSourceの紐付け

カード番号とソースの紐付けは二通り

・CustomerオブジェクトのsourceをUpdate
・CustomerオブジェクトでcreateSource

ソースを紐づけると
Customer->sources->dataで内容が確認できる
(紐づける前だとsources->dataは空配列)
また、Customer->default_sourceでデフォルトで使用されるソースのIDが格納されている

sourceをUpdateする場合、今まで登録してたsourceが上書きされるイメージ
createSourceは公式ドキュメントにもあるように、createというよりattach(追加)
createSourceをしてもdefault_sourceは変わらないので注意ので手動でUpdateする必要がある

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0