1. 程式人生 > >解決微信支付 errCode返回-1

解決微信支付 errCode返回-1

最近 新接入一個專案的微信支付功能,遇到回撥老是返回-1

android端要做的事很簡單

wxApi = WXAPIFactory.createWXAPI(getView(), null);
wxApi.registerApp(WXConstant.APP_ID);// 將該app註冊到微信
PayReq request = new PayReq();
request.appId = wxPayBean.getAppid();
request.partnerId = wxPayBean.getPartnerid();
request.prepayId = wxPayBean.getPrepayid();
request.packageValue = wxPayBean.getPackageX(); request.nonceStr = wxPayBean.getNoncestr(); request.timeStamp = wxPayBean.getTimestamp(); request.sign = wxPayBean.getSign(); wxApi.sendReq(request);
除了sign外其他欄位都很好檢測,關鍵是sign.我們就是sign計算錯誤,耽誤了挺長時間.

首先微信有驗證sign的工具

請先驗證sign是否正確

再貼生成sign的函式

SortedMap<String, String> packageParams = new TreeMap<String, String>();
packageParams.put("appid", appId);
packageParams.put("mch_id", mch_id);
packageParams.put("nonce_str", nonce_str);
packageParams.put("out_trade_no", out_trade_no);


// 這裡寫的金額為1 分到時修改
packageParams.put("total_fee", totalFee);


packageParams.put("out_refund_no", out_refund_no);


packageParams.put("refund_fee", refund_fee);


packageParams.put("op_user_id", op_user_id);

/**
* 建立md5摘要,規則是:按引數名稱a-z排序,遇到空值的引數不參加簽名。
*/
public String createSign(SortedMap<String, String> packageParams) {
StringBuffer sb = new StringBuffer();
Set es = packageParams.entrySet();
Iterator it = es.iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
String k = (String) entry.getKey();
String v = (String) entry.getValue();
if (null != v && !"".equals(v) && !"sign".equals(k)
&& !"key".equals(k)) {
sb.append(k + "=" + v + "&");
}
}
sb.append("key=" + this.getKey());
String sign = MD5Util.MD5Encode(sb.toString(), this.charset)
.toUpperCase();
return sign;


}

相關推薦

解決支付 errCode返回-1

最近 新接入一個專案的微信支付功能,遇到回撥老是返回-1 android端要做的事很簡單 wxApi = WXAPIFactory.createWXAPI(getView(), null); wxApi.registerApp(WXConstant.APP_ID);//

解決支付出現OUT_TRADE_NO_USED:商戶訂單號重復

image 現在 對待 行修改 沒有 col 業務 界面 描述 在這裏和大家說一下微信APP支付時出現的一個問題! 在APP調起支付的時候出現了錯誤碼:OUT_TRADE_NO_USED:商戶訂單號重復! 1 xxxxxxx312 xxxxxxx 因為

如何有效解決支付支付授權目錄出錯問題

訂單 param helper 詳細 如何 zone find 開發 per 在對接微信支付的時候,不管是公眾號支付,還是掃碼支付,都會遇到各種各樣復雜的問題,這些問題說復雜,有時候也挺簡單,只是讓人不容易察覺,一個很簡單的小問題有時候會遇到×××煩。那麽今天跟大家分享一下

支付非同步回撥,帶你解決支付的深坑

1.首先我們先下載微信支付的伺服器端demo 2.個檔案作用介紹 index.jsp  下單  payRequest.jsp  獲取微信支付prepay_id等。 重點我說說這個payNotifyUrl.jsp

支付測試返回:access_control:not_allow或system:access_denied

比如我的測試js支付的頁面是 http://10.10.x.y/test/wxpay 。首先要將“商戶功能”->支付測試 下的“支付測試目錄”改成  http://10.10.x.y/test/。 然後注意這句話“測試域名只能在公眾號會話內測試才有效”。 因此,要完

