2019年1月9日 星期三

微信支付 By API 異常排除

近期在套用微信支付API碰到"數位簽章校驗不通過"的回覆困擾許久,程式碼檢查再檢查與文件對應都看不出所以然來,在檢視機台終端交易密鑰的更新Log發現相同程式碼下不同的終端編號會有不同的結果,若干編號就是回校驗不通過。

經查API文件僅敘述簽名檔做好SHA256運算後再以base64編碼置入sign中,此一現象在此網誌所述雷同,於是在base64編碼後在加上urlencode()後傳出,問題就排除了。

$hashValue= hash('sha256', $string, TRUE);
$sign=urlencode(base64_encode($hashValue));

小記:系統整合尤其是透過API交換資料的情況下,這類問題往往很難從單一方面去排除,尤其在另一方(內地? 代理的銀行端? 有聽沒有懂的客戶? )已讀不回或不讀不回下僅能以trial and error方式來排除,恩恩...期間所遭遇個管理層級與客戶層級的質問心酸,只能共勉之...


沒有留言: