本接口適用于下載交易賬單和資金賬單。
注意
- 該接口響應(yīng)的信息請求頭中不包含微信接口響應(yīng)的簽名值,因此需要跳過驗(yàn)簽的流程。
- 賬單文件的下載地址的有效時(shí)間為5min。
- 建議商戶比對實(shí)際下載賬單文件的哈希值和從接口獲取到的哈希值是否一致,以確認(rèn)下載賬單數(shù)據(jù)的完整性。
- 微信將在次日9點(diǎn)開始生成前一天的對賬單,建議商戶在10點(diǎn)后獲取。
# 接口說明
支持商戶: 【普通服務(wù)商】 【普通商戶】
請求方式: 【GET】
請求URL: 調(diào)用申請賬單接口,返回參數(shù)“download_url”對應(yīng)的URL
# 請求步驟說明
- 使用申請賬單接口獲取download_url,參考下方申請賬單返回參數(shù)示例。
- 使用微信支付APIv3標(biāo)準(zhǔn)對download_url進(jìn)行簽名,并發(fā)起請求即可下載賬單文件的數(shù)據(jù)流,參考右側(cè)請求示例。
# 申請賬單返回參數(shù)示例
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ù)費(fèi)等信息。賬單內(nèi)的數(shù)據(jù)包括:
(1)當(dāng)天支付成功的訂單,下單成功但用戶未支付的訂單不會(huì)出賬。
(2)當(dāng)天發(fā)起退款成功的退款單,退款發(fā)起成功就會(huì)出賬,出賬后退款狀態(tài)不會(huì)更新。如果需要獲取最新退款狀態(tài),請使用查詢單筆退款A(yù)PI查詢。
微信支付提供了3份不同類型的賬單文件:
- ALL,包含了當(dāng)天支付成功的訂單和發(fā)起成功的退款單
- SUCCESS,僅包含支付成功的訂單
- REFUND,僅包含發(fā)起成功的退款單
# 1.2. 交易賬單文件格式
交易賬單文件內(nèi)包含:明細(xì)數(shù)據(jù)表頭、明細(xì)數(shù)據(jù)內(nèi)容、匯總數(shù)據(jù)表頭、匯總數(shù)據(jù)四個(gè)部分,每個(gè)字段使用英文逗號(hào) , 間隔,明細(xì)數(shù)據(jù)內(nèi)容每個(gè)字段前會(huì)增加1個(gè)字符 ` 用于避免獲取的內(nèi)容被excel展示為科學(xué)計(jì)數(shù)法的格式、丟失數(shù)據(jù)細(xì)節(jié)。3份不同類型的賬單文件字段內(nèi)容略有差異。
# 1.2.1. ALL類型賬單文件具體字段
字段名 | 描述 | 示例值 |
---|---|---|
明細(xì)數(shù)據(jù) | ||
交易時(shí)間 | 指該筆交易的支付成功時(shí)間或發(fā)起退款成功時(shí)間(注:不是退款成功時(shí)間),格式為yyyy-MM-dd HH:MM:SS | 2015-01-01 10:00:00 |
公眾賬號(hào)ID | 發(fā)起該筆交易時(shí)使用的AppID,AppID是由微信給公眾號(hào)或App等分配的唯一標(biāo)識(shí) | wxab8acb865bb11234 |
商戶號(hào) | 發(fā)起該筆交易下單的微信支付商戶號(hào),8~10位數(shù)字 | 1234567890 |
特約商戶號(hào) | 如果是普通受理模式下的交易,展示特約商戶的商戶號(hào),8~10位數(shù)字 如果是普通直連模式交易,則展示成數(shù)字0 | 1234567890 |
設(shè)備號(hào) | 對應(yīng)在下單時(shí)傳入的device_info字段,沒填寫則留空 | casher001 |
微信訂單號(hào) | 微信支付為該筆訂單(或該筆退款對應(yīng)的訂單)分配的訂單號(hào) | 4200000008201712143733500001 |
商戶訂單號(hào) | 商戶傳入的該筆訂單(或該筆退款對應(yīng)的訂單)的商戶訂單號(hào),對應(yīng)下單接口里的out_trade_no字段 | outtradeno001 |
用戶標(biāo)識(shí) | 微信為支付用戶在公眾賬號(hào)ID(AppID)下分配的唯一標(biāo)識(shí)(OpenID) | testxt08c-XB5-QD208X1Aid0Cbs |
交易類型 | 該筆訂單(或該筆退款單對應(yīng)的訂單)的類型,使用英文縮寫展示,包括但不限于(后續(xù)可能新增): MICROPAY :付款碼支付 JSAPI :JSAPI支付、小程序支付NATIVE :NATIVE支付APP :App支付 FACE :刷臉支付 | NATIVE |
交易狀態(tài) | 標(biāo)識(shí)該筆明細(xì)數(shù)據(jù)的類型:SUCCESS :支付成功,說明該行數(shù)據(jù)為一筆支付成功的訂單REFUND :轉(zhuǎn)入退款,說明該行數(shù)據(jù)為一筆發(fā)起退款成功的退款單REVOKED :已撤銷,說明該行數(shù)據(jù)為一筆在用戶支付成功后發(fā)起撤銷的退款單 | SUCCESS |
付款銀行 | 用戶支付時(shí)使用的付款方式,包括但不限于(后續(xù)可能新增):XXX_CREDIT :用戶使用了XXX銀行的一張信用卡付款XXX_DEBIT :用戶使用了XXX銀行的一張儲(chǔ)蓄卡付款OTHERS :用戶使用了零錢/零錢通等其他付款方式 | CMB_CREDIT |
貨幣種類 | 貨幣類型,符合ISO 4217標(biāo)準(zhǔn)的三位字母代碼 | CNY |
應(yīng)結(jié)訂單金額 | 該筆訂單參與計(jì)費(fèi)的應(yīng)結(jié)算金額(=訂單金額-用戶使用的免充值券金額),如果該行數(shù)據(jù)為退款或撤銷則展示0.00,單位元,保留到小數(shù)點(diǎn)后2位 | 8.88 |
代金券金額 | 該筆訂單中使用的微信支付代金券金額(包括充值券和免充值券),如果未使用代金券、或該行數(shù)據(jù)為退款或撤銷則展示0.00,單位元,保留到小數(shù)點(diǎn)后2位 | 0.88 |
微信退款單號(hào) | 微信支付為該筆退款分配的退款單號(hào),如果該行數(shù)據(jù)為訂單(交易狀態(tài)SUCCESS )則展示0 | 50401010122021000000038202001 |
商戶退款單號(hào) | 商戶發(fā)起退款時(shí)填入的商戶退款單號(hào),如果該行數(shù)據(jù)為訂單(交易狀態(tài)SUCCESS )則展示0 | refundno001 |
退款金額 | 該筆退款單參與計(jì)費(fèi)的應(yīng)結(jié)算金額(申請退款金額-免充值券退款金額),如果該行數(shù)據(jù)為訂單則展示為0.00,非負(fù)數(shù)、單位元,保留到小數(shù)點(diǎn)后2位 | 6.66 |
充值券退款金額 | 退款金額中包含的充值券退款金額,如果該行數(shù)據(jù)為訂單或沒有充值券退款則展示為0.00,非負(fù)數(shù)、單位元,保留到小數(shù)點(diǎn)后2位 | 0.66 |
退款類型 | ORIGINAL :原路退款BALANCE :轉(zhuǎn)退到用戶的微信支付零錢PLATFORM-ORIGINAL :平臺(tái)退款,原路退款PLATFORM-BALANCE :平臺(tái)退款,轉(zhuǎn)退到用戶的微信支付零錢如果該行數(shù)據(jù)為訂單(交易狀態(tài) SUCCESS )則留空 | ORIGINAL |
退款狀態(tài) | 生成賬單文件時(shí)該筆退款的狀態(tài)、出賬后不會(huì)更新,如果該行數(shù)據(jù)為訂單(交易狀態(tài)SUCCESS ),則留空SUCCESS :退款成功PROCESSING :退款處理中FAIL :退款失敗CHANGE :退款異常 | SUCCESS |
商品名稱 | 商戶傳入的該筆訂單(或該筆退款對應(yīng)的訂單)的商品名稱,對應(yīng)下單接口里的body字段 | 零食 |
商戶數(shù)據(jù)包 | 商戶傳入的該筆訂單(或該筆退款對應(yīng)的訂單)的商戶數(shù)據(jù)包,對應(yīng)下單接口里的attach字段,不傳時(shí)留空 | 交易收款 |
手續(xù)費(fèi) | 該筆訂單/退款對應(yīng)的手續(xù)費(fèi)金額,訂單對應(yīng)正數(shù)、退款對應(yīng)負(fù)數(shù),單位元,保留小數(shù)點(diǎn)后2位 | 0.01 |
費(fèi)率 | 該筆交易計(jì)費(fèi)所使用的費(fèi)率,百分?jǐn)?shù) | 0.60% |
訂單金額 | 該筆訂單的金額,包括用戶支付金額、充值券金額、免充值券金額,如果該行數(shù)據(jù)為退款或撤銷則填0.00,單位元,保留到小數(shù)點(diǎn)后2位 | 9.76 |
申請退款金額 | 商戶發(fā)起退款的金額,包括退給用戶的金額、充值券退款金額、免充值券退款金額,如果該行數(shù)據(jù)訂單則填0.00,單位元,保留到小數(shù)點(diǎn)后2位 | 6.66 |
費(fèi)率備注 | 對計(jì)費(fèi)費(fèi)率的補(bǔ)充說明,如入駐結(jié)算規(guī)則ID、優(yōu)惠費(fèi)率活動(dòng)ID等,可為空 | 726 |
匯總數(shù)據(jù) | ||
總交易單數(shù) | 該份賬單內(nèi)明細(xì)數(shù)據(jù)的筆數(shù) | 200 |
應(yīng)結(jié)訂單總金額 | 賬單內(nèi)所有應(yīng)結(jié)訂單金額字段之和,保留小數(shù)點(diǎn)后2位 | 888.00 |
退款總金額 | 賬單內(nèi)所有退款金額字段之和,保留小數(shù)點(diǎn)后2位 | 666.00 |
充值券退款總金額 | 賬單內(nèi)所有充值券退款金額字段之和,保留小數(shù)點(diǎn)后2位 | 6.60 |
手續(xù)費(fèi)總金額 | 賬單內(nèi)所有交易手續(xù)費(fèi)字段之和,保留小數(shù)點(diǎn)后2位 | 10.00 |
訂單總金額 | 賬單內(nèi)所有交易訂單金額字段之和,保留小數(shù)點(diǎn)后2位 | 976.00 |
申請退款總金額 | 賬單內(nèi)所有申請退款金額字段之和,保留小數(shù)點(diǎn)后2位 | 666.00 |
# 1.2.2. SUCCESS和REFUND賬單
SUCCESS和REFUND賬單的字段和ALL賬單內(nèi)略有不同:
SUCCESS賬單字段:交易時(shí)間,公眾賬號(hào)ID,商戶號(hào),特約商戶號(hào),設(shè)備號(hào),微信訂單號(hào),商戶訂單號(hào),用戶標(biāo)識(shí),交易類型,交易狀態(tài),付款銀行,貨幣種類,應(yīng)結(jié)訂單金額,代金券金額,商品名稱,商戶數(shù)據(jù)包,手續(xù)費(fèi),費(fèi)率,訂單金額,費(fèi)率備注
REFUND賬單字段:交易時(shí)間,公眾賬號(hào)ID,商戶號(hào),特約商戶號(hào),設(shè)備號(hào),微信訂單號(hào),商戶訂單號(hào),用戶標(biāo)識(shí),交易類型,交易狀態(tài),付款銀行,貨幣種類,應(yīng)結(jié)訂單金額,代金券金額,退款申請時(shí)間,退款成功時(shí)間,微信退款單號(hào),商戶退款單號(hào),退款金額,充值券退款金額,退款類型,退款狀態(tài),商品名稱,商戶數(shù)據(jù)包,手續(xù)費(fèi),費(fèi)率,訂單金額,申請退款金額,費(fèi)率備注
# 1.2.3. 特殊字符轉(zhuǎn)義
賬單處理過程會(huì)對商品名稱、商戶數(shù)據(jù)包、設(shè)備號(hào)等商戶自定義字段進(jìn)行特殊字符轉(zhuǎn)義,具體規(guī)則包括:
原始特殊字符 Unicode | 含義 | 訂單轉(zhuǎn)義 Unicode | 含義 | 退款單轉(zhuǎn)義 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. 補(bǔ)充說明
少部分商戶目前的賬單格式停留在歷史早期版本,具體表現(xiàn)為:沒有應(yīng)結(jié)算訂單金額字段、對應(yīng)的是總金額字段,沒有代金券金額字段、對應(yīng)的是企業(yè)紅包金額字段。如需調(diào)整為最新格式的賬單,可以通過在產(chǎn)品中心中開通免充值優(yōu)惠券功能,次日開始的賬單格式即會(huì)完成變更。
# 1.3. 賬單樣例
# 2. 資金賬單
# 2.1. 賬單樣例
# 錯(cuò)誤碼
# 公共錯(cuò)誤碼
狀態(tài)碼 | 錯(cuò)誤碼 | 描述 | 解決方案 |
---|---|---|---|
400 | PARAM_ERROR | 參數(shù)錯(cuò)誤 | 請根據(jù)錯(cuò)誤提示正確傳入?yún)?shù) |
400 | INVALID_REQUEST | HTTP 請求不符合微信支付 APIv3 接口規(guī)則 | 請參閱 接口規(guī)則 |
401 | SIGN_ERROR | 驗(yàn)證不通過 | 請參閱 簽名常見問題 |
500 | SYSTEM_ERROR | 系統(tǒng)異常,請稍后重試 | 請稍后重試 |
# 業(yè)務(wù)錯(cuò)誤碼
狀態(tài)碼 | 錯(cuò)誤碼 | 描述 | 解決方案 |
---|---|---|---|
400 | INVALID_REQUEST | 參數(shù)錯(cuò)誤 | 請按第一步申請賬單的API指引,重新獲取賬單地址后再請求 |
403 | NO_AUTH | 權(quán)限異常 | 請檢查本次請求的商戶是否與第一步申請賬單API的請求商戶一致 |