评论

分享一下在使用微信支付接口中会使用到的配置项信息详解

平台证书、商户证书等信息简介

1、微信支付平台证书

1-1作用:

1-1-1、签名验证:商户的技术人员应使用微信支付平台证书中的公钥验签

1-1-2、敏感信息加解密:开发者应当使用微信支付平台证书中的公钥,对上送的敏感信息进行加密。这样只有拥有私钥的微信支付才能对密文进行解密,从而保证了信息的机密性。

另一方面,微信支付使用 商户证书中的公钥对下行的敏感信息进行加密。开发者应使用商户私钥对下行的敏感信息的密文进行解密。

1-2如何获取:

1-2-1、请求接口获取(文档地址:https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay5_1.shtml)

1-2-2、通过官方提供的证书下载工具获取(https://github.com/wechatpay-apiv3/CertificateDownloader)

1-2-3、通过官方提供的SDK中的代码获取,目前只提供了JAVA、PHP、GO(https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay6_0.shtml)

JAVA语言第一次如何下载平台证书并且跳过验签

获取平台证书示例:

跳过验签示例:

1-3、平台证书解密:平台证书下载完成后是一段密文,是需要把它解密完成后保存成pem格式文件可以供使用。这里官方是提供了示例代码的


2、微信支付商户证书

2-1、作用: 

技术开发人员在调用微信支付安全级别较高的接口(如:退款、企业红包、企业付款)时,会使用到API证书。API证书是用来证实商户身份的, 证书中包含商户号、证书序列号、证书有效期等信息,需要由证书授权机构(Certificate Authority ,简称CA)签发,以防证书被伪造或篡改。

2-2、如何获取:

参考文档:https://kf.qq.com/faq/161222NneAJf161222U7fARv.html

2-3、内容介绍:

证书pkcs12格式(apiclient_cert.p12):包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份。部分安全性要求较高的API需要使用该证书来确认您的调用身份

证书pem格式(apiclient_cert.pem):从apiclient_cert.p12中导出证书部分的文件,为pem格式,证书序列号也可以从这个文件里解析得到

证书密钥pem格式(apiclient_key.pem):从apiclient_cert.p12中导出密钥部分的文件

3、API密钥 (注:API 密钥只适用于V2版本的接口,并且密钥的长度为32个字节)

3-1、作用:商户调用微信支付API时,要按照指定规则对请求数据进行签名。服务器收到请求后会进行签名验证,从而界定商户的身份并防止其他人恶意篡改请求数据。签名的计算规则中,使用到的key就是API密钥。

3-2、如何获取:参考文档:https://kf.qq.com/faq/180830UVRZR7180830Ij6ZZz.html

4、APIV3Key(注:APIV3Key只适用于V3版本的接口,并且密钥的长度为32个字节)

4-1、作用:为了保证安全性,微信支付在 回调通知和平台证书下载接口中,对关键信息进行了AES-256-GCM加密。API v3密钥是加密时使用的对称密钥。

4-2、如何获取:参考文档:https://kf.qq.com/faq/180830E36vyQ180830AZFZvu.html

最后一次编辑于  2021-07-26  
点赞 1
收藏
评论

2 个评论

  • 北望沣渭
    北望沣渭
    2021-07-26

    很多同学至今还分不清「商户证书」、「平台证书」,建议文章再编排一下,让右侧能显示出来toc

    2021-07-26
    赞同 1
    回复
  • 林启濠
    林启濠
    发表于移动端
    2021-07-26
    一个星期
    2021-07-26
    赞同
    回复
登录 后发表内容