說明
在與綠界科技進行資料傳遞時,請參考各API將Data內有傳送的參數加入檢查碼的檢核機制,若為非必填欄位沒有傳送的參數可不需加入計算。請特店務必判斷CheckMacValue是否正確,以及是否已經對該筆通知做過相對應的處理,若未判斷,可能在資料傳送過程被竄改延伸不必要的風險和損失。
注意事項:
- 請特店接收到綠界傳送的資訊時,必須檢查檢查碼[CheckMacValue]是否正確,如未判斷特店可能產生損失。
- 請用SHA256加密方式產生雜凑值。
- 若您使用的語言為.NET,請留意此份規格已改版更新URLEncode編碼轉換方式,此與現行綠界「全方位金流API技術文件 – 附錄/檢查碼機制」編碼方式有所差異,請使用「Uri. EscapeDataString」方法轉換計算。
計算公式
CheckMacValue= SHA256(URLEncode(HashKey值+Data明文+HashIV值))
檢核碼計算順序
(1) 將傳遞參數Data明文以字串方式取出
{"MerchantID":"3085676","MerchantTradeNo":"CX202202221540568521"}
(2) 參數最前面加上HashKey、最後面加上HashIV
7b53896b742849d3{"MerchantID":"3085676","MerchantTradeNo":"CX202202221540568521"}37a0ad3c6ffa428b
(3) 將整串字串進行URL encode
7b53896b742849d3%7B%22MerchantID%22%3A%223085676%22%2C%22MerchantTradeNo%22%3A%22CX202202221540568521%22%7D37a0ad3c6ffa428b
(4) 轉為小寫
7b53896b742849d3%7b%22merchantid%22%3a%223085676%22%2c%22merchanttradeno%22%3a%22cx202202221540568521%22%7d37a0ad3c6ffa428b
(5) 以SHA256壓碼產生雜湊值
ce67bbd259ee38ba1c7fb7cc88c3bd91d3f082b46eaebd4e4e5f2184cb23349a
(6) 再轉大寫產生CheckMacValue
CE67BBD259EE38BA1C7FB7CC88C3BD91D3F082B46EAEBD4E4E5F2184CB23349A
PHP 範例程式碼
";
$data="{\"MerchantID\":\"3085676\",\"MerchantTradeNo\":\"CX202202221540568521\"}";
echo " $data
";
echo "(2) 參數最前面加上HashKey、最後面加上HashIV
";
$data="7b53896b742849d3".$data."37a0ad3c6ffa428b";
echo " $data
";
echo "(3)將整串字串進行URL encode
";
$txt = urlencode($data);
echo " $txt
";
echo "(4)轉為小寫
";
$txt = strtolower($txt);
echo " $txt
";
echo "(5) 以SHA256壓碼產生雜湊值
";
$txt =hash('sha256', $txt);
echo " $txt
";
echo "(6) 再轉大寫產生CheckMacValue
";
$txt =strtoupper($txt);
echo " $txt
";
?>