サブスクリプション対応決済サービス Stripe と Laravel からサブスクリプションを操作する Laravel Cashier についてのメモ書き

Laravel Cashier で 課金時に任意のパラメーター(metadata)を渡す

● Laravel Cashier で 課金時(1回課金)に任意のパラメーター(metadata)を渡す

次のようにすると Stripeには影響のない任意のパラメーター(metadata)を渡すことができます。

$stripe_invoice = $user->invoiceFor($item->name, $item->price_withtax_no, [
    'metadata' => [
        'myparam01'   => 'アイテムごとの任意のパラメーター01' ,
        'myparam02'   => 'アイテムごとの任意のパラメーター02' ,
    ]
],[
    'metadata' => [
        'myparam01'   => 'インボイスごとの任意のパラメーター01' ,
        'myparam02'   => 'インボイスごとの任意のパラメーター02' ,
    ]
]);

3番目の引数にに渡すと、「インボイスアイテムごと」4番目の引数にに渡すと、「インボイスごと」になります。

なお、インボイスとインボイスアイテムの関係は次のようにインボイスの下にインボイスアイテムがぶら下がる感じになっています。

インボイス
    ├── インボイスアイテム1
    └── インボイスアイテム2

Stripe API Invoiceitems( create ) : https://stripe.com/docs/api/invoiceitems/create
Stripe API Invoices( create ) : https://stripe.com/docs/api/invoices/create

サブスクリプション時に metadata を渡すには

 ->withMetadata([
]);

が使用できますが、条件によってはうまくデータが渡らないことがあります。 anchorBillingCycleOn() と同時に使うとうまく渡らないことがあります。

関連エントリー

No.1503
06/12 01:46

edit

LaravelCashier