最近在寫微信支付的後臺接口,遇到一個非常頭疼的問題,app一直提示“支付驗證簽名錯誤”,但是小程序可以正常支付。由於第一次做微信支付,沒有經驗,這個問題,調查了一天一直沒有頭緒。直到看到一位大俠分享的帖子,嘗試着改了一下,結果....居然成功了,驚喜就是來的這麼突然。現在把代碼貼上來,非常感謝那位大俠,也希望能幫到更多第一次做微信支付的人。
1、這是app第二次簽名時候的參數,一定要注意大小寫!!!
SortedMap<Object, Object> prepayMap = new TreeMap<Object, Object>(); prepayMap.put("appid", appid); prepayMap.put("partnerid", mch_id); prepayMap.put("prepayid", prepay_id); prepayMap.put("package", "Sign=WXPay"); prepayMap.put("noncestr", nonce_str); prepayMap.put("timestamp", time); String sign1 = PayForUtil.createSign("UTF-8", prepayMap, key); //獲取簽名 prepayMap.put("sign", sign1);
2、這是小程序第二次簽名時候的參數,一定要注意大小寫!!!不要嫌我囉嗦,畢竟是我踩過坑的人
SortedMap<Object, Object> prepayMap = new TreeMap<Object, Object>(); prepayMap.put("appId", appid); prepayMap.put("timeStamp", time); prepayMap.put("nonceStr", nonce_str); prepayMap.put("package", "prepay_id=" + prepay_id); prepayMap.put("signType", "MD5"); String sign1 = PayForUtil.createSign("UTF-8", prepayMap, key); //獲取簽名 prepayMap.put("sign", sign1); prepayMap.put("prepay_id", prepay_id);