應用場景
在使用綠界站內付 2.0 金流服務之前,特店 Server 必須先向綠界 Server 取得一組廠商驗證碼(Token)。特店 Server 得到驗證碼後,必須將驗證碼傳給特店 Web 做產生站內付 2.0 金流畫面功能之用。
API介接網址
- 測試環境: https://ecpg-stage.ecpay.com.tw/Merchant/GetTokenbyTrade
- 正式環境: https://ecpg.ecpay.com.tw/Merchant/GetTokenbyTrade
HTTPS 傳輸協定
- Content Type:application/json
- HTTP Method:POST
特店Request參數說明 (Json格式)
MerchantID String(10)
特店編號 必填
RqHeader Object
傳輸資料 必填
Timestamp Number
傳輸時間 必填
請將傳輸時間轉換為時間戳(GMT+8),綠界會利用此參數將當下的時間轉為Unix TimeStamp來驗證此次介接的時間區間。
- 驗證時間區間為 10 分鐘內有效,若超過此驗證時間則此次訂單將無法建立,產生時間戳請參考相關資料。
- 合作特店須進行主機「時間校正」,避免主機產生時差,導致API無法正常運作。
Data String
加密資料 必填
此參數為加密過的 JSON 格式資料,加密方式請參考說明。
特店Request參數範例 (Json格式)
{
"MerchantID": "3002607",
"RqHeader": {
"Timestamp": 1234567890
},
"Data": "enter your data"
}
Data參數說明(Json格式)
注意事項:請在加密前對參數值進行 URLEncode
PlatformID String(10)
特約合作平台商代號
- 為專案合作的平台商使用
- 一般特店或平台商本身介接,則參數請帶空值
- 專案合作平台商的特店使用時,參數請帶平台商所綁的特店編號 MerchantID
注意事項:如果有帶入此參數,則外層MerchantID必須與PlatformID帶入相同值。
MerchantID String(10)
特店編號 必填
RememberCard Int
是否使用記憶卡號 必填
- 0 : 否
- 1 : 是
PaymentUIType Int
付款畫面呈現方式 必填
此欄位為指定付款頁面呈現方式,綠界會依據傳送的內容顯示畫面
- 0 : 信用卡定期定額
- 2 : 付款選擇清單頁
注意事項:
- 定期定額功能不支援銀聯卡
- 定期定額是否支援海外卡,是依照特店是否設定開通海外卡功能而定
- 定期定額支援的信用卡種類為 VISA, JCB, MASTER
ChoosePaymentList String(30)
付款選擇清單頁的清單項目
當PaymentUIType 為 2 ,此參數必填。選項內容可多選(ex: 1,2,3)
- 0 : 全部付款方式
- 1 : 信用卡一次付清
- 2 : 信用卡分期付款
- 3 : ATM
- 4 : 超商代碼
- 5 : 超商條碼
- 6 : 銀聯卡
- 7 : Apple Pay
- 8 : 信用卡圓夢彈性分期
- Web 版 Apple Pay 無需申請 Apple Developer 帳號
- 如欲使用 Apple Pay 模擬付款,請參考 Apple Pay 模擬付款詳細說明
- 如串接身分為ECTicket賣家,可使用的付款方式請以廠商後台>合約及費率>金流頁籤顯示為主。
OrderInfo Object
訂單資訊 必填
MerchantTradeDate String(20)
特店交易時間 必填
格式為 yyyy/MM/dd HH:mm:ss
MerchantTradeNo String(20)
特店訂單編號 必填
- 特店訂單編號均為唯一值,不可重複使用
- 格式僅支援英數字a-zA-z0-9,且不支援全型文字
TotalAmount Int
交易金額 必填
- 請帶整數,不可有小數點
- 僅限新台幣。交易金額不可超過20萬,其餘各付款金額的限制,請參考會員服務介紹
ReturnURL String(200)
付款回傳結果 必填
當消費者付款完成後,綠界會將付款結果參數以幕後(Server POST) 回傳到該網址。詳細說明請參考付款結果通知。
注意事項:
- 請勿設定與 Client 端接收付款結果網址 OrderResultURL 相同位置,避免程式判斷錯誤
- 請在收到 Server 端付款結果通知後,請正確回應 1|OK 給綠界
- 1|OK 僅是特店回應綠界是否收到通知,並不會改變付款狀態
TradeDesc String(200)
交易描述 必填
請勿傳入超過長度 200 的內容,避免該欄位資訊被截斷
ItemName String(400)
商品名稱 必填
- 商品名稱以分隔線#分開
- 請勿傳入超過長度 200 的內容,避免該欄位資訊被截斷
CardInfo Object
信用卡資訊
Redeem String(1)
信用卡紅利
預設為不使用
- 0: 不使用
- 1: 使用
PeriodAmount Int
定期定額授權金額
PaymentUIType 為 0 時,此欄位必填
PeriodType String(1)
定期定額週期種類
當 PaymentUIType 為 0 時,此欄位必填
- D:以天為週期
- M:以月為週期
- Y:以年為週期
Frequency Int
定期定額執行頻率
當 PaymentUIType 為 0 時,此欄位必填
注意事項:
- 至少要大於等於 1 次以上
- 當 PeriodType 設為 D 時,最多可設 1~365(天)
- 當 PeriodType 設為 M 時,最多可設 1~12(月)
- 當 PeriodType 設為 Y 時,最多可設 1
注意事項:
- 當 PeriodType 設為 D 或 M 時,扣款日期為以當月是否有那一號做判斷,若無則以當月的最後一天扣款
ExecTimes Int
執行次數
當 PaymentUIType 為 0 時,此欄位必填。此參數用來定義總共要執行幾次。
注意事項:
- 當 PeriodType 設為 D 時,最多可設 999 次。
- 當 PeriodType 設為 M 時,最多可設 99 次。
- 當 PeriodType 設為 Y 時,最多可設 9 次。
OrderResultURL String(200)
3D驗證回傳付款結果網址
符合以下情況,此欄位為必填:
- PaymentUIType 為 0 或 1
- PaymentUIType 為 2, ChoosePaymentList 為 0, 1, 2
注意事項:使用 3D 驗證時,當消費者付款完成後,綠界會將付款結果參數以前端頁面轉導的方式回傳到該網址。回傳參數請參考付款結果通知章節。
PeriodReturnURL String(200)
定期定額執行結果回應網址
- 當 PaymentUIType 為 0 時,此欄位必填
- 若交易為信用卡定期定額的方式,則每次執行授權結束後,會將定期定額授權結果回傳到這個設定的網址
- 請使用網域名稱(Domain Name System,DNS),請勿使用IP
CreditInstallment String(20)
刷卡分期期數
當 ChoosePaymentList 為 0 或 2時,此欄位為必填。欲支援多期數時,請以逗號分隔 ex: 3,6,12,18,24
FlexibleInstallment String(20)
圓夢彈性分期期數
當 ChoosePaymentList 為 0 或 8時,此欄位為必填。可帶入期數為 30
注意事項:交易金額須大於圓夢彈性分期最低交易金額,特店的最低交易金額可於廠商後台查詢。
UnionPayInfo Object
銀聯卡資訊
當 ChoosePaymentList 為 0 或 6 ,此欄位必填
OrderResultURL String(200)
銀聯卡驗證回傳付款結果網址
- 使用銀聯卡付款時,當消費者付款完成後,綠界會將付款結果參數以前端頁面轉導的方式回傳到該網址。
- 回傳參數請參考付款結果通知章節
ATMInfo Object
ATM資訊
ExpireDate Int
允許繳費有效天數
- 當 ChoosePaymentList 為 0 或 3 ,此欄位必填
- 已天數為單位,預設為 3 天。最長可設定為 60 天,最短 1 天。
注意事項:以天為單位,例如7/1號訂單成立,有效天數設為3天,則到期日為7/4 23:59截止。
ATMBankCode String(10)
ATM銀行代碼
- 可指定一個欲使用的繳費銀行,綠界支援的銀行請參考銀行代碼表
- 如無須指定,系統預設為特店申請的ATM繳費銀行
CVSInfo Object
超商代碼資訊
StoreExpireDate Int
超商繳費截止時間
- 當 ChoosePaymentList 為 0 或 4 ,此欄位必填
- 已分鐘為單位,預設為 10080 分鐘 (7天) 。不可超過 43200 分鐘(30天),超過時一律以 43200 分鐘計算
注意事項:舉例 08/01 的 20:15 分購買商品,繳費期限為 7 天,表示 08/08 的 20:15 分前您必須前往超商繳費。
CVSCode String(10)
超商代碼
- CVS : 超商代碼(不指定超商),此為預設值
- OK : OK 超商代碼
- FAMILY: 全家超商
- HILIFE : 萊爾富超商
- IBON : 7 – 11 ibon
Desc_1 String(20)
交易描述_1
若 CVSCode 為 FAMILY 或 IBON 時,會顯示在超商繳費平台螢幕上
Desc_2 String(20)
交易描述_2
若 CVSCode 為 FAMILY 或 IBON 時,會顯示在超商繳費平台螢幕上
Desc_3 String(20)
交易描述_3
若 CVSCode 為 FAMILY 或 IBON 時,會顯示在超商繳費平台螢幕上
Desc_4 String(20)
交易描述_4
若 CVSCode 為 FAMILY 或 IBON 時,會顯示在超商繳費平台螢幕上
BarcodeInfo Object
超商條碼資訊
StoreExpireDate Int
超商繳費截止時間
- 當 ChoosePaymentList 為 0 或 5 ,此欄位必填
- 以天為單位,預設為 7 天
- 若需設定最長 30 天,最短1天。
注意事項:以天為單位,若要設定超過30天時,限特約賣家跟業務提出申請。
ConsumerInfo Object
消費者資訊 必填
當特店擁有自己的會員系統時,可將會員資料帶入
MerchantMemberID String(60)
消費者會員編號
- 請帶入特店的會員編號
- 當 RememberCard 為 1 時,此欄位必填
Email String(30)
信用卡持卡人電子信箱 必填
與Phone參數擇一必填
注意事項:檢核規則請參考正規表達式“^([a-zA-Z\d._%+-]+@[a-zA-Z\d.-]+\.[a-zA-Z]{2,6})*$”;
Phone String(60)
信用卡持卡人電話 必填
與Email參數擇一必填。可帶入國碼,但不可帶入+號。ex:886912345678
Name String(50)
信用卡持卡人姓名
- 該欄位可接受中文、英文與部分特殊符號
- 可支援的特殊符號為 : , . () / –
CountryCode String(3)
國別碼
- 持卡人帳單地址國別碼,請參考 ISO3166
- 臺灣請填寫 158
Address String(50)
地址
請帶入持卡人帳單地址
CustomField String(200)
自訂欄位
- 提供特店使用客制化欄位
- 請勿傳入超過長度 200 的內容,避免該欄位資訊被截斷
Data參數範例(Json格式)
{
"MerchantID": "3002607",
"RememberCard": 1,
"PaymentUIType": 2,
"ChoosePaymentList": "1,2,3",
"OrderInfo": {
"MerchantTradeNo": "20180914001",
"MerchantTradeDate": "2020/09/26 14:49:12",
"TotalAmount": 100,
"ReturnURL": "https://yourReturnURL.com"
},
"CardInfo": {
"OrderResultURL": "https://yourOrderResultURL.com",
"CreditInstallment": "3,6,9,12"
},
"ATMInfo": {
"ExpireDate": 3
},
"ConsumerInfo": {
"MerchantMemberID": "test123456",
"Email": "customer@email.com",
"Phone": "0912345678",
"Name": "Test",
"CountryCode": "158"
}
}
綠界Response參數說明 (Json格式)
MerchantID String(10)
特店編號
RpHeader Object
回傳資料
Timestamp Number
回傳時間
時間戳 Unix timestamp
TransCode Int
回傳代碼
TransMsg String(200)
回傳訊息
Data String
加密資料
綠界Response參數範例 (Json格式)
{
"MerchantID": "3002607",
"RpHeader": {
"Timestamp": 1234564848
},
"TransCode": 1,
"TransMsg": "Success",
"Data": "…"
}
Data參數說明(Json格式)
RtnCode Int
交易狀態
1 代表 API 執行成功,其餘代碼均為失敗,失敗代碼請參考交易訊息代碼表。
RtnMsg String(200)
回應訊息
PlatformID String(10)
平台商編號
MerchantID String(10)
特店編號
Token String(64)
交易代碼
TokenExpireDate String(20)
交易代碼到期時間
格式為 yyyy/MM/dd HH:mm:ss
Data參數範例(Json格式)
{
"RtnCode": 1,
"RtnMsg": "Success",
"PlatformID": "1234567890",
"MerchantID": "1234567890",
"Token": "m12dae4846446sq",
"TokenExpireDate": "2020/09/18 15:39:10"
}