亲身经历之微信支付沙箱环境扫码支付遇到的那些坑
很多用户在调用微信支付扫码支付沙箱环境都一脸迷茫,废话不多说,遇到很多坑,为了让大家少走弯路下面直接说说我开发微信支付遇到坑,微信沙箱不是一般的坑,是很大的坑。
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
亲身经历之微信支付沙箱环境扫码支付遇到的那些坑相关推荐
- ThinkPHP整合微信支付之Native 扫码支付 模式二
大家好,这篇文章是继微信支付之Native 扫码支付 模式一之后的微信支付系列教程第三篇:扫码支付之模式二 介绍下扫码支付目前有两种模式,模式一比模式二稍微复杂点,至于模式一与模式二的具体内容,流程, ...
- 微信和支付宝H5扫码支付开发记录
微信和支付宝H5扫码支付开发记录 微信支付 支付宝支付 简单前端实现的一下方法,服务端方法未记录: 微信支付 微信流程步骤简介 1.获取用户code 2.拉起微信支付 支付宝支付 支付宝流程步骤简介: ...
- PHP 支付PC端扫码支付、APP接口调起支付宝支付、微信公众号接入支付宝支付
第一:第三方支付原理 第二:支付接口申请流程 地址:https://docs.open.alipay.com/270/105899/ : 参考地址:https://blog.csdn.net/nove ...
- 对支付宝微信们来说,扫码支付限额 500 元新规意味着什么?
点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 12月27日下午,据中国人民银行(下称央行)网站消息,将于近日发布关于印发<条码支付业 ...
- 微信支付开发(2) 扫码支付模式一
关键字:微信支付 微信支付v3 native支付 扫码支付模式一 统一支付 Native支付 prepay_id 作者:方倍工作室 原文: http://www.cnblogs.com/txw195 ...
- 商户接入微信支付方法(扫码支付、刷卡、app)
微信支付的几种方式解读: 微信支付商户平台的付款方式有以下几种: 公众号支付:在微信内的商家页面上完成公众号支付 APP支付:在APP中,调起微信进行APP支付 扫码支付:扫描二维码(包含PC网站)进 ...
- 微信pc Native支付 支付宝pc扫码支付 Demo PHP tp5
官方sdk Demo 支付宝 请求支付代码 public function alipay(){$arr =input('param.');vendor('alipay-trade-page-pay/a ...
- ThinkPHP整合微信支付之Native 扫码支付 模式一
大家好,这篇文章是继微信支付jsapi篇之后的微信支付系列教程第二篇:扫码支付之模式一 介绍下扫码支付目前有两种模式,模式一比模式二稍微复杂点,至于模式一与模式二的具体内容,流程,微信开发文档都有详细 ...
- springboot整合微信支付宝二合一扫码支付,完整实例代码
项目采用springboot框架,支付宝的配置相对简单,微信的配置主要是要找对地方. 完整项目已上传.下载地址:https://download.csdn.net/download/miao5371/ ...
最新文章
- Python+OpenCV 图像处理系列(1)— Ubuntu OpenCV安装、图片加载、显示和保存
- eas库存状态调整单不能反审核_石材家装企业采购库存管理流程案例
- Github 工作流程
- VMWare 虚拟机启动报“内部错误”的解决办法
- VS2005的Command Window 调试命令的总结(转载)
- C# 页面调用控制台应用程序
- Android下检测网络连接 3G WIFI
- elasticsearch报错expected block end, but found BlockMappingStart解决方法
- [Leedcode][JAVA][第300题][最长上上子序列][动态规划][压缩空间]
- linux磁盘配额edquota,Linux磁盘配额(Quota)
- 【算法分析与设计】快速幂算法与快速幂取模算法
- python web应用_如何使用Python将通知发送到Web应用
- 华为荣耀7能改成Linux吗,华为荣耀7电池怎么样?华为荣耀7可以更换电池吗?
- ios 7.1企业证书无线安装
- 你有被代理过吗?讲讲开源框架都在用的代理模式
- MCU控制继电器的电路详解
- 服务器保存时提示文档未保存,Word文档保存时常遇到的问题及其解决方法
- 《FFmpeg从入门到精通》读书笔记(五)
- JavaFX学习之道:布局面板之 HBox
- the little scheme Y-combinator
热门文章
- java顺序表冒泡排序_冒泡排序就这么简单 - Java3y的个人空间 - OSCHINA - 中文开源技术交流社区...
- java 线程 释放_java线程似乎不会被释放
- dev控件swiftplot图滚动方法_无限轮播图使用Scroller就这么简单
- dll模块化设计与编程_FPGA设计原则经验分享
- matlab7.0 run,新手求救啊!!!matlab7.0在win7启动后命令窗口出现大段代码!
- 基于SVD的降维优化
- html字符串变量,字符串变量中的Python HTML
- 如何用手机打开dcm格式图片_如何防止自己的图片被盗用?这 4 招教你优雅加水印...
- 速达财务3000服务器账套维护显示,速达3000财务软件使用常见问题
- python矩阵运算dot_numpy中的dot矩阵乘法