Alipay(オンライン)
このページで扱うトピック
Omiseの決済方法に、4億5000万人以上のユーザー数を誇る中国最大規模のオンライン決済手段Alipay(アリペイ)が追加されました 。Omise Thailandの全加盟店様が、新規申込不要でAlipay決済のβ版をご利用いただけます。Omiseを導入したECサイトでお客様がAlipayでの支払いを選択すると、Omiseが加盟店に代わりAlipayと通信を行い、当該お客様のAlipayアカウント情報を自動取得いたします。お客様の手を煩わせることなく、シームレスにAlipayを利用して支払いを行えるようになります。
Alipay決済の流れ
- 決済方法からAlipayを選択
 - 加盟店様のECサイトからAlipay決済画面へ遷移(アカウント情報取得・決済情報の認証)
 - 表示された支払金額を確認(加盟店アカウントの現地通貨に自動換算)
 - Alipay側で金額を中国元に変換し、お客様銀行口座から引出。加盟店へは現地通貨で入金
 

決済(ペイメント)ソースを使用し課金を作成する
画面遷移型のAlipay決済は、インターネットバンキング同様、値をパスするだけのシンプルな方法で導入できるのが魅力です。
1. ソースAPIを用いてソースオブジェクトを作成します。
ソースの作成コードは以下の通りです。
curl https://api.omise.co/sources \
  -X POST \
  -u skey_test_59rnqoboimgxvjk894d: \
  -d "amount=100000" \
  -d "currency=thb" \
  -d "type=alipay”
        JSON Response
{
  "object": "source",
  "id": "src_test_59tz6ut89klcihx52ss",
  "type": "alipay",
  "flow": "redirect",
  "amount": 100000,
  "currency": "thb"
}
        *ソース対象(オブジェクト)を作成するときは、シークレットキー、パブリックキーのいずれもご使用いただけます。
作成されたソースを取得します。最も重要なのは次に使用されるIDです。idとしてsrc_test_59tz6ut89klcihx52ssがあると仮定します。 
2. src_test_59tz6ut89klcihx52ss を source パラメタに指定し、課金APIを用いて課金オブジェクトを作成してます。
(例)Alipay課金作成のcURLスニペット
curl https://api.omise.co/charges \
  -X POST \
  -u skey_test_59rnqoboimgxvjk894d: \
  -d "amount=100000" \
  -d "currency=thb" \
  -d “source=src_test_59tz6ut89klcihx52ss" \
  -d "return_uri=http://example.com/orders/1235813/complete"
        return_uriには、支払完了後のリダイレクト先URLを指定します。 
(例)Alipay課金作成時のJSONレスポンス
{
  "object": "charge",
  "id": "chrg_test_59tz85445qe6oj0illy",
  "livemode": false,
  "location": "/charges/chrg_test_59tz85445qe6oj0illy",
  "amount": 100000,
  "currency": "thb",
  "description": null,
  "metadata": {},
  "status": "pending",
  "capture": true,
  "authorized": false,
  "reversed": false,
  "paid": false,
  "transaction": null,
  "refunded": 0,
  "refunds": {
    "object": "list",
    "from": "1970-01-01T00:00:00Z",
    "to": "2017-11-02T07:14:14Z",
    "offset": 0,
    "limit": 20,
    "total": 0,
    "order": null,
    "location": "/charges/chrg_test_59tz85445qe6oj0illy/refunds",
    "data": []
  },
  "return_uri": "https://omise.co",
  "reference": "ofsp_test_59tz8545ixmxqjq4vjt",
  "authorize_uri": "http://pay.omise.co/offsites/ofsp_test_59tz8545ixmxqjq4vjt/pay",
  "failure_code": null,
  "failure_message": null,
  "card": null,
  "customer": null,
  "ip": null,
  "dispute": null,
  "created": "2017-11-02T07:14:14Z",
  "source": {
    "object": "source",
    "id": "src_test_59tz6ut89klcihx52ss",
    "type": "alipay",
    "flow": "redirect",
    "amount": 100000,
    "currency": "thb"
  }
}
        3. お客様がAlipayでのお支払いを選択しますと、authorize_uriでリダイレクトを実行します。
*補足:Omiseテスト環境をご利用の際は、authorize_uriに 返されたURLをコピー してブラウザに貼りつけてください。 
Charges API でご案内の通り、当該課金情報から決済が正常に行われたことをご確認いただけます。
-  
authorizedとpaidいずれも true の場合:決済は正常に完了しています -  
authorizedとpaidいずれも falseの場合:決済が正常に完了していません。エラー発生要因の詳細は、Chargeオブジェクトのfailure_codeならびにfailure_messageに記載されます。 -  補足:
authorizedとpaidの値は常に一致します。 
Alipay決済の返金方法
Refund API での自動処理、もしくは Omiseライブダッシュボード上から手動で「一部返金」か「全額返金」を作成できます。
*注意:Alipay決済の返金可能期間は、決済日から3ヶ月以内です。
Webhook機能の活用方法
あらかじめWebhookを設定しておけば、課金ステータスを外部サイトへ自動通知することができます。課金が成功すると、charge.completeというイベント名で指定先のURLに通知が行きます。 
| Code | Description | 
|---|---|
bad_request | 
金額は4,900,000(タイバーツ)以下としてください | 
bad_request | 
この通貨は現在サポートされていません | 
bad_request | 
こちらの様式は現在サポートされていません | 
bad_request | 
無効なソース | 
bad_request | 
return_uri は必須です | 
not_found | 
ソース source_id が見つかりませんでした | 
属性 source [type]を追加し課金を作成する
        curl https://api.omise.co/charges \
  -X POST \
  -u skey_test_59rnqoboimgxvjk894d: \
  -d "description=Charge for order 3947" \
  -d "amount=100000" \
  -d "currency=thb" \
  -d "return_uri=http://example.com/orders/345678/complete" \
  -d "source[type]=alipay”
        属性source [type]を追加して課金を作成することもできますが、 決済ソースapiを使用して課金作成することをお勧めいたします。