トークンを使って注文を作成する
このガイドでは、トークンを使って注文を作成する方法を説明します。
Smartpay API を使用する
Smartpay トークンを作成したお客様に対して Smartpay API から請求する際は、そのトークンを使って注文を作成する必要があります。トークンとトークンを所有するお客様の両方が有効化されている必要があります。
トークンを使って注文を作成する
お客様に請求する準備ができたら、注文の作成 API エンドポイントを呼び出して注文を作成します。
支払いの承認は、トークンの作成時には行われないのでご注意ください。支払いの承認は、トークンを使った注文の作成時に行われます。つまり、トークンの承認に成功した場合でも、そのトークンを使った注文の処理では拒否される場合があります。注文の処理を開始する前に注文ステータスを確認してください。
各リクエストごとに注文が作成され、各注文ごとにお客様に請求が行われます。API の冪等性 を参照し、誤って二重請求を行わないよう注意してください。
引数の全リストは、支払いの作成 API エンドポイント を参照してください。以下のフィールドは必須項目です。
- amount: 当該の注文により回収される予定金額です。通貨の最小単位の正の整数です。
- currency: 大文字3文字の ISO 通貨コードです。サポートされている通貨である必要があります。
- customerInfo: お客様情報です。ここで入力する詳細は、承認時に使用される場合があります。送信される情報量が多いほど、承認率が高まります。
- items: お客様が注文した品目です。
- shippingInfo: 注文の配送先情報です。
- token: 各トークンの一意の識別子で、当該の注文の作成時に使用されます。
curl --request POST \
--url https://api.smartpay.co/v1/orders \
--header 'Authorization: Basic sk_test_cok3psbYJpZZX9x3yboLIH' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '
{
"amount": 1500,
"currency": "JPY",
"customerInfo": {
"accountAge": 30,
"address": {
"line1": "虎ノ門1-17-1",
"line2": "虎ノ門ヒルズビジネスタワー 15階",
"line3": "string",
"line4": "string",
"line5": "string",
"subLocality": "string",
"locality": "港区",
"administrativeArea": "東京都",
"postalCode": "105-6415",
"country": "JP"
},
"dateOfBirth": "2022-10-06",
"emailAddress": "[email protected]",
"firstName": "John",
"firstNameKana": "ジョン",
"lastName": "Doe",
"lastNameKana": "ドエ",
"legalGender": "male",
"phoneNumber": "+818000000000",
"reference": "my_customer_reference"
},
"items": [
{
"amount": 1000,
"brand": "FARVALUE",
"currency": "JPY",
"description": "ニット セーター",
"gtin": "682141169930",
"images": [
"https://mystore.jp/images/image.png"
],
"label": "string",
"name": "セーター",
"priceDescription": "string",
"productDescription": "string",
"quantity": 0,
"reference": "string",
"url": "https://mystore.jp/my-product/",
"kind": "product"
}
],
"reference": "my_merchant_order_reference",
"shippingInfo": {
"address": {
"line1": "虎ノ門1-17-1",
"line2": "虎ノ門ヒルズビジネスタワー 15階",
"line3": "string",
"line4": "string",
"line5": "string",
"subLocality": "string",
"locality": "港区",
"administrativeArea": "東京都",
"postalCode": "105-6415",
"country": "JP"
},
"addressType": "home",
"carrierName": "yamato",
"reference": "1234-5678-9123",
"feeAmount": 500,
"feeCurrency": "JPY"
},
"token": "paytok_test_zAo001ZRfyjz1F4rMyYPnL"
}
'
$api = new \Smartpay\Api(getenv('SECRET_KEY'), getenv('PUBLIC_KEY'));
$payment = $api->createOrder([
'amount' => 1500,
'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'
],
'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',
],
'token' => 'paytok_test_zAo001ZRfyjz1F4rMyYPnL'
]);
Smartpay.configure do |config|
config.public_key = ENV['PUBLIC_KEY']
config.secret_key = ENV['SECRET_KEY']
end
session = Smartpay::Api.create_order({
amount: 1500,
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: 'たろう',
legalGender: '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',
},
token: 'paytok_test_zAo001ZRfyjz1F4rMyYPnL',
})
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_order({
"amount": 1500,
"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": "たろう",
"legalGender": "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",
},
"token": "paytok_test_zAo001ZRfyjz1F4rMyYPnL",
})
注文が作成されると、Smartpay がその取引の審査を行います。その結果に応じて、注文は成功または拒否となります。
成功した場合
Smartpay が注文を承認すると、自動キャプチャをご使用の場合(デフォルト)は、返される注文は succeeded
ステータスになり、手動キャプチャの場合(注文の作成リクエストで captureMethod = manual
と指定)は、requires_capture
ステータスになります。注文の処理を開始してください。
拒否された場合
お客様アカウントやトークンが有効ではないなどの理由で Smartpay が注文を拒否した場合、返される注文のステータスは rejected
になります。お客様に連絡し、他の支払い方法を選択するよう依頼してください。
Updated 6 months ago