應用場景
提供特店利用綁定信用卡取得的BindCardID進行幕後交易授權。
注意事項:此 API 需與銀行連線,如遇銀行連線不穩定時可能導致回應時間增加。特店如需設定 API 連線逾時的時間,建議至少 30 秒以上。
API介接網址
- 測試環境: https://ecpg-stage.ecpay.com.tw/Merchant/CreatePaymentWithCardID
- 正式環境: https://ecpg.ecpay.com.tw/Merchant/CreatePaymentWithCardID
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)
特店編號 必填
BindCardID String(64)
綁定信用卡代碼 必填
OrderInfo Object
交易訂單資訊 必填
MerchantTradeDate String(20)
特店交易時間 必填
格式為yyyy/MM/dd HH:mm:ss
MerchantTradeNo String(20)
特店交易編號 必填
僅支援a-zA-z0-9
TotalAmount Int
交易金額 必填
注意事項:交易金額不可超過20萬新台幣。
ReturnURL String(200)
付款回傳結果URL 必填
請帶入可接收付款結果的URL
TradeDesc String(200)
交易描述 必填
ItemName String(400)
商品名稱 必填
- 如有多項商品,商品名稱以分隔線#分開
- 請勿傳入超過長度 200 的內容,避免該欄位資訊被截斷
ConsumerInfo Object
特店會員資訊 必填
MerchantMemberID String(60)
特店會員編號 必填
Email String(200)
信用卡持卡人電子信箱
檢核規則請參考正規表達式“^([a-zA-Z\d._%+-]+@[a-zA-Z\d.-]+\.[a-zA-Z]{2,6})*$”;
Phone String(60)
信用卡持卡人電話
Name String(50)
信用卡持卡人姓名
請勿超過50字的姓名,避免該欄位資訊被截斷
CountryCode String(3)
國別碼
Address String(50)
地址
請勿超過50字的地址,避免該欄位資訊被截斷
CreditInstallment String(20)
刷卡分期期數
請帶入欲支援的分期期數,ex:3。如不須使用分期,可不帶值或是帶0。
Need3D Int
是否使用3D交易驗證
廠商可指定此筆交易是否使用3D驗證,預設為0
- 0:否
- 1:是
注意事項:
- 部分海外及國內信用卡可能無法支援3D驗證機制。即使在參數設定中選擇使用3D驗證,仍有可能遇到不進行3D驗證的情況。
- 若您的業務需求不允許沒有3D驗證的交易,請聯繫您的業務,申請開通強制3D驗證的功能。
CustomField String(200)
自訂欄位
請勿傳入超過長度200的內容,避免該欄位資訊被截斷
Data參數範例(Json格式)
{
"MerchantID": "3002607",
"BindCardID": "abc123456ac",
"OrderInfo": {
"MerchantTradeDate" : "2022/05/23 14:10:00",
"MerchantTradeNo" : "1234567890",
"TotalAmount": 500,
"TradeDesc" : "交易描述",
"ItemName" : "泡麵#清潔用品",
"ReturnURL" : "https://aa.aa.aa"
},
"ConsumerInfo": {
"MerchantMemberID": "test123456"
}
}
綠界Response參數說明 (Json格式)
MerchantID String(10)
特店編號
RpHeader Object
回傳資料
Timestamp Number
回傳時間
時間戳 Unix timestamp
TransCode Int
回傳代碼
1 代表 API 傳輸資料 (MerchantID, RqHeader, Data) 接收成功,實際的API執行結果狀態請參考 RtnCode 參數
TransMsg String(200)
回傳訊息
Data String
加密資料
此參數為加密過的 JSON 格式資料
Data參數說明(Json格式) :
RtnCode Int
交易狀態
1 代表 API 執行成功,其餘代碼均為失敗,失敗代碼請參考交易訊息代碼表。
注意事項:如收到以下代碼,建議廠商與消費者確認信用卡狀態:
- RtnCode = 10100252,代表此信用卡的餘額不足。
- RtnCode = 10100255,代表此信用卡為掛失卡。
RtnMsg String(200)
回應訊息
PlatformID String(10)
平台商編號
MerchantID String(10)
特店編號
OrderInfo Object
交易訂單資訊
MerchantTradeNo String(20)
特店交易編號
TradeNo String(20)
綠界交易編號
請保存綠界的交易編號與特店交易編號MerchantTradeNo的關聯
TradeAmt Int
交易金額
TradeDate String(20)
訂單成立時間
格式為 yyyy/MM/dd HH:mm:ss
PaymentType String(20)
付款方式
PaymentDate String(20)
付款時間
格式為 yyyy/MM/dd HH:mm:ss
ChargeFee Number
手續費
TradeStatus String(8)
交易狀態
CardInfo Object
信用卡授權資訊
AuthCode String(6)
銀行授權碼
Gwsr Int
銀行授權碼
ProcessDate String(20)
交易時間
格式為 yyyy/MM/dd HH:mm:ss
Amount Int
金額
Card6No String(6)
信用卡卡號前六碼
Card4No String(4)
信用卡卡號末四碼
IssuingBank String(30)
銀行名稱
IssuingBankCode String(10)
銀行代碼
Stage Int
分期期數
分期付款時回傳
Stast Int
首期金額
分期付款時回傳
Staed Int
各期金額
分期付款時回傳
CoBrandingInfo Array[Object]
聯名卡資料
CoBrandingCode String(20)
聯名卡代號
Comment String(100)
備註
CustomField String(200)
自訂欄位
提供特店使用客制化欄位
綠界Response參數範例 (Json格式)
{
"RtnCode": 1,
"RtnMsg": "Success",
"PlatformID": "1234567890",
"MerchantID": "1234567890",
"CardInfo":
{
"Card6No": "123456",
"Card4No": "1234",
"IssuingBank": "中國信託商業銀行",
"IssuingBankCode ": "822",
"AuthCode": "654123",
"Gwsr": 125,
"ProcessDate": "2022/09/18 15:39:10",
"Amount": 2
"Eci": 1,
},
"OrderInfo":
{
"MerchantTradeNo": "test123466",
"TradeNo": "123456789",
"PaymentDate": "2022/09/18 15:39:10",
"TradeAmt": 2,
"PaymentType": "Credit",
"TradeDate": "2022/09/18 15:39:10",
"ChargeFee": 0,
"TradeStatus": "1",
}
}