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