オンライン決済 – APIへのリクエスト
本ガイドは、オンライン決済における各API処理の補足説明です。
オンライン決済に必要な消費者の情報には、カード番号のような保護が必要な情報は含まれていないため、決済を行うシステムがPCI DSSに準拠していない場合でもAPIへのリクエストでトークンを作成できます。
以下では、本サービスのウィジェットやリンクフォームを使用せず、加盟店さま側で支払ページを作成しAPIで処理する場合のフローを説明します。
APIの処理によって各QR事業者の支払い画面を呼び出すための流れは下記です。
1.トークン作成
消費者の情報をトークン化して保存します。
詳細はこちらのドキュメントを確認してください。
決済手段によって必要な情報が異なります。
また、 http_get
や http_post
など、各QR事業者が要求する実行方法によっても指定する値が異なります。
リクエストBody例
{
"payment_type" : "online",
"type" : "one_time",
"email" : "demo@univapay.com",
"data" : {
"brand" : "alipay_plus_online",
"call_method" : "http_get"
},
"metadata": {
"memberid" : "12345"
},
}
2.課金作成
作成したトークンに対して課金申込を行います。
詳細はこちらのドキュメントを確認してください。
リクエストBody例
{
"transaction_token_id": "9c3b37f8-1851-11e7-9b58-8b8ddbe8f1d1",
"amount": 1000,
"currency": "JPY",
"metadata": {
"order_id": 12345,
"shipping_details": "Customer wants it now"
},
"redirect": {
"endpoint": "https://test.url/path?additionalParams=paramValue"
}
}
3.課金取得
課金申込の結果を取得します。
詳細はこちらのドキュメントを確認してください。
"status": "awaiting"
が確認できたら正常に課金申込が完了し、消費者からの入金待ちの状態です。
ウェブフックで結果を受信することも可能です。
(ウェブフックのイベント名はcharge_updated
です。)
レスポンス / ウェブフック Body例
{
"id": "0fe1e42a-1845-11e7-9b1f-d3bd0c055a99",
"store_id": "af857264-180c-11e7-9be2-276aea4fed28",
"transaction_token_id": "9c3b37f8-1851-11e7-9b58-8b8ddbe8f1d1",
"transaction_token_type": "one_time",
"subscription_id": null,
"requested_amount": 1000,
"requested_currency": "JPY",
"requested_amount_formatted": 1000,
"charged_amount": 1000,
"charged_currency": "JPY",
"charged_amount_formatted": 1000,
"status": "awaiting",
"error": null,
"metadata": {
"customer_id": 12345,
"shipping_details": "Customer wants it now"
},
"mode": "test",
"created_on": "2018-07-13T02:55:00.07367Z"
}
状況は、課金の状態 "status"
および入金額 "charged_amount_formatted"
から確認できます。
4.イシュアトークン取得
取得した課金IDを基に各QR事業者の支払い画面を呼び出します。
レスポンスで発行された各QR事業者の支払いURLを消費者側に表示すると、支払いに進めます。
詳細はこちらのドキュメントを確認してください。
レスポンス Body例
{ "issuer_token": "test", "call_method": "http_get" }