應用場景
Server端方式 (POST) (PaymentInfoURL)
當消費使用ATM/CVS/BARCODE付款方式取號完成後,特店接受綠界的取號結果訊息,並回應接收訊息
- Step1.綠界:以ServerPost方式傳送取號結果訊息至特店的Server網址 [PaymentInfoURL]
- Step2.特店:收到綠界的取號結果訊息,並判斷檢查碼是否相符
- Step3.特店:檢查碼相符後,於網頁端回應1|OK
注意事項:請勿使用超商代碼販售「遊戲點數(卡)」、「遊戲虛寶」,如經檢舉或稽核屬實,綠界及超商有權限制您的繳費金額或終止使用權益。
Client端方式 (POST) (ClientRedirectURL)
當消費者取號完成後,綠界一次性反饋取號結果通知,並將頁面導至特店自製頁面
- Step1.綠界:傳送取號結果並將頁面導至特店的自製頁面網址 (ClientRedirectURL)
- Step2.特店:收到綠界的取號結果訊息,並判斷檢查碼是否相符
HTTPS 傳輸協定
- Accept :text/html
- Content Type :application/x-www-form-urlencoded
- HTTP Method :POST
綠界回傳參數說明
MerchantID String(10)
特店編號
- 測試環境特店編號
- 正式環境金鑰取得
MerchantTradeNo String(20)
特店訂單編號
訂單產生時傳送給ecpay的特店訂單編號
StoreID String(20)
特店旗下店舖代號
提供特店填入分店代號使用,僅可用英數字大小寫混合
RtnCode Int
交易訊息
- ATM 回傳值時為2時,交易狀態為取號成功,其餘為失敗。
- CVS/BARCODE回傳值時為10100073時,交易狀態為取號成功,其餘為失敗。
RtnMsg String(200)
交易訊息
TradeNo String(20)
綠界的交易編號
請保存綠界的交易編號與特店交易編號[MerchantTradeNo]的關連。
TradeAmt Int
交易金額
PaymentType String(20)
特店選擇的付款方式
請參考回覆付款方式一覽表
TradeDate String(20)
訂單成立時間
格式為yyyy/MM/dd HH:mm:ss
CustomField1 String(50)
自訂名稱欄位1
提供合作廠商使用記錄用客製化使用欄位
CustomField2 String(50)
自訂名稱欄位2
提供合作廠商使用記錄用客製化使用欄位
CustomField3 String(50)
自訂名稱欄位3
提供合作廠商使用記錄用客製化使用欄位
CustomField4 String(50)
自訂名稱欄位4
提供合作廠商使用記錄用客製化使用欄位
CheckMacValue String
檢查碼
特店必須檢查檢查碼[CheckMacValue]來驗證,請參考附錄檢查碼機制
當ChoosePayment參數為使用ATM付款方式時:
BankCode String(3)
繳費銀行代碼
vAccount String(16)
繳費虛擬帳號
ExpireDate String(100)
繳費期限
格式為yyyy/MM/dd
注意事項:各銀行ATM繳款帳號,若金額錯誤、逾期繳費、重覆繳款,是經由銀行端機制進行檢核ATM繳款帳號資訊,綠界科技無法進行金額錯誤、逾期繳費、重覆繳款的訂單阻擋。
當ChoosePayment參數為使用CVS或BARCODE付款方式時:
PaymentNo String(14)
繳費代碼
當付款方式為CVS時回傳,若付款方式為BARCODE時回傳空白
ExpireDate String(20)
繳費期限
格式為yyyy/MM/dd HH:mm:ss
Barcode1 String(20)
條碼第一段號碼
如果是代碼,則此欄位回傳空白
Barcode2 String(20)
條碼第二段號碼
如果是代碼,則此欄位回傳空白
Barcode3 String(20)
條碼第三段號碼
如果是代碼,則此欄位回傳空白
特店傳出參數說明
收到綠界回傳結果通知,請回傳1|OK,此訊息僅代表特店回應是否已收到綠界回傳通知,並不會影響訂單的狀態。
注意事項:
接收取號結果通知時,請系統開發人員確認下面事項,以利收到綠界發送的取號完成通知:
(1) 請確認訂單產生的回傳付款網址[PaymentInfoURL]參數中的程式是否已開發完成。
(2) 請確認回傳付款網址[PaymentInfoURL]中的網址,已經開放對外,從貴公司的網域之外也可以通知得到。
取號結果通知會以下表格式參數直接回傳,並以「參數=值」表示,參數與參數之間以&隔開,例:
Barcode1=&Barcode2=&Barcode3=&ExpireDate=2017/12/28 00:39:03&MerchantID=2000132&MerchantTradeNo=Test1513787899&PaymentNo=LLL17355880822&PaymentType=CVS_CVS&RtnCode=10100073&RtnMsg=Get CVS Code Succeeded.&TradeAmt=2000&TradeDate=2017/12/21 00:39:03&TradeNo=17122100383415923452&StoreID=&CustomField1=&CustomField2=&CustomField3=&CustomField4=&CheckMacValue=C25373CE6379BB6116FAE8398F4A8E60B71B289D955F6B8A9D9F53FDCC97F571
注意事項:
- 特店務必判斷檢查碼[CheckMacValue]是否正確,以及是否已經對該筆訂單的付款通知,做過相對應的處理,以免造成交易狀態無法同步的損失。
- 若未正確回應1|OK,系統會隔5~15分鐘後重發訊息給特店,當天重複發送四次。
- 若特店持續收到綠界回傳付款資訊,此時請檢查是否未正確回應1|OK給綠界,常見錯誤回傳值為(“1|OK”、1|ok、_OK 、1\OK、空白 )。
YAML
提供的 YAML 文件用於定義 API 的配置、結構、操作和基礎設施管理等資訊,方便開發人員理解和使用 API。
openapi: 3.1.0
info:
title: ECPay ATM/CVS/BARCODE Number Acquisition Result Notification API
version: 1.0.0
servers:
- url: PaymentInfoURL
description: Production Environment
- url: PaymentInfoURL
description: Testing Environment
paths:
/payment/number/notification:
post:
summary: ATM/CVS/BARCODE Number Acquisition Result Notification
description: Notify the merchant of the number acquisition result for ATM, CVS, or BARCODE payments.
requestBody:
required: true
content:
html/text:
schema:
type: object
required:
- MerchantID
- MerchantTradeNo
- RtnCode
properties:
MerchantID:
type: string
maxLength: 10
description: Merchant ID
MerchantTradeNo:
type: string
description: Merchant's trade number
StoreID:
type: string
description: Store identifier
RtnCode:
type: integer
description: Return code
RtnMsg:
type: string
description: Return message
TradeNo:
type: string
description: ECPay trade number
TradeAmt:
type: integer
description: Trade amount
PaymentType:
type: string
description: Payment type
TradeDate:
type: string
format: date-time
description: Trade date
CustomField1:
type: string
description: Custom field 1
CustomField2:
type: string
description: Custom field 2
CustomField3:
type: string
description: Custom field 3
CustomField4:
type: string
description: Custom field 4
CheckMacValue:
type: string
description: Check MAC value
BankCode:
type: string
description: Bank code (for ATM payments)
vAccount:
type: string
description: Virtual account number (for ATM payments)
ExpireDate:
type: string
format: date-time
description: Expiry date for payment
PaymentNo:
type: string
description: Payment number (for CVS payments)
Barcode1:
type: string
description: Barcode part 1 (for BARCODE payments)
Barcode2:
type: string
description: Barcode part 2 (for BARCODE payments)
Barcode3:
type: string
description: Barcode part 3 (for BARCODE payments)
responses:
'200':
description: Success
content:
text/plain:
schema:
type: string
example: 1|OK
'400':
description: Invalid request
'500':
description: Server error