柔軟な決済シナリオで決済項目を使用します。公開プレビュー
決済項目は、マルチキャプチャーなどの複雑な決済で使用します。
決済項目は、マルチキャプチャーやオーバーキャプチャーなどの複雑な決済中に使用できます。
Multicapture
決済項目は、マルチキャプチャー中に使用できます。
注
KlarnaまたはPayPalではマルチキャプチャーはサポートされていません。
未キャプチャーの PaymentIntent を作成して確定する
注
APIレスポンスには、デフォルトではライン項目は含まれません。ライン項目を返すには、amount_
を拡張します。
PaymentIntentの作成時にcapture_
をmanual
として指定し、if_
パラメーターを使用してこの決済のマルチキャプチャーをリクエストします。作成される PaymentIntent では、支払い方法がサポートしている場合に、マルチキャプチャーが許可されます。
レスポンスでは、amount_
フィールドに PaymentIntent で指定されたライン項目が含まれます。
{ "amount": 4600, "amount_capturable": 4600, "amount_received": 0, "payment_details": { "customer_reference": "customer_reference", "order_reference": "order_reference" }, "amount_details": { "discount_amount": 200, "tax": { "total_tax_amount": 400 }, "shipping": { "from_postal_code": "94110", "to_postal_code": "94117", "amount": 400 }, "line_items": [ { "product_code": "SKU001", "product_name": "Product 001", "unit_cost": 2000, "quantity": 1, "unit_of_measure": "feet", "payment_method_options": { "card": { "commodity_code": "123123" } } }, { "product_code": "SKU002", "product_name": "Product 002", "unit_cost": 2000, "quantity": 1, "unit_of_measure": "gallons", "payment_method_options": { "card": { "commodity_code": "123123" } } } ] } ... }
PaymentIntent をキャプチャする
amount_
は、作成時に指定されていない場合でも、最初のキャプチャーに追加できます。details - 作成時に
amount_
を指定した場合は、最初のキャプチャー時にdetails amount_
を渡すか、設定を解除する必要があります。details
同じルールがamount_
にも適用されます。作成時に指定されていない場合は、最初のキャプチャーで追加できますが、作成時に指定されていた場合は、追加するか明示的に設定解除する必要があります。
レスポンスのamount_
フィールドには、最初のキャプチャーで指定されたライン項目が含まれます。
{ "amount": 4600, "amount_capturable": 2300, "amount_received": 2300, "payment_details": { "customer_reference": "customer_reference", "order_reference": "order_reference" }, "amount_details": { "discount_amount": 100, "tax": { "total_tax_amount": 200 }, "shipping": { "from_postal_code": "94110", "to_postal_code": "94117", "amount": 200 }, "line_items": [ { "product_code": "SKU001", "product_name": "Product 001", "unit_cost": 2000, "quantity": 1, "unit_of_measure": "feet", "payment_method_options": { "card": { "commodity_code": "123123" } } } ] }, "status": "requires_capture" ... }
PaymentIntent のステータスは requires_
のままです。この時点で、次のいずれかを実行できます。
- PaymentIntent の全額まで PaymentIntent を複数回キャプチャーします。
final_
をcapture true
に設定するか、final_
パラメーターを指定せずにキャプチャーを行うことで、PaymentIntentをcapture 成功
状態に移行します(final_
のデフォルトはcapture true
であるため)。
オーバーキャプチャー
決済項目は、オーバーキャプチャー中に使用できます。
未キャプチャーの PaymentIntent を作成して確定する
注
APIレスポンスには、デフォルトではライン項目は含まれません。ライン項目を返すには、amount_
を拡張します。
PaymentIntent の作成時に capture_
を manual
として指定し、if_
パラメーターを使用して、この決済のオーバーキャプチャーをリクエストします。作成された PaymentIntent では、決済手段がサポートしている場合にオーバーキャプチャーが許可されます。
レスポンスでは、amount_
フィールドに PaymentIntent で指定されたライン項目が含まれます。
{ "amount": 4600, "amount_capturable": 4600, "amount_received": 0, "payment_details": { "customer_reference": "customer_reference", "order_reference": "order_reference" }, "amount_details": { "discount_amount": 200, "tax": { "total_tax_amount": 400 }, "shipping": { "from_postal_code": "94110", "to_postal_code": "94117", "amount": 400 }, "line_items": [ { "product_code": "SKU001", "product_name": "Product 001", "unit_cost": 2000, "quantity": 1, "unit_of_measure": "feet", "payment_method_options": { "card": { "commodity_code": "123123" } } }, { "product_code": "SKU002", "product_name": "Product 002", "unit_cost": 2000, "quantity": 1, "unit_of_measure": "gallons", "payment_method_options": { "card": { "commodity_code": "123123" } } } ] } ... }
PaymentIntent をキャプチャする
PaymentIntent で現在オーソリゼーションされている金額を超える金額をキャプチャーするには、 capture エンドポイントを使用し、maximum_amount_capturable までの amount_to_capture を指定します。
キャプチャー中のキャプチャー金額と整合性のとれた更新後の amount_
ハッシュを渡します。
レスポンスの amount_
フィールドには、キャプチャー中に指定された項目が含まれます。
{ "amount": 5000, "amount_capturable": 0, "amount_received": 5000, "payment_details": { "customer_reference": "customer_reference", "order_reference": "order_reference" }, "amount_details": { "discount_amount": 200, "tax": { "total_tax_amount": 600 }, "shipping": { "from_postal_code": "94110", "to_postal_code": "94117", "amount": 600 }, "line_items": [ { "product_code": "SKU001", "product_name": "Product 001", "unit_cost": 2000, "quantity": 1, "unit_of_measure": "feet", "payment_method_options": { "card": { "commodity_code": "123123" } } }, { "product_code": "SKU002", "product_name": "Product 002", "unit_cost": 2000, "quantity": 1, "unit_of_measure": "gallons", "payment_method_options": { "card": { "commodity_code": "123123" } } } ] }, "status": "succeeded" ... }