业务需要一个在微信上能付款的功能,于是乎想到了最普遍的支付宝,坑爹的是T与A是水火不容啊,默默的还是接微信支付吧,没想到从此掉进了连环坑……

网上写微信支付接口的还是很多,PHP官方有(鄙视源码作者,连参数对应都错了,能跑通才怪),NET版 微信支付--入门篇 这篇算是比较全的,java版。

PHP的只能参考,终究还是先按NET版的还创建项目,不过文章里面也没具体写到如何前后台交互(偶用的MVC),对于初次接触的人来说只能问题来一个解决一个。

至于怎么从0开发就不用详细说明了,参考这位仁兄的 微信支付--入门篇 ,微信支付V2版网上也有Demo,但V3与V2相差太大,以此就新版V3 碰到的问题来说明解决方法。

基础问题先排除:

确保 商户功能 审核通过,会有官方邮件

支付授权目录(注意看文档,大小写关系很大 点击支付按钮,提示“access_denied” 网上有很多关于此问题的解决)

点击支付按钮,提示“access_not_allow” 需要将测试人的微信帐号加入白名单

【在开发调试阶段,测试链接需要在公众号内点击打开 白名单用户在公众号内向公众号发一条消息,消息内容即为测试链接,然后点击打开】文档中写得很清楚,但中招的人还是不计其数(偶也中了……)。

【参数大小写敏感】md5 运算后,字符串的字符要转换为大写,注意是MD5运算模块。

基本问题排除后,出问题最多的就是 利用JSAPI 支付,提示“该公众号支付签名无效,无法发起该笔交易”,此问题搞了2天多,网上到处搜索,不停的对比文档,无耐欲哭无泪啊,“不要用wifi和用流量才不报错”的答案都有(没遇到过)

具体的问题与 坑人的微信新版支付(V3.3.6) 中说的一样(求助被无视了……),能得到预支付 ID:prepay_id,但点击支付就是一直 提示“该公众号支付签名无效,无法发起该笔交易”,又不能本地调试,只能发布后写日志。

根据网上说的调整参数位置、没办法又看文档,那问题出在哪呢?

签名无效,说明出在第二次签名,此次要将参数提交给前台用js来传给微信来校验,查看MD5操作,

prepay_id的获得需传参:

其中MD5签名方法

///

/// 创建md5摘要,规则是:按参数名称a-z排序,遇到空值的参数不参加签名

///

/// 参数名

/// 参数值

/// key和value通常用于填充最后一组参数

///

public virtual string CreateMd5Sign(string key, string value)

{

StringBuilder sb = new StringBuilder();

ArrayList akeys = new ArrayList(Parameters.Keys);

akeys.Sort();

foreach (string k in akeys)

{

string v = (string)Parameters[k];

if (null != v && "".CompareTo(v) != 0

&& "sign".CompareTo(k) != 0 && "key".CompareTo(k) != 0)

{

sb.Append(k + "=" + v + "&");

}

}

sb.Append(key + "=" + value);

string sign = MD5Util.GetMD5(sb.ToString(), GetCharset()).ToUpper();

return sign;

}

1.package改为prepay_id=u802345jgfjsdfgsdXXX 的格式(html页也是此格式)

2.加入signType为MD5加密参数(有人说不加是不对的)

3.两次MD5加密都要按文档的方法 key要放在最后再加密

4.MD5加密对大小写加密的结果是不一样的,检查 appId与appid、timeStamp与timestamp加密后是不一样的,确保HTML与后台加密的参数一模一样,是一模一样哦!!(坑中坑,没想到微信支付竟然对大小写敏感到如此地步),注意第一次加密参数都是小写

5.参数个数5个

6.body参数过长

7.加入openid

我们的问题大多出现在4,按上面顺序解决后终于看到了支付窗口!!!!

此文献给还在深坑中的小伙伴们……

不说了,说多了都是泪……

稍后附上源码。。。

