手動キャプチャ

承認とキャプチャを別々に行い、すぐに注文を作成し、後で支払い金額をキャプチャすることができます。今は支払い金額の確保のみを行い、サービスの完了後にキャプチャします。たとえばホテルでも、宿泊客が到着する前に全額承認し、チェックアウト時に実際に支払いの確定を行う場合があります。

デフォルトでは、注文が承認されると同時に注文の全支払い金額が自動的にキャプチャされます。在庫を確認し、商品の出荷準備が整ってから手動で注文を処理したい場合は、以下の手動キャプチャの手順に従ってください。

注文が承認されると、Smartpay は最大7日間その金額を保証し、お客様のアカウントで確保します。この期間内に注文がキャプチャされないと、承認はキャンセルされ、確保されていた金額が取り消され、注文ステータスがキャンセルに変わります。

  1. Smartpay に承認手続きのみ行うよう通知する

注文に対してチェックアウトセッションを作成するには、チェックアウトセッション作成 API 呼び出しの 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 チェックアウトにリダイレクトする

チェックアウトセッション作成 API 呼び出しにより返される [URL] を使ってお客様を Smartpay チェックアウトにリダイレクトします。お客様がチェックアウトに成功すると、加盟店様側の注文ステータスは requires_capture になります。

注文は7日間のみ有効です。その期間内に注文をキャプチャする必要があります。7日間以内にキャプチャされない場合、その注文は自動的にキャンセルされます。
  1. 支払いを作成する(注文をキャプチャする)

注文のキャプチャガイドに従って、支払いを作成(注文をキャプチャ)します。

注文のキャンセル

キャプチャされる前にお客様が注文をキャンセルした場合は、注文のキャンセルガイドに従って Smartpay での注文をキャンセルすることができます。