最新更新時(shí)間:2023.08.22 版本說明
下載賬單API為通用接口,交易/資金賬單都可以通過該接口獲取到對應(yīng)的賬單。
? 賬單文件的下載地址的有效時(shí)間為30s。
? 強(qiáng)烈建議商戶將實(shí)際賬單文件的哈希值和之前從接口獲取到的哈希值進(jìn)行比對,以確認(rèn)數(shù)據(jù)的完整性。
? 該接口響應(yīng)的信息請求頭中不包含微信接口響應(yīng)的簽名值,因此需要跳過驗(yàn)簽的流程。
?微信在次日9點(diǎn)啟動生成前一天的對賬單,建議商戶10點(diǎn)后再獲取。
適用對象: 直連商戶
請求URL:通過申請賬單接口獲取到“download_url”,URL有效期30s
請求方式:GET
前置條件:調(diào)用申請賬單接口并獲取到“download_url”
當(dāng)獲取到賬單文件資源的下載地址信息后,如:
{
"hash_type": "SHA1",
"hash_value": "79bb0f45fc4c42234a918000b2668d689e2bde04",
"download_url": " https://api.mch.weixin.qq.com/v3/billdownload/file?token=xxx"
}
可以通過微信支付API v3標(biāo)準(zhǔn)對download_url進(jìn)行簽名,并發(fā)起請求,即可下載到賬單文件的數(shù)據(jù)流。
$?curl?https://api.mch.weixin.qq.com/v3/billdownload/file?token=xxx?-H?'
Authorization: WECHATPAY2-SHA256-RSA2048 mchid="1900009191",
nonce_str="593BEC0C930BF1AFEB40B4A08C8FB242",
signature="uOVRnA4qG/MNnYzdQxJanN+zU+lTgIcnU9BxGw5dKjK+VdEUz2FeIoC+D5sB/LN+nGzX3hfZg6r5
wT1pl2ZobmIc6p0ldN7J6yDgUzbX8Uk3sD4a4eZVPTBvqNDoUqcYMlZ9uuDdCvNv4TM3c1WzsXUrExwVkI
1XO5jCNbgDJ25nkT/c1gIFvqoogl7MdSFGc4W4xZsqCItnqbypR3RuGIlR9h9vlRsy7zJR9PBI83X8al
LDIfR1ukt1P7tMnmogZ0cuDY8cZsd8ZlCgLadmvej58SLsIkVxFJ8XyUgx9FmutKSYTmYtWBZ0+tNvfGmbXU7cob8H/
4nLBiCwIUFluw==",timestamp="1554208460",serial_no="1DDE55AD98ED71D6EDD4A4A16996DE7B47773A8C"'
微信支付每天提供前一天的交易賬單文件,用于商戶核對訂單、退款、營銷、手續(xù)費(fèi)等信息。賬單內(nèi)的數(shù)據(jù)包括:
(1)當(dāng)天支付成功的訂單,下單成功但用戶未支付的訂單不會出賬。
(2)當(dāng)天發(fā)起退款成功的退款單,退款發(fā)起成功就會出賬,出賬后退款狀態(tài)不會更新。如果需要獲取最新退款狀態(tài),請使用查詢單筆退款A(yù)PI查詢。
微信支付提供了3份不同類型的賬單文件:
? ALL,包含了當(dāng)天支付成功的訂單和發(fā)起成功的退款單
? SUCCESS,僅包含支付成功的訂單
? REFUND,僅包含發(fā)起成功的退款單
交易賬單文件內(nèi)包含:明細(xì)數(shù)據(jù)表頭、明細(xì)數(shù)據(jù)內(nèi)容、匯總數(shù)據(jù)表頭、匯總數(shù)據(jù)四個部分,每個字段使用英文逗號 , 間隔,明細(xì)數(shù)據(jù)內(nèi)容每個字段前會增加1個字符 ` 用于避免獲取的內(nèi)容被excel展示為科學(xué)計(jì)數(shù)法的格式、丟失數(shù)據(jù)細(xì)節(jié)。3份不同類型的賬單文件字段內(nèi)容略有差異。
2.1. ALL類型賬單文件具體字段
字段名 | 描述 | 示例值 |
---|---|---|
明細(xì)數(shù)據(jù) | ||
交易時(shí)間 | 指該筆交易的支付成功時(shí)間或發(fā)起退款成功時(shí)間(注:不是退款成功時(shí)間),格式為yyyy-MM-dd HH:MM:SS | 2015-01-01 10:00:00 |
公眾賬號ID | 發(fā)起該筆交易時(shí)使用的appid,appid是由微信給公眾號或app等分配的唯一標(biāo)識 | wxab8acb865bb11234 |
商戶號 | 發(fā)起該筆交易下單的微信支付商戶號,8~10位數(shù)字 | 1234567890 |
設(shè)備號 | 對應(yīng)在下單時(shí)傳入的device_info字段,沒填寫則留空 | casher001 |
微信訂單號 | 微信支付為該筆訂單(或該筆退款對應(yīng)的訂單)分配的訂單號 | 4200000008201712143733500001 |
商戶訂單號 | 商戶傳入的該筆訂單(或該筆退款對應(yīng)的訂單)的商戶訂單號,對應(yīng)下單接口里的out_trade_no字段 | outtradeno001 |
用戶標(biāo)識 | 微信為支付用戶在公眾賬號ID(appid)下分配的唯一標(biāo)識(openid) | testxt08c-XB5-QD208X1Aid0Cbs |
交易類型 | 該筆訂單(或該筆退款單對應(yīng)的訂單)的類型,使用英文縮寫展示,包括但不限于(后續(xù)可能新增): MICROPAY,付款碼支付 JSAPI,JSAPI支付、小程序支付 NATIVE,Native支付 APP,APP支付 FACE,刷臉支付 |
NATIVE |
交易狀態(tài) | 標(biāo)識該筆明細(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銀行的一張儲蓄卡付款 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 |
微信退款單號 | 微信支付為該筆退款分配的退款單號,如果該行數(shù)據(jù)為訂單(交易狀態(tài)SUCCESS)則展示0 | 50401010122021000000038202001 |
商戶退款單號 | 商戶發(fā)起退款時(shí)填入的商戶退款單號,如果該行數(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—平臺退款,原路退款 PLATFORM-BALANCE—平臺退款,轉(zhuǎn)退到用戶的微信支付零錢 如果該行數(shù)據(jù)為訂單(交易狀態(tài)SUCCESS)則留空 |
ORIGINAL |
退款狀態(tài) | 生成賬單文件時(shí)該筆退款的狀態(tài)、出賬后不會更新,如果該行數(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)率活動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 |
2.2. SUCCESS和REFUND賬單
SUCCESS和REFUND賬單的字段和ALL賬單內(nèi)略有不同
SUCCESS賬單字段:交易時(shí)間,公眾賬號ID,商戶號,設(shè)備號,微信訂單號,商戶訂單號,用戶標(biāo)識,交易類型,交易狀態(tài),付款銀行,貨幣種類,應(yīng)結(jié)訂單金額,代金券金額,商品名稱,商戶數(shù)據(jù)包,手續(xù)費(fèi),費(fèi)率,訂單金額,費(fèi)率備注
REFUND賬單字段:交易時(shí)間,公眾賬號ID,商戶號,設(shè)備號,微信訂單號,商戶訂單號,用戶標(biāo)識,交易類型,交易狀態(tài),付款銀行,貨幣種類,應(yīng)結(jié)訂單金額,代金券金額,退款申請時(shí)間,退款成功時(shí)間,微信退款單號,商戶退款單號,退款金額,充值券退款金額,退款類型,退款狀態(tài),商品名稱,商戶數(shù)據(jù)包,手續(xù)費(fèi),費(fèi)率,訂單金額,申請退款金額,費(fèi)率備注
2.3. 特殊字符轉(zhuǎn)義
賬單處理過程會對商品名稱、商戶數(shù)據(jù)包、設(shè)備號等商戶自定義字段進(jìn)行特殊字符轉(zhuǎn)義,具體規(guī)則包括:
'轉(zhuǎn)換成為\'
"轉(zhuǎn)換成為\"
`轉(zhuǎn)換成為\`
,轉(zhuǎn)換成為\ (\+空格)
\r轉(zhuǎn)換成為\\r
\t轉(zhuǎn)換成為\\t
2.4. 補(bǔ)充說明
少部分商戶目前的賬單格式停留在歷史早期版本,具體表現(xiàn)為:沒有應(yīng)結(jié)算訂單金額字段、對應(yīng)的是總金額字段,沒有代金券金額字段、對應(yīng)的是企業(yè)紅包金額字段。如需調(diào)整為最新格式的賬單,可以通過在產(chǎn)品中心中開通免充值優(yōu)惠券功能,次日開始的賬單格式即會完成變更。
《ALL.xlsx》、《REFUND.xlsx》、《SUCCESS.xlsx》
狀態(tài)碼 | 錯誤碼 | 描述 | 解決方案 |
---|---|---|---|
500 | SYSTEM_ERROR | 系統(tǒng)錯誤 | 系統(tǒng)異常,請使用相同參數(shù)稍后重新調(diào)用 |
400 | PARAM_ERROR | 參數(shù)錯誤 | 請使用正確的參數(shù)重新調(diào)用 |
400 | INVALID_REQUEST | 參數(shù)錯誤 | 請按第一步申請賬單的API指引,重新獲取賬單地址后再請求 |
403 | NO_AUTH | 權(quán)限異常 | 請檢查本次請求的商戶是否與第一步申請賬單API的請求商戶一致 |