最新更新時(shí)間:2021.11.23 版本說明
商戶可以調(diào)用此接口獲取對(duì)賬單文件的下載鏈接,并在有效期內(nèi)請(qǐng)求下載鏈接可以下載對(duì)賬單文件。
● 商戶獲取到的對(duì)賬單數(shù)據(jù),需先解密、再解壓,才能得到原始賬單文件。
適用對(duì)象:直連商戶
請(qǐng)求URL:https://api.mch.weixin.qq.com/v3/payscore/merchant-bill
請(qǐng)求方式:GET
path 指該參數(shù)為路徑參數(shù)
query 指該參數(shù)為URL參數(shù)
body 指該參數(shù)需在請(qǐng)求JSON傳參
參數(shù)名 | 變量 | 類型[長(zhǎng)度限制] | 必填 | 描述 |
---|---|---|---|---|
賬單日期 | bill_date | string[1, 10] | 是 | query格式y(tǒng)yyy-MM-DD,僅支持下載近三個(gè)月的賬單 示例值:2021-01-01 |
賬單壓縮類型 | tar_type | string | 是 | query賬單的壓縮類型 GZIP:文件壓縮方式為gzip,返回.gzip格式的壓縮文件 示例值:GZIP |
加密算法 | encryption_algorithm | string | 是 | query對(duì)返回賬單原文加密的算法 AEAD_AES_256_GCM:AEAD_AES_256_GCM加密算法,賬單使用AEAD_AES_256_GCM加密算法進(jìn)行加密 示例值:AEAD_AES_256_GCM |
服務(wù)ID | service_id | string[1, 32] | 是 | query支付分服務(wù)ID 示例值:2002000000000558128851361561536 |
https://api.mch.weixin.qq.com/v3/payscore/merchant-bill?bill_date=2021-01-01&tar_type=GZIP&encryption_algorithm=AEAD_AES_256_GCM&service_id=2002000000000558128851361561536
參數(shù)名 | 變量 | 類型[長(zhǎng)度限制] | 必填 | 描述 |
---|---|---|---|---|
下載信息總數(shù) | download_bill_count | int | 是 | 賬單的分塊數(shù)量 示例值:1 |
+ 下載信息明細(xì) | download_bill_list | array | 是 | 賬單每個(gè)分塊的詳細(xì)信息 |
{
"download_bill_count": 1,
"download_bill_list": [
{
"bill_sequence": 1,
"download_url": "https://api.mch.weixin.qq.com/v3/payscore/bill/downloadurl?token=xxx",
"encrypt_key": "a0YK7p+9XaKzE9N4qtFfG/9za1oqKlLXXJWBkH+kX84onAs2Ol/E1fk+6S+FuBXczGDRU8I8D+6PfbwKYBGm0wANUTqHOSezzfbieIo2t51UIId7sP9SoN38W2+IcYDviIsu59KSdyiL3TY2xqZNT8UDcnMWzTNZdSv+CLsSgblB6OKGN9JONTadOFGfv1OKkTp86Li+X7S9bG62wsa572/5Rm4MmDCiKwY4bX2EynWQHBEOExD5URxT6/MX3F1D3BNYrE4fUu1F03k25xVlXnZDjksy6Rf3SCgadR+Cepc6mdfF9b2gTxNsJFMEdYXbqL0W1WQZ3UqSPQCguK6uLA==",
"hash_type": "SHA1",
"hash_value": "79bb0f45fc4c42234a918000b2668d689e2bde04",
"nonce": "5K8264ILTKCH16CQ2502SI8ZNMTM67VS"
}
]
}
商戶資金賬單文件采用商戶指定的加密算法(目前只支持AES-256-GCM算法)進(jìn)行加密,商戶需要進(jìn)行解密才能得到賬單明文。解密流程是:
步驟1 下載賬單文件,得到賬單文件密文ciphertext;
步驟2 使用商戶證書私鑰解密從接口獲取的加密密鑰(變量名:encrypt_key)得到密鑰明文key;
步驟3 利用步驟一、二中得到的賬單密文ciphertext,密鑰key和接口返回的隨機(jī)字符串nonce解密賬單,得到賬單明文。
賬單文件解密代碼示例請(qǐng)參考[WechatPay-API-v3 證書和回調(diào)報(bào)文解密],注意:返回的賬單文件是二進(jìn)制密文,不需要進(jìn)行Base64解碼。
下面對(duì)解密代碼中使用的參數(shù)進(jìn)行說明:
{
// 密文
"ciphertext": "下載得到的賬單文件密文",
// 加密使用的密鑰
"key": "用商戶證書私鑰解密加密密鑰得到的明文",
// 加密使用的隨機(jī)字符串
"nonce": "接口返回的隨機(jī)字符串",
// 附加數(shù)據(jù)包(填空)
"associated_data": ""
}
下面對(duì)如何用商戶證書私鑰解密加密密鑰進(jìn)行說明:
商戶從接口獲取的加密密鑰(變量名:encrypt_key)是使用商戶證書公鑰進(jìn)行RSA加密返回的密文,商戶解密后才能得到密鑰原文。
解密流程如下:對(duì)encrypt_key先做Base64解碼,然后對(duì)解碼結(jié)果使用商戶證書私鑰進(jìn)行RSA解密,指定填充方式為最優(yōu)非對(duì)稱加密填充(OAEP)。
下面我們使用命令行演示如何解密,更多的示例可以參考[WechatPay-API-v3 敏感信息加密]。
解密AES密鑰得到key:
$ echo -n { encrypt_key } | openssl enc -A -base64 -d | openssl rsautl -decrypt -oaep -inkey {商戶證書私鑰文件}
支付分對(duì)賬單示例,明細(xì)數(shù)據(jù)每一行對(duì)應(yīng)所下載賬單的一條具體數(shù)據(jù),具體示例如下:
狀態(tài)碼 | 錯(cuò)誤碼 | 描述 | 解決方案 |
---|---|---|---|
400 | PARAM_ERROR | 參數(shù)錯(cuò)誤 | 請(qǐng)使用正確的參數(shù)重新調(diào)用 |
403 | NO_AUTH | 商戶暫無權(quán)限使用此功能 | 請(qǐng)開通商戶號(hào)權(quán)限。請(qǐng)聯(lián)系產(chǎn)品申請(qǐng) |