快捷搜索:  test  as

3、参数不能多也不能少(重要)

  随笔 - 640, 文章 - 20, 评论 - 7942, 引用 - 20

  企业微信的支付自从企业号变化为企业微信后,增加了一些支付接口以及对很多接口进行了调整,企业微信的支付处理也是变化了不少,往往有时候碰到不少坑,一步一个脚印趟过来的;企业微信支付是需要结合微信商户后台进行处理,有时候也需要设置好商户平台的相关处理,才能进行发送红包、支付到个人等等支付处理。本篇随笔介绍在企业微信的支付处理中的发送红包的操作相关内容。

  企业微信的支付自从企业号变化为企业微信后,增加了一些支付接口以及对很多接口进行了调整,企业微信的支付处理也是变化了不少,往往有时候碰到不少坑,一步一个脚印趟过来的;企业微信支付是需要结合微信商户后台进行处理,有时候也需要设置好商户平台的相关处理,才能进行发送红包、支付到个人等等支付处理。本篇随笔介绍在企业微信的支付处理中的发送红包的操作相关内容。

  我们查看企业微信API的目录,可以看到企业微信支付的相关介绍,如下所示。

  企业微信支付,经常见到的错误信息,就是签名错误这个操作,这个很多人出招,解决方法各种各样,其实很多可能是不符合的,这样排查问题起来就很吃力。

  这里需要遵循官方的解析进行排查,特别对参数的顺序和数量进行核对,注意不要增加多一个参数,否则都容易出现签名错误。

  我就是在官方需要参数都有了,打印输出的格式也没问题,就是不小心多了一个参数(还是升级前有的一个),导致错误很难排查,弄得很头大。

  3、参数不能多也不能少(重要),如很多时候由于版本原因这里不小心多了一个total_num导致签名错误

  另外,除了这些问题外,重要的问题就是签名的处理了,微信支付除了有一个常规的签名sign参数外,还增加了一个workwx_sign的参数,两者的规则是不同的。

  workwx_sign参数在前,使用系统给出的计算方式计算后,然后在计算sign参数,sign参数的计算是包含本身之外的所有参数进行计算,包括了workwx_sign参数。

  对于企业微信的签名workwx_sign参数,不要将参数全部参与计算签名,否则会返回微信签名错误!

  计算企业微信签名的字符串最后拼的secret是企业微信管理端支付应用页面的secret,如下图所示。

  第一步: 对参数按照key=value的格式,并按照参数名ASCII字典序排序如下

  第二步:拼接企业微信支付应用secret(参见企业微信管理端支付应用页面):

  在企业微信中,常用到的企业微信的userid,不过发送红包则需要把userid转换为微信的openid进行使用,转换函数根据UserID 换取用户的OpenId如下。

  其实以上很多参数大家应该都很了解,相对于来说MakeWorkWxSign 和MakeSign 就是这里的关键处理,而前者正是很多人没有处理好的问题所在。

  下面把相关函数贴出来,方便对照了解下吧,其实下面这些函数是放在WxPayData类里面,统一管理处理对应的签名的。

声明:本文图片、文章来源于网络,不代表现金红包之意见及观点,如有侵权,请与我联系删除。转载请注明出处: http://www.123ins.com/weixinhongbao/11544.html

您可能还会对下面的文章感兴趣: