メインコンテンツまでスキップ
バージョン: カナリア

ユーザ提示型モード決済(BスキャンC)

このページで扱うトピック

Alipay+ ユーザーから店舗での支払いを Alipay+ ユーザ提示型モード決済(BスキャンC) を使用して、POS(ポイント・オブ・セール)システム経由で受け付けましょう。

このガイドでは、支払いの流れと実装方法を詳しく説明します。

有効化方法

対応国: タイ、シンガポール、マレーシア
最小APIバージョン: 2017-11-02

対応ウォレットタイシンガポールマレーシア
アリペイ CN
アリペイ HK
カオペイ
ジーキャッシュ
タッチ・アンド・ゴー
トゥルー・マネー

ユーザ提示型モード決済(BスキャンC) を有効にするには、この機能をリクエストするために support@omise.co にメールを送信してください。新しい利用規約に同意する必要があります。

支払いの流れ

ユーザ提示型モード決済(BスキャンC)を使用して支払う顧客は、自分の支払いコード(バーコードまたはQRコード)を提示します。チャージを作成するために、バーコードリーダーを使って支払いコードをスキャンする必要があります。

alipayplus-upm

1️⃣ 顧客がモバイル端末でAlipay+対応ウォレットを開きます。
2️⃣ 顧客がウォレットアプリケーションでQRコードを生成し、それを店舗に提示します。
3️⃣ 店舗がQRコードをQRコードリーダーでスキャンします。
4️⃣ 顧客がウォレットアプリケーションで支払いを確認します。
5️⃣ 支払いが成功すると、ウォレットアプリケーションが顧客に通知します。

実装

ユーザ提示型モード決済(BスキャンC) を使用してチャージを作成するには、次のAPIリクエストを行います。

  1. 必要なパラメータを指定して新しい チャージ を作成します。
  2. チャージ完了のWebhookイベントを受け取った後、チャージを取得してそのステータスを確認します(オプションですが推奨)。

秘密キー を使用して、ユーザ提示型モード決済(BスキャンC)のチャージを作成します。

チャージの作成

顧客がこの支払い方法を使用することを確認したら、次のパラメータを指定して チャージ を作成します: 金額 tcurrencysource[type](alipayplus_upm)、および source[barcode]`。

パラメータ説明
金額integer(必須)通貨のサブユニットで指定した金額
通貨 string(必須)ソースの通貨(3文字ISO 4217コード)
ソース[type]string(必須)支払いソースの種類 alipayplus_upm
ソース[barcode]string(必須)スキャナーで読み取った支払いコード(バーコード)

次の例は、curl を使用してチャージを作成する方法を示しています。$OMISE_SECRET_KEYダッシュボード で取得したテスト秘密キーに置き換えます。

curl https://api.omise.co/charges \
-u $OMISE_SECRET_KEY: \
-d "amount=150000" \
-d "currency=THB" \
-d "source[type]=alipayplus_upm" \
-d "source[barcode]=2897991359827699709"
{
"object": "charge",
"id": "chrg_test_611binawoqhcagslthw",
"location": "/charges/chrg_test_611binawoqhcagslthw",
"amount": 150000,
"acquirer_reference_number": null,
"net": 147352,
"fee": 2475,
"fee_vat": 173,
"interest": 0,
"interest_vat": 0,
"funding_amount": 150000,
"refunded_amount": 0,
"transaction_fees": {
"fee_flat": "0.0",
"fee_rate": "1.65",
"vat_rate": "7.0"
},
"platform_fee": {
"fixed": null,
"amount": null,
"percentage": null
},
"currency": "THB",
"funding_currency": "THB",
"ip": null,
"refunds": {
"object": "list",
"data": [],
"limit": 20,
"offset": 0,
"total": 0,
"location": "/charges/chrg_test_611binawoqhcagslthw/refunds",
"order": "chronological",
"from": "1970-01-01T00:00:00Z",
"to": "2024-09-10T03:57:36Z"
},
"link": null,
"description": null,
"metadata": {},
"card": null,
"source": {
"object": "source",
"id": "src_test_611binao6nfn751k7e1",
"livemode": false,
"location": "/sources/src_test_611binao6nfn751k7e1",
"amount": 150000,
"barcode": "2897991359827699709",
"bank": null,
"created_at": "2024-09-10T03:57:36Z",
"currency": "THB",
"email": null,
"flow": "offline",
"installment_term": null,
"ip": null,
"absorption_type": null,
"name": null,
"mobile_number": null,
"phone_number": null,
"platform_type": null,
"scannable_code": null,
"billing": null,
"shipping": null,
"items": [],
"references": null,
"provider_references": null,
"store_id": null,
"store_name": null,
"terminal_id": null,
"type": "alipayplus_upm",
"zero_interest_installments": null,
"charge_status": "pending",
"receipt_amount": null,
"discounts": [],
"promotion_code": null
},
"schedule": null,
"linked_account": null,
"customer": null,
"dispute": null,
"transaction": null,
"failure_code": null,
"failure_message": null,
"status": "pending",
"authorize_uri": null,
"return_uri": null,
"created_at": "2024-09-10T03:57:36Z",
"paid_at": null,
"authorized_at": null,
"expires_at": "2024-09-17T03:57:36Z",
"expired_at": null,
"reversed_at": null,
"zero_interest_installments": false,
"branch": null,
"terminal": null,
"device": null,
"authorized": false,
"capturable": false,
"capture": true,
"disputable": false,
"livemode": false,
"refundable": false,
"partially_refundable": false,
"reversed": false,
"reversible": false,
"voided": false,
"paid": false,
"expired": false,
"can_perform_void": false,
"approval_code": null
}

チャージの期限を設定する

ユーザ提示型モード決済(BスキャンC)で、まだ承認されていない(status=pending)チャージは、即座に期限切れに設定でき、チャージがキャンセルされます:

curl https://api.omise.co/charges/$CHARGE_ID/expire \
-X POST \
-u $OMISE_SECRET_KEY:

チャージの完了

新しいチャージを作成し、そのstatuspendingに設定しました。チャージのstatusには、successfulfailedexpiredの他の値もあります。

以下のセクションでは、チャージを承認する方法、完了したWebhookイベントを受信する方法、およびそのステータスを更新する方法について説明します。

チャージ完了イベントの受信

チャージ完了の通知を受け取る最良の方法は、Webhookイベントを使用することです。

マーチャントサーバーにWebhookイベントを受信する場所を設定し、この場所をダッシュボードにWebhookエンドポイントとして追加します。

チャージステータスの確認

このイベントを受信した後、IDを使用してチャージを取得し、そのstatusがイベント内のチャージのstatusと一致していることを確認します。

  • statusの値がsuccessfulの場合、支払いが完了しました。
  • statusの値がfailedの場合、failure_codefailure_messageをチャージオブジェクト内で確認して、説明を取得します。

可能な失敗コードは以下の通りです。

失敗コード説明
支払い期限切れ支払いが期限切れです。
支払い拒否発行者によって支払いが拒否されました。
残高不足アカウントに十分な資金がないか、支払い方法の制限に達しました。
処理失敗一般的な支払い処理の失敗。

取り消しと返金

User-Presented Mode (B scan C) のチャージは、取引日 UTC 16:15 までに取り消すことができ、取引から1年以内に部分返金または全額返金を処理できます。

制限

  • タイ Thailand:
    • 最小: 2000 (THB 20.00)
    • 最大: 15000000 (THB 150,000.00)
  • シンガポール Singapore:
    • 最小: 100 (SGD 1.00)
    • 最大: 2000000 (SGD 20,000.00)
  • マレーシア Malaysia:
    • 最小: 100 (MYR 1.00)
    • 最大: 3000000 (MYR 30,000.00)

関連するAPIドキュメント

公開鍵と秘密鍵の確認方法

公開鍵と秘密鍵を取得して確認する方法については、こちらのドキュメントをご参照ください。