目录
功能介绍
电商收付通是微信用于对标支付宝的产品,商户接入后 用户下单付款的资金微信会直接划转到二级商家的冻结资金,当用户确认收货或者分账结束后商户平台发起解冻请求,微信将商家的资金冻结,由此控制账期;平台向微信发起申请提现进行商户的资金提现。
需要准备的材料
1. 服务号/小程序
需开通微信支付和微信服务商;电商收付通最终会接入到这里的服务号/小程序中;
2. 商户号
需开通电商收付通,需要有EDI许可(即增值电信业务经营许可证)。
坑1:申请电商收付通的资质要求中写的是需要ICP许可证,但如果传的是阿里云ICP备案的证书是无法通过审核;注意应该是EDI许可;
3. 开通电商收付通
关联AppID:不同的AppId需要使用到电商服务商的功能,需要在AppID账号管理中进行关联,注意不是一个公司主体下的账户会先由微信审核(1~3天),才能到对方AppId的微信管理后台进行确认授权;
坑2:虽然显示的是不同主体需要审核,但是实际关联时相同主体的服务号关联小程序(小程序为独立小程序,并非在服务号中申请的)时仍然需要审核;
4 准备好你的证书
4.1. 商户API证书:
用于对商户的请求参数进行签名,也就是每次向微信发送请求时在header中携带的参数Authorization其中的signature字段。
从服务商平台的API安全-申请API证书(权威CA颁发)申请获得的,需要安装【微信支付商户平台证书工具】,通过它生成证书;
下图为生成后的证书压缩包1586786671_20200420_cert.zip,与解压缩后的文件,包含证书和一个私钥文件;
其中apiclient_key.pem为商户API私钥文件,也可以通过工具从p12证书中导出私钥文件。
注:两种文件只是格式(p12是二进制, pem是Ascii)不同,其本质是一样的。
$ cd /Users/hanhaotian/cert
$ unzip 1586786671_20200420_cert.zip
$ ll
-rw-r--r-- 1 hanhaotian staff 5.4K 4 20 19:37 1586786671_20200420_cert.zip
-rw-r--r-- 1 hanhaotian staff 2.6K 4 20 19:37 apiclient_cert.p12
-rw-r--r-- 1 hanhaotian staff 1.4K 4 20 19:37 apiclient_cert.pem
-rw-r--r-- 1 hanhaotian staff 1.7K 4 20 19:37 apiclient_key.pem
# 商户API证书-私钥文件
$ cat apiclient_key.pem
-----BEGIN PRIVATE KEY-----
.....
-----END PRIVATE KEY-----
# 商户API证书-序列号
$ openssl x509 -in apiclient_cert.pem -noout -serial
serial=1775500AF16771128BFCF3647D20772CFB2578AD
4.2. 商户API v3秘钥
API v3密钥 用于解密回调通知报文中的数据密文字段ciphertext得到数据原文。在回调通知和微信支付平台证书下载接口中,微信支付对报文关键信息进行了
AES-256-GCM
加密。
从服务商平台的API安全-APIv3秘钥 申请获得的,它与上面的商户证书导出的API秘钥是相互独立的,它的长度为32个字节。
4.3. 微信支付平台证书
微信支付平台公钥 用于对请求接口中的敏感数据加密,以及回调通知时的签名串验签(这里是验证签名串是否合法,而APIv3秘钥是解密密文得到原文)。
平台证书需要调用微信"获取平台证书接口"得到(只提供了API下载),目前这里我们先假设申请得到了。
$ cat publicKey.pem
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
# 查看平台证书序列号
$ openssl x509 -in publicKey.pem -noout -serial
serial=5B86C40247A65D5750C1191C9C56D6CC38178448
证书序列号 用于标识身份和指定具体使用哪个证书。
参考链接
微信APIv3接口规则:https://wechatpay-api.gitbook.io/wechatpay-api-v3/
如何获取微信API证书:https://kf.qq.com/faq/161222NneAJf161222U7fARv.html