APP 支付java後臺程式碼(解決支付失敗返回-1

開發之前的準備工作: APP支付申請條件 申請成為APP支付商戶需要滿足以下條件: 2、APP應用必須通過開發者認證。 APP支付申請方法 1、登陸開放平臺(open.weixin.qq.com),選擇"管理中心"=》"移動應用",選擇需要申請支付的應用,點選"檢視

支付返回-1,填坑

首先說說  微信坑真多   客戶端程式碼也就10幾行  但是支付老是返回-1(Android Studio) 根據我個人情況分為一下幾點: 1.主要程式碼在後臺:仔細核對appid  應用簽名  API金鑰(商戶平臺) 注意:API金

App 支付出現 IOS 支付驗證簽名失敗 Android errCode =-1

遇到這個問題讓我很憂傷,排查了一下午 記得檢查 app_Key , 就是讓你自己寫的32位大小寫外加數字的那個,這個開始我自己亂寫的,後來查資料說可能會引起不能支付,這就很尷尬了。生成MD532 位,後來試了試,其實沒事,但是最好這樣吧,避免不必要的錯誤 公司可能申請了

支付寶免籤、解決最新版支付寶10.1.50拉起問題!(支付寶 二維碼/轉賬碼/生成方式,收款維碼)

已解決最新版支付寶(10.1.50)部分機型拉不起支付寶問題。 微信,支付寶,收款二維碼實時生成,訂單監控,免籤支,付支付系統,個人收款,收款二維碼 微信和支付寶個人支付二維碼生成與監控!有JAVA介面回撥,個人收款好助手! 實現收款即時到個人微信或支付寶賬戶!方便安全。 這

支付】調起支付,總是顯示-1解決辦法

如果你檢查過 APPID,檢查過商戶號,檢查過包名,檢查過應用簽名,依然顯示 -1 那麼你可以嘗試我這種方式 記住下面這句話 https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5 商戶伺服器生成支付訂

手機APP支付返回-1

最近在做一個電商類的手機APP,在除錯微信支付的環節,除錯了幾個小時依然無法喚起微信支付,一直返回-1,看了網上不少人的帖子,仔細核對了appid、key等配置資料,都是正確的。只好換手機測試,發現在自己的安卓手機測試失敗,在同事的安卓手機測試成功,在蘋果上測試成功。 看網

關於支付方面問題,以及支付返回-1的問題。(千萬不要慌不要慌!)

1.關於微信支付返回-1的問題從微信的官方文件來看,支付返回-1的都是ERR_COMM,也就是普通的,常見的錯誤。普通我倒是沒覺得,常見我倒是常常見。所有人都知道微信支付返回-1無非就是那幾個常見的錯誤,什麼sing錯誤,APP_ID錯誤什麼什麼的,但是很多情況都會返回-1,

支付code=-1的問題解決(坑之下劃線)

最近製作微信支付app支付,發現官方文件實在是很多坑,現把發現的問題列出如下。 關於支付返回值code=-1,發現網上很多文章都提及關於安卓簽名錯誤、包名錯誤等等,但是code=-1的情況其實不僅限於keystore簽名問題,以下是我們遇到的問題。 1、第一步“統一下單”中

支付返回 -1 無法吊起支付頁面 分享閃退

確認id什麼的無誤的情況下建議清理微信快取,還有一個需要注意的是,微信支付與配置簽名有關,如果你微信平臺設定的是正式版的簽名,而你測試使用了debug版本,也可能導致失敗,繼而導致你使用正式版也無法成功,還是清理微信的快取。

支付返回-1的問題集錦與各種爬坑過程

之前公司做微信支付的時候,負責這一模組的同事,天天抱怨微信支付的各種坑還有文件的不清晰,最近幫朋友做了一個app,裡面就有這一功能,看了一上午文件,瞬間發現我的語文也沒學好,各種看不懂就算了,提供的程式碼居然還有錯誤,我可以罵人嗎???!!!還有更噁心的就是第一

iOS支付demo運行報錯解決如下

art llb readme ring -objc override 項目 技術 cep 要接入微信支付的小夥伴,首先要下載一份官方demo(APP微信支付官方Demo下載),然後打開工程,準備大幹一場。 1、編譯報錯 編譯的時候居然直接報錯了(orz) 錯誤提示:

支付--"errcode":40163

code wim 用戶 rom err span flv 錯誤 style {"errcode":40163,"errmsg":"code been used, hints: [ req_id: zd0638th44 ]"} 微信支付獲取用戶openid時,報出錯誤。原因是

支付報錯:time_expire時間過短,刷卡至少1分鐘,其他5分鐘]

log pre 原來 exp 其他 str brush 支付 clas 查了下代碼: $input->SetTime_expire(date("YmdHis", time() + 600));//二維碼過期時間。默認10min 10分鐘,沒問題。   網上查了下

通過生成支付二維碼來實現支付解決方案 - EasyWechat版(轉)

ppi ppk 一個 segment url out -s easy 記得 上一篇我們講了在微信瀏覽器內實現微信支付的功能,它特別適合於一些基於微信公眾號的h5站點等,支付流程也相當流暢,但是... 還有一種情況,比如現在北哥兄弟連PC版,是生成了一個二維碼,這個二維碼

***公眾號支付+H5支付+掃碼支付+小程序支付+APP支付解決方案總結

ati asc alt creat chapter edit 隨機字符串 glob 測試 最近負責的一些項目開發,都用到了微信支付(微信公眾號支付、微信H5支付、微信掃碼支付、APP微信支付)。在開發的過程中,在調試支付的過程中,或多或少都遇到了一些問題,今天總結下,分享,