はじめに
Stripeで決済処理を行う中で、「誰がどの注文をしたか」など、独自の情報を埋め込みたい場面ってありますよね?
そんなときに便利なのが metadata 機能です。
この記事では、Checkout Session作成時にpayment_intent_data.metadataを使って独自情報を渡す方法を紹介します。
使い方
たとえば、会員番号を決済情報に紐づけたい場合、以下のように記述します。
\Stripe\Stripe::setApiKey('sk_test_...');
$session = \Stripe\Checkout\Session::create([
'payment_method_types' => ['card'],
'mode' => 'payment',
'line_items' => [[
'price' => 'price_XXXXXXX',
'quantity' => 1,
]],
'payment_intent_data' => [
'metadata' => [
'member_entry_no' => $memberNo, // ここに独自データを追加
],
],
'success_url' => 'https://example.com/success',
'cancel_url' => 'https://example.com/cancel',
]);
できること
このようにして渡したデータは、以下の場所から確認・取得できます。
• Stripeの管理画面(支払い詳細のメタデータ欄)
• Webhookの payment_intent.succeeded イベント内
• API経由で PaymentIntent を取得したとき
便利な活用例
• ユーザーID、会員番号の紐づけ
• 注文番号のトラッキング
• アフィリエイトタグなどマーケティング用途
• マルチテナントシステムでのテナントID伝播
注意点
• metadataの値は最大50個のキー、各キー・値は最大500文字です。
• センシティブな情報(個人情報など)は入れないようにしましょう。
まとめ
Stripeのmetadataは、決済情報に独自データを安全かつ簡単に埋め込める非常に便利な機能です。
Webhookと組み合わせることで、外部システムとの連携もスムーズになります。