很多用户在调用微信支付扫码支付沙箱环境都一脸迷茫,废话不多说,遇到很多坑,为了让大家少走弯路下面直接说说我开发微信支付遇到坑,微信沙箱不是一般的坑,是很大的坑。

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

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

  1. ThinkPHP整合微信支付之Native 扫码支付 模式二

    大家好,这篇文章是继微信支付之Native 扫码支付 模式一之后的微信支付系列教程第三篇:扫码支付之模式二 介绍下扫码支付目前有两种模式,模式一比模式二稍微复杂点,至于模式一与模式二的具体内容,流程, ...

  2. 微信和支付宝H5扫码支付开发记录

    微信和支付宝H5扫码支付开发记录 微信支付 支付宝支付 简单前端实现的一下方法,服务端方法未记录: 微信支付 微信流程步骤简介 1.获取用户code 2.拉起微信支付 支付宝支付 支付宝流程步骤简介: ...

  3. PHP 支付PC端扫码支付、APP接口调起支付宝支付、微信公众号接入支付宝支付

    第一:第三方支付原理 第二:支付接口申请流程 地址:https://docs.open.alipay.com/270/105899/ : 参考地址:https://blog.csdn.net/nove ...

  4. 对支付宝微信们来说,扫码支付限额 500 元新规意味着什么?

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 12月27日下午,据中国人民银行(下称央行)网站消息,将于近日发布关于印发<条码支付业 ...

  5. 微信支付开发(2) 扫码支付模式一

    关键字:微信支付 微信支付v3 native支付 扫码支付模式一 统一支付 Native支付 prepay_id  作者:方倍工作室 原文: http://www.cnblogs.com/txw195 ...

  6. 商户接入微信支付方法(扫码支付、刷卡、app)

    微信支付的几种方式解读: 微信支付商户平台的付款方式有以下几种: 公众号支付:在微信内的商家页面上完成公众号支付 APP支付:在APP中,调起微信进行APP支付 扫码支付:扫描二维码(包含PC网站)进 ...

  7. 微信pc Native支付 支付宝pc扫码支付 Demo PHP tp5

    官方sdk Demo 支付宝 请求支付代码 public function alipay(){$arr =input('param.');vendor('alipay-trade-page-pay/a ...

  8. ThinkPHP整合微信支付之Native 扫码支付 模式一

    大家好,这篇文章是继微信支付jsapi篇之后的微信支付系列教程第二篇:扫码支付之模式一 介绍下扫码支付目前有两种模式,模式一比模式二稍微复杂点,至于模式一与模式二的具体内容,流程,微信开发文档都有详细 ...

  9. springboot整合微信支付宝二合一扫码支付,完整实例代码

    项目采用springboot框架,支付宝的配置相对简单,微信的配置主要是要找对地方. 完整项目已上传.下载地址:https://download.csdn.net/download/miao5371/ ...

最新文章

  1. Python+OpenCV 图像处理系列(1)— Ubuntu OpenCV安装、图片加载、显示和保存
  2. eas库存状态调整单不能反审核_石材家装企业采购库存管理流程案例
  3. Github 工作流程
  4. VMWare 虚拟机启动报“内部错误”的解决办法
  5. VS2005的Command Window 调试命令的总结(转载)
  6. C# 页面调用控制台应用程序
  7. Android下检测网络连接 3G WIFI
  8. elasticsearch报错expected block end, but found BlockMappingStart解决方法
  9. [Leedcode][JAVA][第300题][最长上上子序列][动态规划][压缩空间]
  10. linux磁盘配额edquota,Linux磁盘配额(Quota)
  11. 【算法分析与设计】快速幂算法与快速幂取模算法
  12. python web应用_如何使用Python将通知发送到Web应用
  13. 华为荣耀7能改成Linux吗,华为荣耀7电池怎么样?华为荣耀7可以更换电池吗?
  14. ios 7.1企业证书无线安装
  15. 你有被代理过吗?讲讲开源框架都在用的代理模式
  16. MCU控制继电器的电路详解
  17. 服务器保存时提示文档未保存,Word文档保存时常遇到的问题及其解决方法
  18. 《FFmpeg从入门到精通》读书笔记(五)
  19. JavaFX学习之道:布局面板之 HBox
  20. the little scheme Y-combinator

热门文章

  1. java顺序表冒泡排序_冒泡排序就这么简单 - Java3y的个人空间 - OSCHINA - 中文开源技术交流社区...
  2. java 线程 释放_java线程似乎不会被释放
  3. dev控件swiftplot图滚动方法_无限轮播图使用Scroller就这么简单
  4. dll模块化设计与编程_FPGA设计原则经验分享
  5. matlab7.0 run,新手求救啊!!!matlab7.0在win7启动后命令窗口出现大段代码!
  6. 基于SVD的降维优化
  7. html字符串变量,字符串变量中的Python HTML
  8. 如何用手机打开dcm格式图片_如何防止自己的图片被盗用?这 4 招教你优雅加水印...
  9. 速达财务3000服务器账套维护显示,速达3000财务软件使用常见问题
  10. python矩阵运算dot_numpy中的dot矩阵乘法