下載交易賬單
應(yīng)用場景
商戶可以通過該接口下載歷史交易清單。比如掉單、系統(tǒng)錯誤等導(dǎo)致商戶側(cè)和微信側(cè)數(shù)據(jù)不一致,通過對賬單核對后可校正支付狀態(tài)。
注意:
1、微信側(cè)未成功下單的交易不會出現(xiàn)在對賬單中。支付成功后撤銷的交易會出現(xiàn)在對賬單中,跟原支付單訂單號一致;
2、微信在次日9點啟動生成前一天的對賬單,建議商戶10點后再獲取;
3、對賬單中涉及金額的字段單位為“元”。
4、對賬單接口只能下載三個月以內(nèi)的賬單。
5、對賬單是以商戶號維度來生成的,如一個商戶號與多個appid有綁定關(guān)系,則使用其中任何一個appid都可以請求下載對賬單。對賬單中的appid取自交易時候提交的appid,與請求下載對賬單時使用的appid無關(guān)。
6、自2018年起入駐的商戶默認(rèn)是開通免充值券后的結(jié)算對賬單,且匯總數(shù)據(jù)為總交易單數(shù),應(yīng)結(jié)訂單總金額,退款總金額,充值券退款總金額,手續(xù)費(fèi)總金額,訂單總金額,申請退款總金額。
接口鏈接
https://api.mch.weixin.qq.com/pay/downloadbill
是否需要證書
不需要。
請求參數(shù)
字段名 | 變量名 | 必填 | 類型 | 示例值 | 描述 |
---|---|---|---|---|---|
公眾賬號ID | appid | 是 | String(32) | wx8888888888888888 | 微信分配的公眾賬號ID |
商戶號 | mch_id | 是 | String(32) | 1900000109 | 微信支付分配的商戶號 |
隨機(jī)字符串 | nonce_str | 是 | String(32) | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | 隨機(jī)字符串,不長于32位。推薦隨機(jī)數(shù)生成算法 |
簽名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 簽名,詳見簽名生成算法 |
簽名類型 | sign_type | 否 | String(32) | HMAC-SHA256 | 簽名類型,目前支持HMAC-SHA256和MD5,默認(rèn)為MD5 |
對賬單日期 | bill_date | 是 | String(8) | 20140603 | 下載對賬單的日期,格式:20140603 |
賬單類型 | bill_type | 否 | String(8) | ALL | ALL(默認(rèn)值),返回當(dāng)日所有訂單信息(不含充值退款訂單) SUCCESS,返回當(dāng)日成功支付的訂單(不含充值退款訂單) REFUND,返回當(dāng)日退款訂單(不含充值退款訂單) RECHARGE_REFUND,返回當(dāng)日充值退款訂單 |
壓縮賬單 | tar_type | 否 | String | GZIP | 非必傳參數(shù),固定值:GZIP,返回格式為.gzip的壓縮包賬單。不傳則默認(rèn)為數(shù)據(jù)流形式。 |
<xml>
<appid>wx2421b1c4370ec43b</appid>
<bill_date>20141110</bill_date>
<bill_type>ALL</bill_type>
<mch_id>10000100</mch_id>
<nonce_str>21df7dc9cd8616b56919f20d9f679233</nonce_str>
<sign>332F17B766FC787203EBE9D6E40457A1</sign>
</xml>
返回結(jié)果
失敗時,返回以下字段
字段名 | 變量名 | 必填 | 類型 | 示例值 | 描述 |
---|---|---|---|---|---|
返回狀態(tài)碼 | return_code | 是 | String(16) | FAIL | FAIL |
錯誤碼描述 | return_msg | 否 | String(128) | 簽名失敗 | 返回信息,如非空,為錯誤原因 如:簽名失敗 等。 |
錯誤碼 | error_code | 否 | String(16) | 20002 | 失敗錯誤碼,詳見錯誤碼列表 |
交易賬單格式說明
1. 交易賬單介紹
微信支付每天提供前一天的交易賬單文件,用于商戶核對訂單、退款、營銷、手續(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ā)起成功的退款單
2. 交易賬單的文件格式
交易賬單文件內(nèi)包含:明細(xì)數(shù)據(jù)表頭、明細(xì)數(shù)據(jù)內(nèi)容、匯總數(shù)據(jù)表頭、匯總數(shù)據(jù)四個部分,每個字段使用英文逗號 , 間隔,明細(xì)數(shù)據(jù)內(nèi)容每個字段前會增加1個字符 ` 用于避免獲取的內(nèi)容被excel展示為科學(xué)計數(shù)法的格式、丟失數(shù)據(jù)細(xì)節(jié)。3份不同類型的賬單文件字段內(nèi)容略有差異。
2.1. ALL類型賬單文件具體字段
字段名 | 描述 | 示例值 |
---|---|---|
明細(xì)數(shù)據(jù) | ||
交易時間 | 指該筆交易的支付成功時間或發(fā)起退款成功時間(注:不是退款成功時間),格式為yyyy-MM-dd HH:MM:SS | 2015-01-01 10:00:00 |
公眾賬號ID | 發(fā)起該筆交易時使用的appid,appid是由微信給公眾號或app等分配的唯一標(biāo)識 | wxab8acb865bb11234 |
商戶號 | 發(fā)起該筆交易下單的微信支付商戶號,8~10位數(shù)字 | 1234567890 |
設(shè)備號 | 對應(yīng)在下單時傳入的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 |
付款銀行 | 用戶支付時使用的付款方式,包括但不限于(后續(xù)可能新增): XXX_CREDIT,用戶使用了XXX銀行的一張信用卡付款 XXX_DEBIT,用戶使用了XXX銀行的一張儲蓄卡付款 OTHERS,用戶使用了零錢/零錢通等其他付款方式 |
CMB_CREDIT |
貨幣種類 | 貨幣類型,符合ISO 4217標(biāo)準(zhǔn)的三位字母代碼 | CNY |
應(yīng)結(jié)訂單金額 | 該筆訂單參與計費(fèi)的應(yīng)結(jié)算金額(=訂單金額-用戶使用的免充值券金額),如果該行數(shù)據(jù)為退款或撤銷則展示0.00,單位元,保留到小數(shù)點后2位 | 8.88 |
代金券金額 | 該筆訂單中使用的微信支付代金券金額(包括充值券和免充值券),如果未使用代金券、或該行數(shù)據(jù)為退款或撤銷則展示0.00,單位元,保留到小數(shù)點后2位 | 0.88 |
微信退款單號 | 微信支付為該筆退款分配的退款單號,如果該行數(shù)據(jù)為訂單(交易狀態(tài)SUCCESS)則展示0 | 50401010122021000000038202001 |
商戶退款單號 | 商戶發(fā)起退款時填入的商戶退款單號,如果該行數(shù)據(jù)為訂單(交易狀態(tài)SUCCESS)則展示0 | refundno001 |
退款金額 | 該筆退款單參與計費(fèi)的應(yīng)結(jié)算金額(申請退款金額-免充值券退款金額),如果該行數(shù)據(jù)為訂單則展示為0.00,非負(fù)數(shù)、單位元,保留到小數(shù)點后2位 | 6.66 |
充值券退款金額 | 退款金額中包含的充值券退款金額,如果該行數(shù)據(jù)為訂單或沒有充值券退款則展示為0.00,非負(fù)數(shù)、單位元,保留到小數(shù)點后2位 | 0.66 |
退款類型 |
ORIGINAL—原路退款 BALANCE—轉(zhuǎn)退到用戶的微信支付零錢 PLATFORM-ORIGINAL—平臺退款,原路退款 PLATFORM-BALANCE—平臺退款,轉(zhuǎn)退到用戶的微信支付零錢 如果該行數(shù)據(jù)為訂單(交易狀態(tài)SUCCESS)則留空 |
ORIGINAL |
退款狀態(tài) | 生成賬單文件時該筆退款的狀態(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字段,不傳時留空 | 交易收款 |
手續(xù)費(fèi) | 該筆訂單/退款對應(yīng)的手續(xù)費(fèi)金額,訂單對應(yīng)正數(shù)、退款對應(yīng)負(fù)數(shù),單位元,保留小數(shù)點后2位 | 0.01 |
費(fèi)率 | 該筆交易計費(fèi)所使用的費(fèi)率,百分?jǐn)?shù) | 0.60% |
訂單金額 | 該筆訂單的金額,包括用戶支付金額、充值券金額、免充值券金額,如果該行數(shù)據(jù)為退款或撤銷則填0.00,單位元,保留到小數(shù)點后2位 | 9.76 |
申請退款金額 | 商戶發(fā)起退款的金額,包括退給用戶的金額、充值券退款金額、免充值券退款金額,如果該行數(shù)據(jù)為非退款訂單則填0.00,單位元,保留到小數(shù)點后2位 | 6.66 |
費(fèi)率備注 | 對計費(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ù)點后2位 | 888.00 |
退款總金額 | 賬單內(nèi)所有退款金額字段之和,保留小數(shù)點后2位 | 666.00 |
充值券退款總金額 | 賬單內(nèi)所有充值券退款金額字段之和,保留小數(shù)點后2位 | 6.60 |
手續(xù)費(fèi)總金額 | 賬單內(nèi)所有交易手續(xù)費(fèi)字段之和,保留小數(shù)點后2位 | 10.00 |
訂單總金額 | 賬單內(nèi)所有交易訂單金額字段之和,保留小數(shù)點后2位 | 976.00 |
申請退款總金額 | 賬單內(nèi)所有申請退款金額字段之和,保留小數(shù)點后2位 | 666.00 |
2.2. SUCCESS和REFUND賬單
SUCCESS和REFUND賬單的字段和ALL賬單內(nèi)略有不同
SUCCESS賬單字段:交易時間,公眾賬號ID,商戶號,設(shè)備號,微信訂單號,商戶訂單號,用戶標(biāo)識,交易類型,交易狀態(tài),付款銀行,貨幣種類,應(yīng)結(jié)訂單金額,代金券金額,商品名稱,商戶數(shù)據(jù)包,手續(xù)費(fèi),費(fèi)率,訂單金額,費(fèi)率備注
REFUND賬單字段:交易時間,公眾賬號ID,商戶號,設(shè)備號,微信訂單號,商戶訂單號,用戶標(biāo)識,交易類型,交易狀態(tài),付款銀行,貨幣種類,應(yīng)結(jié)訂單金額,代金券金額,退款申請時間,退款成功時間,微信退款單號,商戶退款單號,退款金額,充值券退款金額,退款類型,退款狀態(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)惠券功能,次日開始的賬單格式即會完成變更。
3. 賬單樣例
錯誤碼
錯誤碼 | 名稱 | 描述 | 原因 | 解決方案 |
---|---|---|---|---|
100 | SYSTEMERROR | 下載失敗 | 系統(tǒng)超時 | 請嘗試再次查詢。 |
100 | Network Traffic Limit | 網(wǎng)絡(luò)流量限制 | 當(dāng)前系統(tǒng)請求繁忙 | 請嘗試再次查詢 |
20003 | SYSTEMERROR | 下載失敗 | 系統(tǒng)超時 | 請嘗試再次查詢。 |
20001 | sign error | 簽名錯誤 | 請求參數(shù)未按要求進(jìn)行填寫 | 簽名錯誤,請重新檢查參數(shù)和簽名密鑰是否正確 |
nonce_str too long | 參數(shù)nonce_str錯誤 | 請求參數(shù)未按要求填寫 | 參數(shù)nonce_str長度超長 | |
invalid tar_type, Only GZIP supported | 參數(shù)tar_type錯誤 | 請求參數(shù)未按指引進(jìn)行填寫 | 請重新檢查參數(shù)invalid tar_typ是否正確 | |
invalid bill_type | 參數(shù)bill_type錯誤 | 請求參數(shù)未按指引進(jìn)行填寫 | 請重新檢查參數(shù)bill_type是否正確 | |
invalid bill_date | 參數(shù)bill_date錯誤 | 請求參數(shù)未按指引進(jìn)行填寫 | 請重新檢查參數(shù)bill_date是否符合要求 | |
require POST method | 請求方式錯誤 | 請求方式不符合要求 | 請求檢查參數(shù)請求方式是否為post | |
empty post data | 請求報文錯誤 | 請求報文為空 | 請重新檢查請求報文是否正確 | |
data format error | 參數(shù)格式錯誤 | 請求參數(shù)要求為xml格式 | 請重新檢查請求參數(shù)格式是否為xml | |
missing parameter | 缺少參數(shù) | 有必傳的參數(shù)未上傳 | 請重新檢查是否所有必傳參數(shù)都上傳了,且不為空 | |
invalid appid | appid錯誤 | 請求參數(shù)appid有誤 | 請重新檢查參數(shù)appid是否正確 | |
invalid parameter | 參數(shù)錯誤 | 有未知的請求參數(shù) | 請重新檢查是否所有參數(shù)都與文檔相符 | |
20002 | No Bill Exist | 賬單不存在 | 當(dāng)前商戶號沒有已成交的訂單,不生成對賬單 | 請檢查當(dāng)前商戶號在指定日期內(nèi)是否有成功的交易。 |
Bill Creating | 賬單未生成 | 當(dāng)前商戶號沒有已成交的訂單或?qū)~單尚未生成 | 請先檢查當(dāng)前商戶號在指定日期內(nèi)是否有成功的交易,如指定日期有交易則表示賬單正在生成中,請在上午10點以后再下載。 | |
20007 | 當(dāng)前商戶號賬單API權(quán)限已經(jīng)關(guān)閉 | 當(dāng)前商戶號賬單API權(quán)限已經(jīng)關(guān)閉 | 當(dāng)前商戶號賬單API權(quán)限已經(jīng)關(guān)閉 | 當(dāng)前商戶號賬單API權(quán)限已經(jīng)關(guān)閉,請聯(lián)系微信支付解決 |
20008 | Frequency Limited | 請求頻率超過限制 | 當(dāng)前IP或商戶號的請求過于頻繁,超過了頻率限制 | 請放慢請求速度,稍后再次查詢 |
20100 | system error | 下載失敗 | 系統(tǒng)超時 | 請嘗試再次查詢。 |