手動キャプチャ

オーソリと注文処理を分離し、まずオーソリを取り、後で注文金額を処理することができます。

オーソリを取り、注文金額を確保し、サービスを完了した後に注文金額を取り込むことができます。例えば、ホテルでは、宿泊客が到着する前に支払いを全額承認し、宿泊客がチェックアウトするときにお金を移動させることができます。

Smartpay のデフォルトでは、注文が承認されると同時に自動的に注文の全額が処理されます。もし、手動で注文処理を行いたい場合は、(例えば、在庫が確認され、商品が出荷できるようになった後)以下の手動処理フローに沿って実施してください。
注文が承認されると、Smartpay はその金額を保証し、最大 7 日間お客様のアカウントに保持します。この期間内に注文処理が行われないと、承認がキャンセルされ、オーソリされた金額が解放されます。このとき、注文のステータスはキャンセルされた状態に移行します。

  1. Smartpay へ承認手続きのみ指示する

注文に対してチェックアウトセッションを作成する際、Create a checkout sessionAPI コールの「captureMethod」フィールドに「manual」を指定します。

curl --request POST \
     --url https://api.smartpay.co/v1/checkout-sessions \
     --header 'Accept: application/json' \
     --header 'Authorization: Basic sk_test_abcdef12345678' \
     --header 'Content-Type: application/json' \
     --data '
{
     "amount": 1500,
     "cancelUrl": "https://mystore.jp/cancel",
     "captureMethod": "manual",
     "currency": "JPY",
     "customerInfo": {
          "accountAge": 30,
          "address": {
               "line1": "虎ノ門1-17-1",
               "line2": "虎ノ門ヒルズビジネスタワー 15階",
               "locality": "港区",
               "administrativeArea": "東京都",
               "postalCode": "105-6415",
               "country": "JP"
          },
          "dateOfBirth": "2019-08-24",
          "emailAddress": "[email protected]",
          "firstName": "John",
          "firstNameKana": "ドエ",
          "lastName": "Doe",
          "lastNameKana": "ドエ",
          "legalGender": "male",
          "phoneNumber": "+818000000000",
          "reference": "string"
     },
     "description": "string",
     "items": [
          {
               "amount": 1000,
               "brand": "FARVALUE",
               "currency": "JPY",
               "description": "ニット セーター",
               "gtin": "682141169930",
               "images": [
                    "https://mystore.jp/images/image.png"
               ],
               "label": null,
               "metadata": {},
               "name": "セーター",
               "priceDescription": null,
               "priceMetadata": {},
               "productDescription": null,
               "productMetadata": {},
               "quantity": 1,
               "reference": "my_merchant_product_reference",
               "url": "https://mystore.jp/my-product/"
          }
     ],
     "locale": "ja",
     "reference": "my_merchant_order_reference",
     "shippingInfo": {
          "address": {
               "line1": "虎ノ門1-17-1",
               "line2": "虎ノ門ヒルズビジネスタワー 15階",
               "locality": "港区",
               "administrativeArea": "東京都",
               "postalCode": "105-6415",
               "country": "JP"
          },
          "addressType": "home",
          "carrierName": "yamato",
          "reference": "1234-5678-9123",
          "feeAmount": 500,
          "feeCurrency": "JPY"
     },
     "successUrl": "https://mystore.jp/success"
}
'
$api = new \Smartpay\Api(getenv('SECRET_KEY'), getenv('PUBLIC_KEY'));

$checkoutSession = $api->checkoutSession([
  'amount' => 1500,
  'cancelUrl' => 'https://mystore.jp/cancel',
  'captureMethod' => 'manual',
  'currency' => 'JPY',
  'customerInfo' => [
    'accountAge' => 30,
    'address' => [
      'line1' => '虎ノ門1-17-1',
      'line2' => '虎ノ門ヒルズビジネスタワー 15階',
      'locality' => '港区',
      'administrativeArea' => '東京都',
      'postalCode' => '105-6415',
      'country' => 'JP'
    ],
    'dateOfBirth' => '2019-08-24',
    'emailAddress' => '[email protected]',
    'firstName' => 'John',
    'firstNameKana' => 'ドエ',
    'lastName' => 'Doe',
    'lastNameKana' => 'ドエ',
    'gender' => 'male',
    'phoneNumber' => '+818000000000',
    'reference' => 'string'
  ],
  'description' => 'My Smartpay order',
  'items' => [
    [
      'amount' => 1000,
      'brand' => 'FARVALUE',
      'currency' => 'JPY',
      'description' => 'ニット セーター',
      'gtin' => '682141169930',
      'images' => [
        'https://mystore.jp/images/image.png'
      ],
      'name' => 'セーター',
      'quantity' => 1,
      'reference' => 'my_merchant_product_reference',
      'url' => 'https://mystore.jp/my-product/'
    ]
  ],
  'locale' => 'ja',
  'reference' => 'my_merchant_order_reference',
  'shippingInfo' => [
    'address' => [
      'line1' => '虎ノ門1-17-1',
      'line2' => '虎ノ門ヒルズビジネスタワー 15階',
      'locality' => '港区',
      'administrativeArea' => '東京都',
      'postalCode' => '105-6415',
      'country' => 'JP',
    ],
    'feeAmount' => 500,
    'feeCurrency' => 'JPY',
  ],
  'successUrl' => 'https://mystore.jp/success'
]);
Smartpay.configure do |config|
  config.public_key = ENV['PUBLIC_KEY']
  config.secret_key = ENV['SECRET_KEY']
