注文をキャプチャする
Smartpay では、注文のキャプチャを手動または自動のどちらでも行うことができます。デフォルトでは、自動に設定されており、お客様が支払いを完了すると自動的にその注文がキャプチャされ、加盟店様が行う処理はありません。手動で行う場合は、以下の方法で注文をキャプチャします。
注文は7日間のみ有効です。その期間内に注文をキャプチャする必要があります。7日間以内にキャプチャされないと、その注文は自動的にキャンセルされます。
Smartpay のダッシュボードで
Smartpay のダッシュボードでは、手動でのキャプチャは1回のみ行えます。注文総額を上限に、任意の金額をキャプチャできます。少額ずつ複数回に分けてキャプチャする場合は、Smartpay API をご使用ください。
キャプチャする金額が注文総額より少ない場合、未キャプチャの金額はすべて自動的にキャンセルされ、その後キャプチャすることはできません。Smartpay がさかのぼって金額を変更することもできません。必ず、キャプチャが必要な合計金額が確定した後に、その注文のキャプチャを行ってください。
1. キャプチャする注文を検索する
Smartpay のダッシュボードにログインすると、注文の一覧が表示されます。未キャプチャのタブを選ぶと、未キャプチャの注文のみ表示されます。「注文 ID」、「reference で指定した値」、「お客様名」、または「お客様のメールアドレス」で特定の注文を検索できます。
該当する注文が見つかったら、それをクリックすると注文の詳細が表示されます。
2. 注文のキャプチャ
注文の詳細ページにある「キャプチャ」をクリックします。キャプチャする金額と説明(任意)を入力し、「キャプチャ」をクリックします。
キャプチャされた金額が注文総額より少ない場合、未キャプチャの金額はすべて自動的にキャンセルされ、その後キャプチャすることはできません。Smartpay がさかのぼって金額を変更することもできません。
Smartpay API を使用する
Smartpay API を使用すると、キャプチャする合計金額が注文総額と同額またはそれ以下の場合に、少額ずつ複数回に分けてキャプチャすることができます。
1. 注文のキャプチャ
キャプチャする注文の orderId
を使って、Smartpay API で支払いを作成(注文をキャプチャ)します。
引数の全リストは、支払い作成 API エンドポイント を参照してください。以下のフィールドは必須項目です。
- amount: 当該の注文のうちキャプチャする金額を正数で指定します。キャプチャできるのは、最大でその注文の未キャプチャの金額までです。
- currency: 大文字3文字の ISO 通貨コードです。サポートされている通貨である必要があります。
- order: 注文オブジェクトの一意の識別子です。
デフォルトでは、キャプチャされた金額が注文総額より少ない場合、未キャプチャの金額はすべて自動的にキャンセルされ、その後キャプチャすることはできません。Smartpay がさかのぼって金額を変更することもできません。少額ずつ複数回に分けてキャプチャしたい場合は、`cancelRemainer` を `manual` に設定してください。
curl --request POST \
--url https://api.smartpay.co/v1/payments \
--header 'Accept: application/json' \
--header 'Authorization: Basic {secretKey}' \
--header 'Content-Type: application/json' \
--data '
{
"amount": 1500,
"cancelRemainder": "automatic",
"currency": "JPY",
"description": "Capture for my smartpay order",
"order": "order_test_bA1znhGULw5lROfDTpHChv",
"reference": "my_capture_reference"
}
'
$api = new \Smartpay\Api(getenv('SECRET_KEY'), getenv('PUBLIC_KEY'));
$payment = $api->createPayment([
'amount' => 1500,
'cancelRemainder' => 'automatic',
'currency' => 'JPY',
'description' => 'Description for my Smartpay capture',
'lineItems' => [],
'order' => 'order_test_bA1znhGULw5lROfDTpHChv',
'reference' => 'my_merchant_capture_reference'
]);
Smartpay.configure do |config|
config.public_key = ENV['PUBLIC_KEY']
config.secret_key = ENV['SECRET_KEY']
end
payment = Smartpay::Api.create_payment({
amount: 1500,
cancelRemainder: 'automatic',
currency: 'JPY',
description: 'Description for my Smartpay capture',
lineItems: [],
order: 'order_test_bA1znhGULw5lROfDTpHChv',
reference: 'my_merchant_capture_reference',
})
SECRET_KEY = os.environ.get('SECRET_KEY', '<YOUR_SECRET_KEY>')
PUBLIC_KEY = os.environ.get('PUBLIC_KEY', '<YOUR_PUBLIC_KEY>')
smartpay = Smartpay(SECRET_KEY, public_key=PUBLIC_KEY)
payment = smartpay.create_payment(
order="order_test_bA1znhGULw5lROfDTpHChv",
amount=1500,
currency="JPY",
reference="my_merchant_capture_reference",
description="Description for my Smartpay capture"
):
Updated 5 months ago