【PHP】stripeでカード情報を更新してデフォルトに設定する

この記事について

環境PHP + stripe
目的顧客のカード情報を更新してデフォルトに設定する
結果Customer::update、または createSource + default_source の切り替えでできた

つまずきポイント要約

  • JCBカードは洗い替えに対応していないので、カード更新を促す導線が必要

stripeでカード情報を更新してデフォルトに設定する

JCBカードは洗い替えに対応していないので更新を促す必要がある。
カード番号更新フォームに作り方。
https://stripe.com/jp/blog/smarter-saved-cards

//カード情報を更新してデフォルト 方法1

\Stripe\Customer::update($stripe_cus_id, [
    'source' => $token, ← 顧客からフォームを通してカードを番号を入力してもらって取得
]);

リファレンス
https://stripe.com/docs/saving-cards

//カード情報を更新してデフォルト 方法2
//すでに登録されているカード情報に追加して、二枚目のカードとして新しいカードを登録する場合

//まず登録
$card = \Stripe\Customer::createSource(
  $stripe_cus_id,
[
  'source' => $token,
]);

//新しいカードをデフォルトに切り替える
$customer = \Stripe\Customer::retrieve($stripe_cus_id);
$customer->default_source=$card['id'];
//$customer->save();

関連:webhook の設定手順

タイトルとURLをコピーしました