目錄
功能介紹
電商收付通是微信用於對標支付寶的產品,商戶接入後 用戶下單付款的資金微信會直接劃轉到二級商家的凍結資金,當用戶確認收貨或者分賬結束後商戶平臺發起解凍請求,微信將商家的資金凍結,由此控制賬期;平臺向微信發起申請提現進行商戶的資金提現。
需要準備的材料
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