Skip to content

附錄

檢查碼機制

在與歐買尬金流進行資料傳遞時,除了檢查碼[CheckMacValue]及其餘所有傳遞給歐買尬金流的 參數皆需要加入檢查碼計算,下列範例為AioCheckOut建立訂單計算方式。

以下為舉例待加密的字串:

TradeDesc=促銷方案&PaymentType=aio&MerchantTradeDate=2013/03/12 15:30:23&MerchantTradeNo=funpoint20130312153023&MerchantID=2000132&ReturnURL = https://www.funpoint.com.tw/receive.php&ItemName=Apple iphone 7 手機殼&TotalAmount=1000&ChoosePayment=ALL&EncryptType=1


檢核碼計算順序如下:

(1) 將傳遞參數依照第一個英文字母,由A到Z的順序來排序(遇到第一個英名字母相同時,以第二個英名字母來比較,以此類推),並且以&方式將所有參數串連。

ChoosePayment=ALL&EncryptType=1&ItemName=Apple iphone 7 手機殼&MerchantID=2000132&MerchantTradeDate=2013/03/12 15:30:23&MerchantTradeNo=funpoint20130312153023&PaymentType=aio&ReturnURL=https://www.funpoint.com.tw/receive.php&TotalAmount=1000&TradeDesc=促銷方案


(2) 參數最前面加上HashKey、最後面加上HashIV

HashKey=5294y06JbISpM5x9&ChoosePayment=ALL&EncryptType=1&ItemName=Apple iphone 7 手機殼&MerchantID=2000132&MerchantTradeDate=2013/03/12 15:30:23&MerchantTradeNo=funpoint20130312153023&PaymentType=aio&ReturnURL=https://www.funpoint.com.tw/receive.php&TotalAmount=1000&TradeDesc=促銷方案&HashIV=v77hoKGq4kWxNNIS


(3) 將整串字串進行URL encode

HashKey%3d5294y06JbISpM5x9%26ChoosePayment%3dALL%26EncryptType%3d1%26ItemName%3dApple+iphone+7+%e6%89%8b%e6%a9%9f%e6%ae%bc%26MerchantID%3d2000132%26MerchantTradeDate%3d2013%2f03%2f12+15%3a30%3a23%26MerchantTradeNo%3dfunpoint20130312153023%26PaymentType%3daio%26ReturnURL%3dhttps%3a%2f%2fwww.funpoint.com.tw%2freceive.php%26TotalAmount%3d1000%26TradeDesc%3d%e4%bf%83%e9%8a%b7%e6%96%b9%e6%a1%88%26HashIV%3dv77hoKGq4kWxNNIS


  • 若使用PHP進行URL encode:

HashKey%3d5294y06JbISpM5x9%26ChoosePayment%3dALL%26EncryptType%3d1%26ItemName%3dApple%20iphone%207%20%e6%89%8b%e6%a9%9f%e6%ae%bc%26MerchantID%3d2000132%26MerchantTradeDate%3d2013%2f03%2f12%2015%3a30%3a23%26MerchantTradeNo%3dfunpoint20130312153023%26PaymentType%3daio%26ReturnURL%3dhttps%3a%2f%2fwww.funpoint.com.tw%2freceive.php%26TotalAmount%3d1000%26TradeDesc%3d%e4%bf%83%e9%8a%b7%e6%96%b9%e6%a1%88%26HashIV%3dv77hoKGq4kWxNNIS


(4) 轉為小寫

hashkey%3d5294y06jbispm5x9%26choosepayment%3dall%26encrypttype%3d1%26itemname%3dapple+iphone+7+%e6%89%8b%e6%a9%9f%e6%ae%bc%26merchantid%3d2000132%26merchanttradedate%3d2013%2f03%2f12+15%3a30%3a23%26merchanttradeno%3dfunpoint20130312153023%26paymenttype%3daio%26returnurl%3dhttps%3a%2f%2fwww.funpoint.com.tw%2freceive.php%26totalamount%3d1000%26tradedesc%3d%e4%bf%83%e9%8a%b7%e6%96%b9%e6%a1%88%26hashiv%3dv77hokgq4kwxnnis


  • 若使用PHP進行URL encode:

hashkey%3d5294y06jbispm5x9%26choosepayment%3dall%26encrypttype%3d1%26itemname%3dapple%20iphone%207%20%e6%89%8b%e6%a9%9f%e6%ae%bc%26merchantid%3d2000132%26merchanttradedate%3d2013%2f03%2f12%2015%3a30%3a23%26merchanttradeno%3dfunpoint20130312153023%26paymenttype%3daio%26returnurl%3dhttps%3a%2f%2fwww.funpoint.com.tw%2freceive.php%26totalamount%3d1000%26tradedesc%3d%e4%bf%83%e9%8a%b7%e6%96%b9%e6%a1%88%26hashiv%3dv77hokgq4kwxnnis


(5) 依urlencode 轉換表更換字元 (若使用PHP進行URL encode時使用)

hashkey%3d5294y06jbispm5x9%26choosepayment%3dall%26encrypttype%3d1%26itemname%3dapple+iphone+7+%e6%89%8b%e6%a9%9f%e6%ae%bc%26merchantid%3d2000132%26merchanttradedate%3d2013%2f03%2f12+15%3a30%3a23%26merchanttradeno%3dfunpoint20130312153023%26paymenttype%3daio%26returnurl%3dhttps%3a%2f%2fwww.funpoint.com.tw%2freceive.php%26totalamount%3d1000%26tradedesc%3d%e4%bf%83%e9%8a%b7%e6%96%b9%e6%a1%88%26hashiv%3dv77hokgq4kwxnnis


(6) 以SHA256加密方式來產生雜凑值

aa5842fda7e55aceb7118d6353e9822ca6d6ff09a0d1fc129a879dd5caf93266


(7) 再轉大寫產生CheckMacValue

AA5842FDA7E55ACEB7118D6353E9822CA6D6FF09A0D1FC129A879DD5CAF93266


※ 注意事項:

(1) 請特店接收到歐買尬金流傳送的資訊時,必須檢查檢查碼[CheckMacValue]是否正確,如未判斷特店可能產生損失。
(2) 請用SHA256加密方式產生雜凑值。
(3) 請確認您的語言的 UrlEncode function 轉換後的結果符合附錄URLENCODE轉換表中的「.NET編碼」欄位值,若有 不符合的字元,請用字元替換功能處理,以免無法符合檢查規則。

例如:
PHP urlencode function 會將 ! 字元編碼成 %21,不符合「.NET編碼」,所以在 PHP urlencode後需用 str_replace function 將%21 轉回 ! 字元。以下僅以 PHP轉換範例說明:
$sMacValue = str_replace('%2d', '-', $sMacValue);
$sMacValue = str_replace('%5f', '_', $sMacValue);
$sMacValue = str_replace('%2e', '.', $sMacValue);
$sMacValue = str_replace('%21', '!', $sMacValue);
$sMacValue = str_replace('%2a', '*', $sMacValue);
$sMacValue = str_replace('%28', '(', $sMacValue);
$sMacValue = str_replace('%29', ')', $sMacValue);
其它程式語言的轉換功能,請閱該程式語言的編碼轉換規則改寫。


自行檢測表

為避免貴公司/行號因串接錯誤造成出貨損失、系統故障或開立錯誤之電子發票等,系統上線前 請就以下列表自行檢視相關事項,以降低串接錯誤造成之風險。若更換串接廠商、增修系統程 式或設備更換等情事時,應重新檢視檢測項目。


● 前置作業檢測項目:

項次單元檢測項目檢測說明檢測
結果
1.歐買尬金流廠商管理後台設定國外信用卡功能如需支援國外信用卡,是否已簽約申請為特店會員且開通□是
□否
2.銀聯卡功能如需支援銀聯卡,是否已簽約申請為特店員且開通□是
□否
3.信用卡分期功能如需支援信用卡分期,是否已簽約申請為特店會員且開通□是
□否
4.系統資訊安全作業加密金鑰保存是否已移除前端網頁或JavaScript內含有機密或敏感之資訊□是
□否
5.SSL憑證是否已確認憑證效期□是
□否
6.CheckMacValue
(檢查碼)
是否已確認檢查碼機制使用SHA256加密方式產生雜湊值□是
□否
7.系統設定確認系統時間校正避免時差問題導致API無法正常運作,是否已將主機進行時間校正□是
□否

產生訂單 API 檢測項目:

項次單元檢測項目檢測說明檢測
結果
1.API參數確認ItemName(商品名稱)是否依規定填寫,且內容不允許使用html
tag
□是
□否
2.ReturnURL(付款完成通知回傳網址)是否已填寫正確內容□是
□否
付款方式 ChoosePayment 為 ALL/ATM 時:
3.ExpireDate(允許繳費有效天數)是否依規定填寫天數□是
□否
付款方式 ChoosePayment 為 ALL/CVS 時
4.PaymentInfoURL
(Server 端回傳付款相關資訊)
是否已填寫正確內容□是
□否
5.StoreExpireDate(截止時間)是否依規定填寫天數/分鐘數□是
□否
6.API送出確認PC/行動裝置版是否成功開啟歐買尬金流付款頁面,並正確顯示商品名稱□是
□否

● 付款結果通知檢測項目:

項次單元檢測項目檢測說明檢測結果
1.確認付款結果通知
(Server)
付款結果以 Server POST 回傳至參數 ReturnURL 設定之網址至廠商測試後台 > 系統開發管理 > 模擬交易確認是否接收到付款結果通知□是
□否
2.成功接收付款結果通知是否正確回應 1|OK□是
□否
3.成功接收付款結果通知後續處理是否已對回傳之付款結果做後續處理
ex: 訂單狀態更新、開立發票等
□是
□否
4.確認付款結果通知
(Client)
付款結果以 Client POST 回傳至參數 OrderResultURL 設定之網址是否已接收到付款結果通知,並做後續處理□是
□否

● ATM、CVS、BarcodeATM的取號結果通知檢測項目:

項次單元檢測項目檢測說明檢測
結果
1.確認取號結果通知
(Server)
付款結果以 Server POST 回傳至參數 PaymentInfoURL 設定之網址是否已接收到取號結果通知,且回應 1|OK□是
□否
2.確認取號結果通知
(Client)
取號結果以 Client POST 回傳至參數 ClientRedirectURL 設定之網址是否已接收到虛擬代碼/超商代碼的取號結果□是
□否