微信支付code=-1的問題解決(坑之下劃線)
阿新 • • 發佈:2019-02-09
最近製作微信支付app支付,發現官方文件實在是很多坑,現把發現的問題列出如下。
關於支付返回值code=-1,發現網上很多文章都提及關於安卓簽名錯誤、包名錯誤等等,但是code=-1的情況其實不僅限於keystore簽名問題,以下是我們遇到的問題。
1、第一步“統一下單”中,按官方文件說,有個引數是“nonce_str”,注意這個下劃線,在第一步進行預支付的呼叫中,傳遞的引數確實是“nonce_str”這個。但是到了第二步發起調起支付的時候,如果你寫了“nonce_str”作為引數傳入,得到的sign就不對了,因為在調起支付時傳遞的引數應該去掉這個下劃線而使用“noncestr”。
2、另一個引數,在第一步“統一下單”中,需要傳入商戶號這個數值,引數名為“mch_id”,發起後微信回傳過來的引數名為“partner_id”(再注意這個下劃線),注意在使用這個"partner_id"發起第二步調起支付的時候,這個名字變了,變為了“partnerid”(無下劃線)。如果你使用了帶下劃線的,出來的sign肯定不對。
3、注意預支付與正式支付都需要重新進行sign。並不是在正式支付時用預支付得到的sign值。
4、注意引數都要為小寫。切記看準引數中的下劃線。