注文処理(注文キャプチャ)

Smartpay では手動もしくは自動で注文処理を行うことができます。デフォルトが自動処理設定になっており、購入者が支払いを完了した後、自動的に注文処理が行われるため、追加の手順は必要ありません。
手動で注文処理を行う場合は、以下の手順を行ってください。

注文は7日間のみ有効です。その期間中に注文処理を行う必要があります。もし、7日以内に処理が行われない場合、その注文は自動でキャンセルされます。

Smartpay ダッシュボード

Smartpay のダッシュボード上では、手動注文処理を一回のみ行うことができます。注文処理は注文総額を上限に自由な金額で行うことが可能です。複数回、少額ずつ処理を行う場合は、API 連携が必要です。

売上処理された金額が、注文総額より少ない場合、未処理分の金額は全て自動的にキャンセルされ、その後売上処理は出来ません。また、一度キャンセルが実行されると戻すことも出来ません。売上処理する金額が確定した後に、処理をすることをお勧めします。

1. 注文処理を行う注文を見つける

Smartpay のダッシュボードにログインをすると、「注文」が表示されます。
「未キャプチャ」を選ぶと、未処理の注文のみ表示することが出来ます。また、特定の注文を、注文 ID、Reference、購入者名、購入者 Email から検索することが出来ます。

対象の注文を特定したら、クリックして、注文の詳細を開きます。

注文リスト

注文リスト

注文の詳細

注文の詳細

2. 注文処理

注文の詳細ページにある「キャプチャ」ボタンを押します。

処理する金額を入力し、任意で説明を入れた後、「キャプチャ」を押し完了します。

売上処理された金額が、注文総額より少ない場合、未処理分の金額は全て自動的にキャンセルされ、その後売上処理は出来ません。また、一度キャンセルが実行されると戻すことも出来ません。

注文処理

注文処理


SmartpayAPI での連携方法

You can create multiple partial captures using the Smartpay API, as long as the total capture amount is less than or equal to the total order amount.

1. 注文処理

「orderid」を使って、create a paymentを参照して連携を行ってください。

引数リストはcreate a paymentの API エンドポイントを参照ください。下記のフィールドは必須項目です。

  • amount: 処理したい金額を正数で表示させます。注文処理の上限は、未処理の総額です。
  • currency: 3 文字の通貨コード
  • order: オーダーオブジェクトのユニークな識別子
デフォルトでは、売上処理された金額が、注文総額より少ない場合、未処理分の金額は全て自動的にキャンセルされ、後で売上処理は出来ません。また、一度キャンセルが実行されると戻すことも出来ません。 もし、部分処理を複数に分けて作成したい場合は、cancelRemainder引数を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"
):