微信支付接口常用参数及证书区分

注意:服务商模式下,均是使用服务商的以下信息

1. 证书

1.1商户api证书(v2和v3接口都需要使用)

1.1.1获取方式:

什么是商户API证书?如何获取商户API证书? (商户api证书
),里面介绍了如何获取商户证书的详细步骤

1.1.2作用:

v3接口:

使用商户api证书私钥用于生成签名(签名的官方文档: 签名生成-接口规则 | 微信支付商户平台文档中心 ) ,一共三个证书文件,一个说明文件(建议阅读一下),商户api证书私钥是apiclient_key.pem这个文件(代码加载,参考官方文档: https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay7_1.shtml),剩下的两个证书文件目前我个人是没有发现在v3接口需要使用,咨询技术支持也是这样回复的。

v2接口:

v2接口需要使用证书的接口在文档会有特别提示:

一般开发语言使用的p12证书,详细信息参考链接:https://pay.weixin.qq.com/wiki/doc/api/jsapi_sl.php?chapter=4_3

注意:
1.php使用方法参考文档

2. .NET环境开发,请确认Framework版本大于2.0,必须在操作系统上双击安装证书apiclient_cert.p12后才能被正常调用。


3.apiclient_cert.p12是商户证书文件,除PHP外的开发均使用此证书文件。官方sdk包含了示例代码,这里展示的是java语言的

1.1.3如何查看 证书使用是否正确(v2和v3接口通用检查方法):

到证书解析的网站解析( 证书查看 ) apiclient_cert.pem这个文件,查看它的证书序列号,对比商户平台的证书序列号。(下载证书的时候这三个文件一般放在一起,根据apiclient_cert.pem文件判断使用的是否是正确的

1.1.4商户api证书序列号查看方式及作用(v3接口)

查看:管理员帐号登录微信商户管理后台,在API安全里面点击查看证书可以获取。
作用:构建签名,用于声明所使用的证书

1.2微信支付平台证书(v3接口使用)

1.2.1获取方式

1:接口获取(官方文档: 平台证书-文档中心-微信支付商户平台 ,代码(java): https://github.com/wechatpay-apiv3/wechatpay-apache-httpclient

2:官方工具:( SDK,工具 | 微信支付商户平台文档中心

3:postman(https://github.com/wechatpay-apiv3/wechatpay-postman-script):配置好可以直接下载,然后解密(解密参考:证书和回调报文解密-接口规则 | 微信支付商户平台文档中心

即可使用(推荐在测试的时候使用,顺便检查了签名的参数是否正确)

1.2.2作用:

1、用户回调信息的验签(验签文档: 签名验证-接口规则 | 微信支付商户平台文档中心 ),验签的方法很多,这里就不提供了,【重要】:

这个顺序不能改变,顺序改变会出现验签失败,接口返回的来的顺序不要修改,可能某些方法会修改顺序(亲测加咨询)。
2、敏感信息加解密([敏感信息加解密-接口规则 | 微信支付服务商平台文档中心])

1.2.3检查微信支付平台证书使用是否正确:

1:检查回调信息返回的微信支付平台证书序列号和商户现有的微信支付平台证书序列号是否一致,如果不一致,请重新下载
2:如果重新下载的微信支付平台证书序列号跟当前回调的微信支付平台证书序列号不一致,则应该是下载的微信支付平台证书的商户号不是当前回调订单的商户

1.2.4微信支付平台证书序列号获取方式及作用

获取:跟微信支付平台证书获取方式一致(对应字段:serial_no)
作用:1.回调参数返回给商户,用于验证回到的安全性(也可以用来区分是哪一个商户的回调,因为每个商户的微信支付平台证书序列号不一致)
2.用户敏感信息加密时,当作加密标识

注意:回调返回的和请求接口时返回的证书序列号是微信支付平台证书序列号,不是商户API证书序列号,二者不一样

2. apiv3密钥(v3接口使用)

2.1如何设置:

什么是APIv3密钥?如何设置? (文档说明了如何设置,这里就不提供商户平台的截图了)

2.2作用:

v3接口下,商户对支付回调的解密(咨询技术支持说逻辑是发给我们的回调通知是使用我们商户平台设置的apiv3密钥进行加密的,所以也是使用它来解密,解密失败有三种可能:1.apiv3密钥错误,跟当时设置的不一样2.使用的apiv3的密钥不是当前订单对应商户号下设置的apiv3密钥)(官方解密: 证书和回调报文解密-接口规则 | 微信支付商户平台文档中心 ,亲测报错AEADBadTagException: Tag mismatch! 检查就是apiv3密钥错误导致
)3.解密的参数不完整,请检查回调参数的完整性

3.apiv2密钥(v2接口使用)

3.1如何设置:

什么是APIv2密钥?如何设置或修改? (文档说明了如何设置,这里就不提供商户平台的截图了)

3.2作用:

商户调用v2接口时,使用api密钥进行签名,或者对v2接口返回的回调信息进行验签和解密(部分回调需要解密,比如退款回调)

注意:apiv3密钥和apiv2密钥不是同一个参数,作用不相同,二者独立设置,且互不影响

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
要使用Python调用微信支付接口,首先需要安装并导入相关的Python库。常用的库有requests、xmltodict等。 首先,需要在微信支付官方网站申请并获取到支付接口的API密钥、APPID等信息。然后,使用requests库发送HTTPS请求,并在请求头中添加必要的信息,如用户的API密钥、签名类型、请求方法等。 在请求的主体部分,需要构建符合微信支付接口要求的XML格式的数据,包括必要的参数商户订单号、总金额、商品描述等。可以使用xmltodict库将数据转换为XML格式,并将其作为请求的主体发送。 接下来,需要对请求的数据进行签名处理。微信支付接口要求对请求的参数进行MD5签名或者HMAC-SHA256签名。可以使用hashlib库计算MD5或HMAC-SHA256签名,并将签名结果添加到请求的参数中。 然后,将请求的数据发送到微信支付接口的URL。接收到响应后,需要对响应进行相应的处理,如判断响应的状态码、对返回的XML格式数据进行解析等。 最后,根据微信支付接口返回的结果,可以进行相应的业务逻辑处理。例如,判断支付是否成功、更新订单的状态等。 需要注意的是,在调用微信支付接口时要保证请求的安全性,如使用HTTPS协议、对请求的数据进行加密等。同时,还要遵循微信支付接口的相关规范,如接口版本的要求、接口参数的格式要求等。 总结起来,Python调用微信支付接口的过程主要包括:获取接口信息、构建请求数据、对请求数据进行签名处理、发送请求、处理响应、处理支付结果等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开源商城源码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值