1.微信支付坑多多,簽名Body竟出錯
經過近期對微信支付的開發,走過太多的坑,真怕以後再做微信支付,特將小問題逐步整理.
此爲微信支付中的native支付第二種支付方式,在請求參數時出現問題:body(商品描述)爲中文時,簽名失敗,爲英文時簽名成功。
系統爲考試系統,測試報名考試是否能正常生成二維碼
測試1:考試名稱爲 wwwsdnh (全英文) [我將考試名稱作爲微信支付的body信息傳入]
微信掃碼後成功顯示,媽呀好激動,終於完成了
結果測試2:考試名稱爲 測試點擊報名考試時是否修改狀態(中文)
前段vue報錯:
後端vs中出現
查看
簽名錯誤,納尼,腫麼可能!我剛剛明明成功了呀!好吧 我服!誰讓微信是爸爸呢!
2.解決方案
通過我的一頓搜索,搞定
原因就是在於body是中文,轉換出了問題導致簽名的算法在轉換時出錯!
解決措施:
找到API的Data類的CalcHMACSHA256Hash方法
將var enc = Encoding.Default;
改爲var enc = Encoding.UTF8; //修改Default爲UTF8**
修改後