コンビニ決済 – APIへのリクエスト
本ガイドは、コンビニ決済における各API処理の補足説明です。
コンビニ決済に必要な消費者の情報には、カード番号のような保護が必要な情報は含まれていないため、決済を行うシステムがPCI DSSに準拠していない場合でもAPIへのリクエストでトークンを作成できます。
以下では、本サービスのウィジェットやリンクフォームを使用せず、加盟店さま側で支払ページを作成しAPIで処理する場合のフローを説明します。
1.トークン作成
消費者の情報をトークン化して保存します。
詳細は、APIリファレンス「トランザクショントークン – CREATE」を確認してください。
リクエストBody例
{
"payment_type" : "konbini",
"type" : "one_time",
"email" : "demo@univapay.com",
"data" : {
"customer_name" : "テスト 太郎",
"phone_number" : {
"country_code" : "81",
"local_number" : "0364413400"
},
"convenience_store" : "family_mart"
},
"metadata": {
"memberid" : "12345"
}
}
2.課金作成
作成したトークンに対して課金申込を行います。
詳細は、APIリファレンス「課金 – CREATE」を確認してください。
リクエストBody例
{
"transaction_token_id": "11ed00f1-da1b-c4d2-b420-37b91ef1b282",
"amount": "100",
"currency": "jpy",
"metadata": {
"orderid": "12345"
}
}
3.課金の取得
課金申込の結果を取得します。
詳細は、APIリファレンス「課金 – GET」を確認してください。
"status": "awaiting"
が確認できたら正常に課金申込が完了し、消費者からの入金待ちの状態です。
ウェブフックで結果を受信することも可能です。
(ウェブフックのイベント名はcharge_updated
です。)
レスポンス / ウェブフック Body例
{
"id": "11ed07f5-345d-4308-a4c9-9f6b3663e18f",
"store_id": "11ec9f7f-fb01-2620-af32-af7eb1bedc1a",
"transaction_token_id": "11ed07f5-2da0-18ce-96f7-9f06340a7a87",
"transaction_token_type": "one_time",
"subscription_id": null,
"merchant_transaction_id": null,
"requested_amount": 100,
"requested_currency": "JPY",
"requested_amount_formatted": 100,
"charged_amount": 100,
"charged_currency": "JPY",
"charged_amount_formatted": 100,
"fee_amount": null,
"fee_currency": null,
"fee_amount_formatted": null,
"only_direct_currency": false,
"capture_at": null,
"descriptor": null,
"descriptor_phone_number": null,
"status": "awaiting",
"error": null,
"metadata": {
"internal_convenience_payment_number": "20020-123456789012",
"internal_convenience_payment_url": "https:/example.com"
},
"mode": "live",
"created_on": "2022-07-20T06:28:44.521327Z"
}
支払先の情報は、レスポンスの"metadata"
の値として反映されます。
支払先の情報が反映されるタイミングは、課金作成のリクエスト時ではなく、課金申込が成功して"status": "awaiting"
になった時以降です。"metadata"
の値とその内容は以下の通りです。
"metadata" の値 | 内容 |
---|---|
internal_convenience_payment_number | 支払い番号 |
internal_convenience_payment_url | 支払い票のURL ※支払先がセブンイレブンの場合のみ発行されます |
Pay-easyの場合は支払いに別途「収納機関番号」が必要です。
値は固定されていて、共通で58091
です。
課金取得時のレスポンスには反映されず、申込完了メールにのみ反映されます。
4.課金の取得
入金の結果を取得します。
詳細は、APIリファレンス「課金 – GET」を確認してください。
ウェブフックで結果を受信することも可能です。
(ウェブフックのイベント名はcharge_finished
です。)
レスポンス Body例
{
id: "11ed00f1-f0c4-1ca2-b754-db0d9311d5a0",
store_id: "11ec9f7f-fb01-2620-af32-af7eb1bedc1a",
transaction_token_id: "11ed00f1-da1b-c4d2-b420-37b91ef1b282",
transaction_token_type: "one_time",
subscription_id: null,
merchant_transaction_id: null,
requested_amount: 100,
requested_currency: "JPY",
requested_amount_formatted: 100, //申込金額
charged_amount: 100,
charged_currency: "JPY",
charged_amount_formatted: 100, //入金額
only_direct_currency: false,
capture_at: null,
descriptor: null,
descriptor_phone_number: null,
status: "successful",
error: null,
metadata: {
"orderid": 123456
},
mode: "live",
created_on: "2022-07-11T08:17:44.481834Z"
}
状況は、課金の状態"status"
および入金額"charged_amount_formatted"
から確認できます。