开发前准备
微信支付有几种模式,这里是选择普通商户直连模式。然后从基础支付中选择使用系统的支付方式,这里选择Native模式。基本信息在官方文档中有详细描述,仅记录开发需要申请的参数。
♥ 应用ID:直连商户申请的公众号或移动应用AppID账号
♥ 直连商户号:直连商户的商户号,由微信支付生成并下发
♥ 商户证书序列号/商户私钥:在微信平台申请的商户证书(传送门)
♥ 商户APIv3对称密钥:在微信商户平台设置此密钥【商户平台】->【API安全】(注:是设置APIv3密钥不是设置API密钥)(商户平台传送门)
请求签名
根据API发请求之前需要使用申请的证书对请求进行签名,否则401验签失败。
请求签名详细记录在这里(API v3版微信支付请求签名)
平台证书
接口响应之后需进行验签,需要微信支付平台证书。验签使用的是微信平台证书,不是商户申请的商户证书。微信平台证书证书需要发送请求获取。响应的证书是密文传输的,需要使用APIv3进行解密才能使用。
API v3版微信支付平台证书获取与自动更新
验签响应
在获取完平台证书之后就可以对响应进行验签。
API v3版微信支付 验签
接口调用
接口响应的数据有可能是加密数据,需要使用APIv3密钥进行相应的进行解密才能使用。
支付结果回调的时候需要https的接口。调试时可以使用jdk生成免费的证书,配置一下tomcat,我的tomcat版本是8.5(8.0和8.5不大一样),参考文章传送门。