本接口適用于下載交易賬單和資金賬單。
注意
- 該接口響應的信息請求頭中不包含微信接口響應的簽名值,因此需要跳過驗簽的流程。
- 賬單文件的下載地址的有效時間為5min。
- 建議商戶比對實際下載賬單文件的哈希值和從接口獲取到的哈希值是否一致,以確認下載賬單數據的完整性。
- 微信將在次日9點開始生成前一天的對賬單,建議商戶在10點后獲取。
# 接口說明
支持商戶: 【普通服務商】 【普通商戶】
請求方式: 【GET】
請求URL: 調用申請賬單接口,返回參數“download_url”對應的URL
# 請求步驟說明
- 使用申請賬單接口獲取download_url,參考下方申請賬單返回參數示例。
- 使用微信支付APIv3標準對download_url進行簽名,并發(fā)起請求即可下載賬單文件的數據流,參考右側請求示例。
# 申請賬單返回參數示例
1{2 "hash_type": "SHA1",3 "hash_value": "79bb0f45fc4c42234a918000b2668d689e2bde04",4 "download_url": " https://api.mch.weixin.qq.com/v3/billdownload/file?token=xxx"5}
請求示例
1$ curl https://api.mch.weixin.qq.com/v3/billdownload/file?token=xxx -H '2Authorization: WECHATPAY2-SHA256-RSA2048 mchid="1900009191",3nonce_str="593BEC0C930BF1AFEB40B4A08C8FB242",4signature="uOVRnA4qG/MNnYzdQxJanN+zU+lTgIcnU9BxGw5dKjK+VdEUz2FeIoC+D5sB/LN+nGzX3hfZg6r55wT1pl2ZobmIc6p0ldN7J6yDgUzbX8Uk3sD4a4eZVPTBvqNDoUqcYMlZ9uuDdCvNv4TM3c1WzsXUrExwVkI61XO5jCNbgDJ25nkT/c1gIFvqoogl7MdSFGc4W4xZsqCItnqbypR3RuGIlR9h9vlRsy7zJR9PBI83X8al7LDIfR1ukt1P7tMnmogZ0cuDY8cZsd8ZlCgLadmvej58SLsIkVxFJ8XyUgx9FmutKSYTmYtWBZ0+tNvfGmbXU7cob8H/84nLBiCwIUFluw==",timestamp="1554208460",serial_no="1DDE55AD98ED71D6EDD4A4A16996DE7B47773A8C"'
# 返回信息
# 1. 交易賬單
# 1.1. 交易賬單介紹
微信支付每天提供前一天的交易賬單文件,用于商戶核對訂單、退款、營銷、手續(xù)費等信息。賬單內的數據包括:
(1)當天支付成功的訂單,下單成功但用戶未支付的訂單不會出賬。
(2)當天發(fā)起退款成功的退款單,退款發(fā)起成功就會出賬,出賬后退款狀態(tài)不會更新。如果需要獲取最新退款狀態(tài),請使用查詢單筆退款API查詢。
微信支付提供了3份不同類型的賬單文件:
- ALL,包含了當天支付成功的訂單和發(fā)起成功的退款單
- SUCCESS,僅包含支付成功的訂單
- REFUND,僅包含發(fā)起成功的退款單
# 1.2. 交易賬單文件格式
交易賬單文件內包含:明細數據表頭、明細數據內容、匯總數據表頭、匯總數據四個部分,每個字段使用英文逗號 , 間隔,明細數據內容每個字段前會增加1個字符 ` 用于避免獲取的內容被excel展示為科學計數法的格式、丟失數據細節(jié)。3份不同類型的賬單文件字段內容略有差異。
# 1.2.1. ALL類型賬單文件具體字段
字段名 | 描述 | 示例值 |
---|---|---|
明細數據 | ||
交易時間 | 指該筆交易的支付成功時間或發(fā)起退款成功時間(注:不是退款成功時間),格式為yyyy-MM-dd HH:MM:SS | 2015-01-01 10:00:00 |
公眾賬號ID | 發(fā)起該筆交易時使用的AppID,AppID是由微信給公眾號或App等分配的唯一標識 | wxab8acb865bb11234 |
商戶號 | 發(fā)起該筆交易下單的微信支付商戶號,8~10位數字 | 1234567890 |
特約商戶號 | 如果是普通受理模式下的交易,展示特約商戶的商戶號,8~10位數字 如果是普通直連模式交易,則展示成數字0 | 1234567890 |
設備號 | 對應在下單時傳入的device_info字段,沒填寫則留空 | casher001 |
微信訂單號 | 微信支付為該筆訂單(或該筆退款對應的訂單)分配的訂單號 | 4200000008201712143733500001 |
商戶訂單號 | 商戶傳入的該筆訂單(或該筆退款對應的訂單)的商戶訂單號,對應下單接口里的out_trade_no字段 | outtradeno001 |
用戶標識 | 微信為支付用戶在公眾賬號ID(AppID)下分配的唯一標識(OpenID) | testxt08c-XB5-QD208X1Aid0Cbs |
交易類型 | 該筆訂單(或該筆退款單對應的訂單)的類型,使用英文縮寫展示,包括但不限于(后續(xù)可能新增): MICROPAY :付款碼支付 JSAPI :JSAPI支付、小程序支付NATIVE :NATIVE支付APP :App支付 FACE :刷臉支付 | NATIVE |
交易狀態(tài) | 標識該筆明細數據的類型:SUCCESS :支付成功,說明該行數據為一筆支付成功的訂單REFUND :轉入退款,說明該行數據為一筆發(fā)起退款成功的退款單REVOKED :已撤銷,說明該行數據為一筆在用戶支付成功后發(fā)起撤銷的退款單 | SUCCESS |
付款銀行 | 用戶支付時使用的付款方式,包括但不限于(后續(xù)可能新增):XXX_CREDIT :用戶使用了XXX銀行的一張信用卡付款XXX_DEBIT :用戶使用了XXX銀行的一張儲蓄卡付款OTHERS :用戶使用了零錢/零錢通等其他付款方式 | CMB_CREDIT |
貨幣種類 | 貨幣類型,符合ISO 4217標準的三位字母代碼 | CNY |
應結訂單金額 | 該筆訂單參與計費的應結算金額(=訂單金額-用戶使用的免充值券金額),如果該行數據為退款或撤銷則展示0.00,單位元,保留到小數點后2位 | 8.88 |
代金券金額 | 該筆訂單中使用的微信支付代金券金額(包括充值券和免充值券),如果未使用代金券、或該行數據為退款或撤銷則展示0.00,單位元,保留到小數點后2位 | 0.88 |
微信退款單號 | 微信支付為該筆退款分配的退款單號,如果該行數據為訂單(交易狀態(tài)SUCCESS )則展示0 | 50401010122021000000038202001 |
商戶退款單號 | 商戶發(fā)起退款時填入的商戶退款單號,如果該行數據為訂單(交易狀態(tài)SUCCESS )則展示0 | refundno001 |
退款金額 | 該筆退款單參與計費的應結算金額(申請退款金額-免充值券退款金額),如果該行數據為訂單則展示為0.00,非負數、單位元,保留到小數點后2位 | 6.66 |
充值券退款金額 | 退款金額中包含的充值券退款金額,如果該行數據為訂單或沒有充值券退款則展示為0.00,非負數、單位元,保留到小數點后2位 | 0.66 |
退款類型 | ORIGINAL :原路退款BALANCE :轉退到用戶的微信支付零錢PLATFORM-ORIGINAL :平臺退款,原路退款PLATFORM-BALANCE :平臺退款,轉退到用戶的微信支付零錢如果該行數據為訂單(交易狀態(tài) SUCCESS )則留空 | ORIGINAL |
退款狀態(tài) | 生成賬單文件時該筆退款的狀態(tài)、出賬后不會更新,如果該行數據為訂單(交易狀態(tài)SUCCESS ),則留空SUCCESS :退款成功PROCESSING :退款處理中FAIL :退款失敗CHANGE :退款異常 | SUCCESS |
商品名稱 | 商戶傳入的該筆訂單(或該筆退款對應的訂單)的商品名稱,對應下單接口里的body字段 | 零食 |
商戶數據包 | 商戶傳入的該筆訂單(或該筆退款對應的訂單)的商戶數據包,對應下單接口里的attach字段,不傳時留空 | 交易收款 |
手續(xù)費 | 該筆訂單/退款對應的手續(xù)費金額,訂單對應正數、退款對應負數,單位元,保留小數點后2位 | 0.01 |
費率 | 該筆交易計費所使用的費率,百分數 | 0.60% |
訂單金額 | 該筆訂單的金額,包括用戶支付金額、充值券金額、免充值券金額,如果該行數據為退款或撤銷則填0.00,單位元,保留到小數點后2位 | 9.76 |
申請退款金額 | 商戶發(fā)起退款的金額,包括退給用戶的金額、充值券退款金額、免充值券退款金額,如果該行數據訂單則填0.00,單位元,保留到小數點后2位 | 6.66 |
費率備注 | 對計費費率的補充說明,如入駐結算規(guī)則ID、優(yōu)惠費率活動ID等,可為空 | 726 |
匯總數據 | ||
總交易單數 | 該份賬單內明細數據的筆數 | 200 |
應結訂單總金額 | 賬單內所有應結訂單金額字段之和,保留小數點后2位 | 888.00 |
退款總金額 | 賬單內所有退款金額字段之和,保留小數點后2位 | 666.00 |
充值券退款總金額 | 賬單內所有充值券退款金額字段之和,保留小數點后2位 | 6.60 |
手續(xù)費總金額 | 賬單內所有交易手續(xù)費字段之和,保留小數點后2位 | 10.00 |
訂單總金額 | 賬單內所有交易訂單金額字段之和,保留小數點后2位 | 976.00 |
申請退款總金額 | 賬單內所有申請退款金額字段之和,保留小數點后2位 | 666.00 |
# 1.2.2. SUCCESS和REFUND賬單
SUCCESS和REFUND賬單的字段和ALL賬單內略有不同:
SUCCESS賬單字段:交易時間,公眾賬號ID,商戶號,特約商戶號,設備號,微信訂單號,商戶訂單號,用戶標識,交易類型,交易狀態(tài),付款銀行,貨幣種類,應結訂單金額,代金券金額,商品名稱,商戶數據包,手續(xù)費,費率,訂單金額,費率備注
REFUND賬單字段:交易時間,公眾賬號ID,商戶號,特約商戶號,設備號,微信訂單號,商戶訂單號,用戶標識,交易類型,交易狀態(tài),付款銀行,貨幣種類,應結訂單金額,代金券金額,退款申請時間,退款成功時間,微信退款單號,商戶退款單號,退款金額,充值券退款金額,退款類型,退款狀態(tài),商品名稱,商戶數據包,手續(xù)費,費率,訂單金額,申請退款金額,費率備注
# 1.2.3. 特殊字符轉義
賬單處理過程會對商品名稱、商戶數據包、設備號等商戶自定義字段進行特殊字符轉義,具體規(guī)則包括:
原始特殊字符 Unicode | 含義 | 訂單轉義 Unicode | 含義 | 退款單轉義 Unicode | 含義 |
---|---|---|---|---|---|
\u005c | \ | \u005c\u005c | \\ | \u005c\u005c | \\ |
\u0027 | ' | \u005c\u0027 | \' | \u0027 | ' |
\u0022 | " | \u005c\u0022 | \" | \u005c\u0022 | \" |
\u0060 | ` | \u005c\u0060 | \` | \u005c\u0031\u0034\u0030 | \140 |
\u002c | , | \u005c\u0020 | \空格 | \u005c\u0020 | \空格 |
\u000a | 換行符(LF) | \u005c\u006e | \n | \u005c\u006e | \n |
\u000d | 回車符(CR) | \u005c\u0072 | \r | \u005c\u0072 | \r |
\u0009 | 制表符(HT) | \u005c\u0074 | \t | \u005c\u0074 | \t |
\ue000 | 不可見字符(\xee\x80\x80) | \u005c\u0020 | \空格 | \u005c\u0020 | \空格 |
\u001a | 控制字符SUB(\032) | \u005c\u001a | \控制字符SUB | \u005c\u001a | \控制字符SUB |
# 1.2.4. 補充說明
少部分商戶目前的賬單格式停留在歷史早期版本,具體表現為:沒有應結算訂單金額字段、對應的是總金額字段,沒有代金券金額字段、對應的是企業(yè)紅包金額字段。如需調整為最新格式的賬單,可以通過在產品中心中開通免充值優(yōu)惠券功能,次日開始的賬單格式即會完成變更。
# 1.3. 賬單樣例
# 2. 資金賬單
# 2.1. 賬單樣例
# 錯誤碼
# 公共錯誤碼
狀態(tài)碼 | 錯誤碼 | 描述 | 解決方案 |
---|---|---|---|
400 | PARAM_ERROR | 參數錯誤 | 請根據錯誤提示正確傳入參數 |
400 | INVALID_REQUEST | HTTP 請求不符合微信支付 APIv3 接口規(guī)則 | 請參閱 接口規(guī)則 |
401 | SIGN_ERROR | 驗證不通過 | 請參閱 簽名常見問題 |
500 | SYSTEM_ERROR | 系統(tǒng)異常,請稍后重試 | 請稍后重試 |
# 業(yè)務錯誤碼
狀態(tài)碼 | 錯誤碼 | 描述 | 解決方案 |
---|---|---|---|
400 | INVALID_REQUEST | 參數錯誤 | 請按第一步申請賬單的API指引,重新獲取賬單地址后再請求 |
403 | NO_AUTH | 權限異常 | 請檢查本次請求的商戶是否與第一步申請賬單API的請求商戶一致 |