end

session = Smartpay::Api.create_checkout_session({
  amount: 1500,
  cancelUrl: 'https://mystore.jp/cancel',
  captureMethod: 'manual',
  currency: 'JPY',
  customerInfo: {
    accountAge: 30,
    address: {
      line1: '虎ノ門1-17-1',
      line2: '虎ノ門ヒルズビジネスタワー 15階',
      locality: '港区',
      administrativeArea: '東京都',
      postalCode: '105-6415',
      country: 'JP',
    },
    dateOfBirth: '1985-06-30',
    email: '[email protected]',
    firstName: '田中',
    lastName: '太郎',
    firstNameKana: 'たなか',
    lastNameKana: 'たろう',
    gender: 'male',
    phoneNumber: '+818000000000',
    reference: 'my_merchant_consumer_reference',
  },
  description: 'My Smartpay order',
  items: [
    {
      amount: 1000,
      brand: 'FARVALUE',
      currency: 'JPY',
      description: 'ニット セーター',
      gtin: '682141169930',
      images: [
        'https://mystore.jp/images/image.png'
      ],
      label: null,
      metadata: {},
      name: 'セーター',
      priceDescription: null,
      priceMetadata: {},
      productDescription: null,
      productMetadata: {},
      quantity: 1,
      reference: 'my_merchant_product_reference',
      url: 'https://mystore.jp/my-product/'
    }
  ],
  reference: 'my_merchant_order_reference',
  shippingInfo: {
    address: {
      line1: '虎ノ門1-17-1',
      line2: '虎ノ門ヒルズビジネスタワー 15階',
      locality: '港区',
      administrativeArea: '東京都',
      postalCode: '105-6415',
      country: 'JP',
    },
    feeAmount: 500,
    feeCurrency: 'JPY',
  },
  successUrl: 'https://mystore.jp/success',
})
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)

session = smartpay.create_checkout_session({
    "amount": 400,
    "cancelUrl": "https://mystore.jp/cancel",
    "captureMethod": "manual",
    "currency": "JPY",
    "customerInfo": {
        "accountAge": 30,
        "address": {
          "line1": "虎ノ門1-17-1",
          "line2": "虎ノ門ヒルズビジネスタワー 15階",
          "locality": "港区",
          "administrativeArea": "東京都",
          "postalCode": "105-6415",
          "country": "JP",
        },
        "dateOfBirth": "1985-06-30",
        "email": "[email protected]",
        "firstName": "田中",
        "lastName": "太郎",
        "firstNameKana": "たなか",
        "lastNameKana": "たろう",
        "gender": "male",
        "phoneNumber": "+818000000000",
        "reference": "my_merchant_consumer_reference",
    },
    "items": [
        {
             "amount": 1000,
             "brand": "FARVALUE",
             "currency": "JPY",
             "description": "ニット セーター",
             "gtin": "682141169930",
             "images": [
                  "https://mystore.jp/images/image.png"
             ],
             "label": null,
             "metadata": {},
             "name": "セーター",
             "priceDescription": null,
             "priceMetadata": {},
             "productDescription": null,
             "productMetadata": {},
             "quantity": 1,
             "reference": "my_merchant_product_reference",
             "url": "https://mystore.jp/my-product/"
        }
    ],
    "reference": "my_merchant_order_reference",
    "shippingInfo": {
        "address": {
            "line1": "虎ノ門1-17-1",
            "line2": "虎ノ門ヒルズビジネスタワー 15階",
            "locality": "港区",
            "administrativeArea": "東京都",
            "postalCode": "105-6415",
            "country": "JP",
          },
        "feeAmount": 500,
        "feeCurrency": "JPY",
    },
    "successUrl": "https://mystore.jp/success",
})
  1. 購入者を Smartpay のチェックアウトに誘導する

購入者を Smartpay のチェックアウトに誘導するには、create checkout session API コールを返す URL を使用します。購入者がチェックアウトを正常に完了すると、注文のステータスが「requires_capture」になります。

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

支払い(注文処理)の作成は注文処理(注文キャプチャ)ガイドに沿って設定ください

注文をキャンセルする

購入者が、注文処理が実行される前に、注文をキャンセルした場合は、注文キャンセルガイドに沿って、Smartpay の注文をキャンセルすることが出来ます。