1. 微信支付和支付寶支付是如今APP經常使用的支付方式,可是真正接入過兩種支付方式的猿友會很明顯的感受到微信支付真心比支付寶麻煩不少,會出現不少莫名其妙的錯誤,可是官方的文檔卻很難給出較好的解決方案.
2.前幾天公司的APP須要支付功能而後也須要這個-1問題,簡直感受微信支付喪心病狂,這裏總結下本身出現的問題和一些其餘網友出現的問題作個總結,最後,歡迎補充.謝謝php
*官方的描述: -1 錯誤 可能的緣由:簽名錯誤、未註冊APPID、項目設置APPID不正確、註冊的APPID與設置的不匹配、其餘異常等。
1.簽名錯誤:
(1).簽名的參數集合沒有按照參數名ASCII碼從小到大排序(字典序).
(2).簽名的是時候漏了使用key,(key的由來能夠看下面第三條的分析)
(3).簽名的KEY錯誤. 這裏用來簽名的key是申請支付功能之後,微信給你的一個商戶帳號裏面設置的.具體key設置路徑:微信商戶平臺(pay.weixin.qq.com)–>帳戶設置–>API安全–>密鑰設置
(4).簽名後的key沒有進行轉化成大寫或者其餘例如前面的簽名參數先排好序最後才加上key(key字段不參與ASCII碼的大小排序,而是直接放到最後)
(5),還有一些其餘的格式錯誤請參看官方文檔的詳細說明 微信官方的簽名說明,請認真對比.
(6),簽名問題的終極大招—–使用官方的簽名認證工具一一對比.注:最好在鏈接生成的key和最終MD5以後的結果 在log下打印出來,能夠方便查看出錯的位置 接口調試工具html
2.APPID錯誤
**(1)**APPID是在open.weixin.qq.com上建立的應用,能夠經過 點擊管理中心–>應用詳情 來查看APPID
(2)建立APP時候上傳的證書與如今使用的不一致.商戶在微信開放平臺申請開發應用後,微信開放平臺會生成APP的惟一標識APPID。因爲須要保證支付安全,須要在開放平臺綁定商戶應用包名和應用簽名,設置好後才能正常發起支付。設置界面在【開放平臺】中的欄目【 管理中心 –> 修改應用 –> 修改開發信息】裏面
應用包名:是在APP項目配置文件AndroidManifest.xml中聲明的package值,例如DEMO中的package=」com.nmm.paydemo」。
應用簽名:根據項目的應用包名和編譯使用的keystore,可由簽名工具生成一個32位的md5串,在調試的手機上安裝簽名工具後,運行可生成應用簽名串,如圖8.9所示,綠色串即應用簽名。簽名工具下載地址api
對比查看應用簽名是否一致,特別注意,通常上傳都是使用release版本的key因此在測試的時候就須要使用簽名版的apk,普通的debug版本key是不一致的安全
文檔主要參考網絡和本身的使用過程,有什麼錯誤的地方歡迎指正微信