php 微信支付md5签名,微信支付V3支付签名无效解决方案相关推荐

  1. Java中的微信支付(1):API V3版本签名详解

    1. 前言 最近在折腾微信支付,证书还是比较烦人的,所以有必要分享一些经验,减少你在开发微信支付时的踩坑.目前微信支付的 API 已经发展到V3版本,采用了流行的 Restful 风格. 微信支付V2 ...

  2. php 微信支付md5签名,微信支付回调验证签名处理

    微信支付回调验证签名:一定要验证签名,可能不造成伪造数据,或者数据库造到灌水: /** * 微信支付回调类 * @name callbackaction.class.php * @author yan ...

  3. php 微信支付md5签名,微信支付 MD5 签名中文问题

    微信支付流程中, 需要先调用微信商户平台的统一下单接口,生成 prepay_id,传输的参数值通常包含中文,示例如下: image.png 因此,在进行 MD5 生成签名时,需要注意能够支持中文(注: ...

  4. 微信v3支付【php】

    微信v3支付 加载guzzlehttp和wechatpay的composer包 案例 目前只使用到jsapi支付.其他支付尚未尝试,如有bug请自己调试. 加载guzzlehttp和wechatpay ...

  5. 微信公众号之微信支付(V3版)jsp页面jsapi统一下单调启支付(java版)

    web项目 按顺序一步一步来 准备: 申请了微信支付接口的微信公众号一枚 , 备案的域名网站一枚, (如果有没有的这两个东西会耽误你很久,因为微信支付必须是线上,无法本地调试,) 这里说一下 如果有经 ...

  6. java集成微信支付接口(微信V3版)

    吐槽下: 经常有人问我,你不是在某软件公司么?我听说大公司都是JAVA,对吗? 我只想回答,那是网上流传的骗人的传说,据我所知公司开发组大部分都是C#,少部分用JAVA. 这不,官方提供那个Demo就 ...

  7. JPA框架微信支付对接-V3支付接口,V2退款接口对接,复制即用

    框架:springDateJPA 对接微信支付首先需要需要在微信商户平台注册微信商户号 微信商户平台入口 微信公众平台入口 这里主要是微信支付的方式,一共有七种,我这里主要对接了3种,App支付,JS ...

  8. 微信V3支付 订单查询 退款查询

    本编在对接V3支付的时候连连撞头,希望后来人能少走点弯路,如果有bug请海涵啊,希望各位大佬也能给我点意见,话不多说上代码: service层 package com.tiyaa.mall.pay.s ...

  9. 微信支付开发 认清微信支付v2和v3

    微信支付现在分为v2版和v3版 2014年9月10号之前申请的为v2版(旧版本),之后申请的为v3版. V2版中的参数有 AppID AppSecret 支付专用签名串PaySignKey 商户号Pa ...

  10. python --微信v3支付

    关于py支付的资源 https://www.cnblogs.com/mxhmxh/p/10763313.html https://blog.csdn.net/qq_37193537/article/d ...

最新文章

  1. Android/Java 中线程(Thread)的使用
  2. 跨平台图表控件TeeChart使用教程:导入XML数据
  3. 济南python工资一般多少钱-济南Python+人工智能
  4. 一主两从的环境,如果主库挂了,如何选举一个从库作为主库?
  5. java堆内存和堆外内存_Java堆空间,本机堆和内存问题
  6. ACL'21 | debug完的神经网络,如何测试是否仍然存在bug?
  7. js数字转中文大写支持负数
  8. 让SH/BAT脚本定位到运行目录的相对位置,实现其脚本可在任意运行目录下被正确执行...
  9. 记录——《C Primer Plus (第五版)》第十章编程练习第八题
  10. html+fadein动画,使用Animate.css制作超炫的CSS3动画
  11. python简单代码-用Python代码实现5种最好的、简单的数据可视化!
  12. 【20171227】json
  13. Swift_学习笔记_调用ObjectiveC方法
  14. python redis缓存_第二百九十五节,python操作redis缓存-字符串类型
  15. CAS 实现的单点登录
  16. eclipse的正确使用方式
  17. 傅里叶变换性质----Leson Chap3_8-9
  18. (19)zabbix Applications使用介绍
  19. PCI e 转 PXI 远程 转接 套件 PCI e / PXI 远程控制 器 模块 板卡
  20. Matlab读取excel并使用拉依达准则筛选数据

热门文章

  1. python生成word目录_Python word_cloud导出字体路径后找不到字体路径
  2. 最新HTML完整结构
  3. 黑鲨创建nt6引导出错_黑苹果神器,一键生成OpenCore EFI 文件
  4. python 小说分析_谁还没看过几本金庸小说?用Python分析一下当年最爱看的主角是谁...
  5. Matlab/Simulink-Boost电路双闭环仿真搭建
  6. OpenCms中文网(www.opencms.org.cn)因所在电信机房所有服务器80端口被封而中断
  7. R语言smoothHR包_“统计学诺贝尔奖”授予R语言软件工程师
  8. 威漫哨兵机器人_漫威:哨兵机器人天下无敌?这几位变种人就不把他们放在眼里...
  9. matlab求含参数一元三次方程,matlab 求解一元三次方程,带其他参数
  10. 蒸汽管道图纸符号_管道图形符号