php服务器 微信支付 验签失败,微信支付服务商签名验证无误,但是统一下单后服务器返回【签名错误】...

本文主要是介绍php服务器 微信支付 验签失败,微信支付服务商签名验证无误,但是统一下单后服务器返回【签名错误】...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

微信支付服务商签名验证无误,但是统一下单后服务器返回,

同样的代码,采用普通商户模式,一切正常,采用服务商受理模式就签名错误,很是无奈。

普通商务模式,统一下单提交数据如下,可以正常支付:

wx4a7********3f

1********001

WEB

mi068g76xh8sqjiwq9pn5fhgx0xc02gu

9A1A3EE2FDB8A654BEE511DFB51632CD

flyjee

161018T1637310011323101119

CNY

1

1.84.114.244

http://********.com/payment/wxpay/notify

NATIVE

T163731001

服务商受理模式,统一下单提交数据如下,无法正常支付,服务器返回签名失败:

wx4**********d3f

1**********02

14**********02

WEB

syxwhyaimb9jdmwu9p567g8rafgfhxy9

45348143E73EFD6B5531ADEEB385E1A8

flyjee

161018T207610011419101219

CNY

1

1.84.114.244

http://**********.com/payment/wxpay/notify

NATIVE

T20761001

签名验证结果如下:

cdd1ff379c900b166af86bac04fb6d5f.png

以上可见,签名本身算法都是没有问题的。如果mch_id,sub_mch_id,appid等出现错误,也会在微信服务器验证签名之前首先验证,并报错返回的。

经过两天折磨,百般尝试,度娘谷歌,都无果。今天进行参数及业务对比发现,系统参数不会有错了,业务参数也不应该有错,开始怀疑Key的问题,之前一直用的是普通商户对应微信服务号的key,一直认为和升级成服务商后对应的应该是一个。

开始检查,服务商平台--账户中心--API安全,在这里找到了key设置的地方。如下图,根本就没有说当前的key是什么,也没有说要设置,也没有任何接口说要使用这里的key,整个就是一个坑。

点击“设置密钥”,进入后,将密钥设置的和原来的密钥一样。

94e66572cbe8f241a7a5dde725e4ef2e.png

测试,通过了!!居然通过了!!!

这就是巨大的坑啊,微信接口太不靠谱了。

至此问题解决了,希望对大家有帮助

这篇关于php服务器 微信支付 验签失败,微信支付服务商签名验证无误,但是统一下单后服务器返回【签名错误】...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/428941

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

Linux服务器Java启动脚本

Linux服务器Java启动脚本 1、初版2、优化版本3、常用脚本仓库 本文章介绍了如何在Linux服务器上执行Java并启动jar包, 通常我们会使用nohup直接启动,但是还是需要手动停止然后再次启动, 那如何更优雅的在服务器上启动jar包呢,让我们一起探讨一下吧。 1、初版 第一个版本是常用的做法,直接使用nohup后台启动jar包, 并将日志输出到当前文件夹n

C++ | Leetcode C++题解之第393题UTF-8编码验证

题目: 题解: class Solution {public:static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num &

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

easyui同时验证账户格式和ajax是否存在

accountName: {validator: function (value, param) {if (!/^[a-zA-Z][a-zA-Z0-9_]{3,15}$/i.test(value)) {$.fn.validatebox.defaults.rules.accountName.message = '账户名称不合法(字母开头,允许4-16字节,允许字母数字下划线)';return fal

easyui 验证下拉菜单select

validatebox.js中添加以下方法: selectRequired: {validator: function (value) {if (value == "" || value.indexOf('请选择') >= 0 || value.indexOf('全部') >= 0) {return false;}else {return true;}},message: '该下拉框为必选项'}

ORACLE 11g 创建数据库时 Enterprise Manager配置失败的解决办法 无法打开OEM的解决办法

在win7 64位系统下安装oracle11g,在使用Database configuration Assistant创建数据库时,在创建到85%的时候报错,错误如下: 解决办法: 在listener.ora中增加对BlueAeri-PC或ip地址的侦听,具体步骤如下: 1.启动Net Manager,在“监听程序”--Listener下添加一个地址,主机名写计

速盾:直播 cdn 服务器带宽?

在当今数字化时代,直播已经成为了一种非常流行的娱乐和商业活动形式。为了确保直播的流畅性和高质量,直播平台通常会使用 CDN(Content Delivery Network,内容分发网络)服务器来分发直播流。而 CDN 服务器的带宽则是影响直播质量的一个重要因素。下面我们就来探讨一下速盾视角下的直播 CDN 服务器带宽问题。 一、直播对带宽的需求 高清视频流 直播通常需要传输高清视频