日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

亲身经历之微信支付沙箱环境扫码支付遇到的那些坑

發布時間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 亲身经历之微信支付沙箱环境扫码支付遇到的那些坑 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

很多用戶在調用微信支付掃碼支付沙箱環境都一臉迷茫,廢話不多說,遇到很多坑,為了讓大家少走彎路下面直接說說我開發微信支付遇到坑,微信沙箱不是一般的坑,是很大的坑。

1.首先下載的官方demo,不能直接用,里面參數少,參數少啊,需要按照官方的api文檔,對照必傳參數。

2.微信支付不同于其他支付,沙箱環境利用的是正式賬號,其signkey也是根據正式key獲取到的,沙箱只支持MD5加密,然后獲取后調用接口時候需要替換正式key。

微信支付驗收階段可以用沙盒測試支付流程

https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=23_1

步驟如下

1.正式請求地址修改,增加/sandboxnew/

2.按正式流程做sign

3.用正式sign,額外調用?https://api.mch.weixin.qq.com/sandboxnew/pay/getsignkey 獲得sandbox_signkey

4.用sandbox_signkey 替換用戶自己的key,再做sign簽名

5.用第二次生成的sign來掉起支付

6.發起支付的瞬間就會有回掉通知

/// <summary>/// 獲取沙箱簽名密鑰。/// </summary>/// <returns></returns>public static string GetSignKey(){string nonceStr = WxPayApi.GenerateNonceStr();WxPayData signParam = new WxPayData();signParam.SetValue("mch_id", WxPayConfig.GetConfig().GetMchID());signParam.SetValue("nonce_str", nonceStr);signParam.SetValue("sign", signParam.MakeSign());string xml = signParam.ToXml();string url = "https://api.mch.weixin.qq.com/sandboxnew/pay/getsignkey";string response = HttpService.Post(xml, url, false, 10);Log.Debug("WxPayApi", "GetSignKey response : " + response);WxPayData result = new WxPayData();SortedDictionary<string, object> items = result.FromXml(response);object signKey;if (items.TryGetValue("sandbox_signkey", out signKey)){return signKey.ToString();}else if (items.TryGetValue("return_msg", out signKey)){throw new WxPayException(signKey.ToString());}elsethrow new WxPayException("獲取沙箱密鑰失敗!");}

也可以利用POSTMAN獲取,獲取到的測試key并非長期有效,有三天有效期

3.重要的事情說三遍

微信支付沙箱環境不用掃碼,不用掃碼,不用掃碼,掃了白掃,掃完你會一臉懵逼,模式一二維碼一直提示原生支付URL參數錯誤,模式二掃碼的時候提示碼已經過期,請重新生成。沙箱環境是直接出現二維碼后5秒后需要調用自動下單接口,然后再 調用查詢訂單接口。他不是真實支付所以不需要用微信掃碼。

4.還有一點需要注意的地方需要關注微信支付商戶接入驗收助手,按照驗收指引操作,里面有測試用例,其支付金額不是隨意,必須按照測試用例金額測試。

5.找到Data.cs文件,圖中圈中的地方,注釋掉

6還有圖中圈中的地方,需要增加ToUpper(),如果不加我調試的代碼出來是小寫獲取的簽名是大學,造成不等返回false,簽名驗證錯誤

?

?

轉載于:https://www.cnblogs.com/zhaojingwei/p/11262101.html

總結

以上是生活随笔為你收集整理的亲身经历之微信支付沙箱环境扫码支付遇到的那些坑的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。