微信支付(公眾號支付JSAPI)的各種坑--缺參數--調用支付jsapi缺少參數:appld--支付驗證簽名失敗


最近自己弄微信公眾號支付,遇到各種坑,但歸結起來,由於微信文檔比較粗燥,調理比較亂,“技術大拿”自視過高,對小白比較藐視,當然,我覺得這是文化問題,也是為了讓自家兄弟有外快收入問題,如果太easy了,內部創業留給技術呆子的空間就相對更小了,這樣,好歹讓跟着老大干的兄弟干點私貨還是可以賺不少外快,通過人為的技術壁壘達到共同發財的目的,這也是技術人常用的手段,可以理解。

1、缺參數

這個問題,一般發生在參數要嘛漏掉,要嘛輸入錯誤,嚴格按文檔上的進行。尤其注意sign 簽名,需要提前把其他參數准備號,然后通過參數來獲取sign。然后再加進去,這個可以參考https://www.cnblogs.com/schyzhkj/p/12489933.html里面的描述。

2、調用支付jsapi缺少參數:appld

這個錯誤不是很精准,有可能是你的api密鑰問題,有可能是你確實漏了參數,有可能是不能字符集問題,比如你里面有中文字符,而你沒有做相應的編碼處理。如果后端返回前端數據是正確的,那么就可能是前后端字符大小寫沒有對上的問題,比如,后台你用的是appId,而前面的js里面你用的是appid。也有可能你直接把后面比如java的map直接返回了,而返回前你沒有做很號的json處理(比如用JSON.toJSONString(map)處理一下再返回),前面得到字符串你確想用JSON 方式來訪問,都可能產生上面的錯誤,錯誤提示非常不精准,過於粗燥,我覺得“技術大拿”故意為之的可能性很大,因為這個要優化起來並不難,主要是考慮到兄弟門的利益問題。

3、支付驗證簽名失敗

這個錯誤,有可能是簽名不統一造成,比如兩次中,一次用md5,一次用HA256。或者是參數拼寫錯誤,或者是中文問題,都有可能。如果返回到前端都是正確的,那也有可能是你參數個數或者大小寫沒匹配,尤其是參數個數,這個很多人容易忽略,如果你后端返回前端是7個,你缺提交6個,那也完全可能造成這個問題。

總之一句化,錯誤提示不夠精准。各種坑。比較耗精力而已。當然,上面說到的利益的問題,純屬調侃,切莫對號入座,哈哈哈哈哈。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM