附錄 / 檢查碼機制

說明

在與綠界科技進行資料傳遞時,請參考各API將Data內有傳送的參數加入檢查碼的檢核機制,若為非必填欄位沒有傳送的參數可不需加入計算。請特店務必判斷CheckMacValue是否正確,以及是否已經對該筆通知做過相對應的處理,若未判斷,可能在資料傳送過程被竄改延伸不必要的風險和損失。

❗ 注意事項:

  1. 請特店接收到綠界傳送的資訊時,必須檢查檢查碼[CheckMacValue]是否正確,如未判斷特店可能產生損失。
  2. 請用SHA256加密方式產生雜凑值。
  3. 若您使用的語言為.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 範例程式碼

				
					<?php
echo "(1) 將傳遞參數Data明文以字串方式取出 <BR/>";
$data="{\"MerchantID\":\"3085676\",\"MerchantTradeNo\":\"CX202202221540568521\"}";
echo " $data <BR/>";

echo "(2) 參數最前面加上HashKey、最後面加上HashIV  <BR/>";
$data="7b53896b742849d3".$data."37a0ad3c6ffa428b";
echo " $data <BR/>";

echo "(3)將整串字串進行URL encode  <BR/>";
$txt = urlencode($data);
echo  " $txt <BR/>";

echo "(4)轉為小寫  <BR/>";
$txt = strtolower($txt);
echo  " $txt <BR/>";

echo "(5) 以SHA256壓碼產生雜湊值  <BR/>";
$txt =hash('sha256', $txt);
echo " $txt <BR/>";

echo "(6) 再轉大寫產生CheckMacValue <BR/>";
$txt =strtoupper($txt);
echo " $txt <BR/>";

?>
				
			

Copyright © Green World FinTech Service Co., Ltd. All rights reserved.

綠界官方網站