您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“微信公眾平臺開發微信支付報關接口的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“微信公眾平臺開發微信支付報關接口的示例分析”這篇文章吧。
https://api.mch.weixin.qq.com/cgi-bin/mch/customs/customdeclareorder
是否需要證書
不需要。
請求方式:post 數據格式:xml 簽名方式:MD5
注意:商戶訂單號金額以支付系統記錄的為準,無需上傳,如有子訂單號則必須上傳子訂單應付金額、物流費、商品價格(應付金額=物流費+商品價格)。
字段名 | 變量名 | 必填 | 類型 | 示例值 | 說明 |
---|---|---|---|---|---|
簽名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 簽名,詳見簽名生成算法 |
公眾賬號ID | appid | 是 | String(32) | wxd678efh667hg6787 | 微信分配的公眾賬號ID |
商戶號 | mch_id | 是 | String(32) | 1230000109 | 微信支付分配的商戶號 |
商戶訂單號 | out_trade_no | 是 | String(32) | 20150806125346 | 商戶系統內部的訂單號 |
微信支付訂單號 | transaction_id | 是 | String(28) | 1000320306201511078440737890 | 微信支付返回的訂單號 |
海關 | customs | 是 | String(32) | SHANGHAI | NO 無需上報海關 GUANGZHOU 廣州 HANGZHOU 杭州 NINGBO 寧波 ZHENGZHOU_BS 鄭州(保稅物流中心) CHONGQING 重慶 XIAN 西安 SHANGHAI 上海 ZHENGZHOU_ZH 鄭州(綜保區) SHENZHEN 深圳 |
商戶海關備案號 | mch_customs_no | 否 | String(32) | 123456 | 商戶在海關登記的備案號,customs非NO,此參數必填 |
關稅 | duty | 否 | Int | 888 | 關稅,以分為單位 |
以下字段在拆單或重新報關時必傳
字段名 | 變量名 | 必填 | 類型 | 示例值 | 描述 |
---|---|---|---|---|---|
商戶子訂單號 | sub_order_no | 否 | String(32) | 20150806125346 | 商戶子訂單號,如有拆單則必傳 |
幣種 | fee_type | 否 | String(3) | CNY | 微信支付訂單支付時使用的幣種,暫只支持人民幣CNY,如有拆單則必傳。 |
應付金額 | order_fee | 否 | Int | 888 | 子訂單金額,以分為單位,不能超過原訂單金額,order_fee=transport_fee+product_fee(應付金額=物流費+商品價格),如有拆單則必傳。 |
物流費 | transport_fee | 否 | Int | 888 | 物流費用,以分為單位,如有拆單則必傳。 |
商品價格 | product_fee | 否 | Int | 888 | 商品費用,以分為單位,如有拆單則必傳。 |
以下字段在微信缺少用戶信息時必傳,如果商戶上傳了用戶信息,則以商戶上傳的信息為準。
字段名 | 變量名 | 必填 | 類型 | 示例值 | 描述 |
---|---|---|---|---|---|
證件類型 | cert_type | 否 | String(32) | IDCARD | 暫只支持身份證,該參數是指用戶信息,商戶若有用戶信息,可上送,系統將以商戶上傳的數據為準,進行海關通關報備; |
證件號碼 | cert_id | 否 | String(64) | 330821198809085211 | 身份證號,該參數是指用戶信息,商戶若有用戶信息,可上送,系統將以商戶上傳的數據為準,進行海關通關報備; |
姓名 | name | 否 | String(64) | 張三 | 用戶姓名,該參數是指用戶信息,商戶若有用戶信息,可上送,系統將以商戶上傳的數據為準,進行海關通關報備; |
舉例如下:
<xml> <appid>wx2421b1c4370ec43b</appid> <customs>ZHENGZHOU_BS</customs> <mch_customs_no>D00411</mch_customs_no> <mch_id>1262544101</mch_id> <order_fee>13110</order_fee> <out_trade_no>15112496832609</out_trade_no> <product_fee>13110</product_fee> <sign>8FF6CEF879FB9555CD580222E671E9D4</sign> <transaction_id>1006930610201511241751403478</transaction_id> <transport_fee>0</transport_fee> <fee_type>CNY</fee_type> <sub_order_no>15112496832609001</sub_order_no> </xml>
注:參數值用XML轉義即可,CDATA標簽用于說明數據不被XML解析器解析。
字段名 | 變量名 | 必填 | 類型 | 示例值 | 說明 |
---|---|---|---|---|---|
返回狀態碼 | return_code | 是 | String(16) | SUCCESS | SUCCESS/FAIL 此字段是通信標識,非交易標識,交易是否成功需要查看result_code來判斷 |
返回信息 | return_msg | 否 | String(128) | 簽名失敗 | 返回信息,如非空,為錯誤原因 簽名失敗 參數格式校驗錯誤 |
以下字段在return_code為SUCCESS的時候有返回
字段名 | 變量名 | 必填 | 類型 | 示例值 | 描述 |
---|---|---|---|---|---|
簽名類型 | sign_type | 是 | String(32) | MD5 | 暫只支持MD5 |
簽名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 簽名,詳見簽名生成算法 |
公眾賬號ID | appid | 是 | String(32) | wxd678efh667hg6787 | 微信分配的公眾賬號ID |
商戶號 | mch_id | 是 | String(32) | 1230000109 | 微信支付分配的商戶號 |
業務結果 | result_code | 是 | String(16) | SUCCESS | SUCCESS/FAIL |
錯誤代碼 | err_code | 否 | String(32) | SYSTEMERROR | 詳細參見錯誤列表 |
錯誤代碼描述 | err_code_des | 否 | String(128) | 系統錯誤 | 錯誤返回的信息描述 |
以下字段在return_code 和result_code都為SUCCESS的時候有返回
字段名 | 變量名 | 必填 | 類型 | 示例值 | 描述 |
---|---|---|---|---|---|
狀態碼 | state | 是 | String(2) | UNDECLARED | 狀態碼 UNDECLARED -- 未申報 SUBMITTED -- 申報已提交(訂單已經送海關,商戶重新申報,并且海關還有修改接口,那么記錄的狀態會是這個) PROCESSING -- 申報中 SUCCESS -- 申報成功 FAIL-- 申報失敗 EXCEPT --海關接口異常 |
微信支付訂單號 | transaction_id | 是 | String(28) | 1000320306201511078440737890 | 微信支付返回的訂單號 |
商戶訂單號 | out_trade_no | 是 | String(32) | 20150806125346 | 商戶系統內部的訂單號 |
商戶子訂單號 | sub_order_no | 否 | String(32) | 20150806125346 | 商戶子訂單號,如有拆單則必傳 |
微信子訂單號 | sub_order_id | 否 | String(32) | 20150806125346 | 微信子訂單號 |
最后更新時間 | modify_time | 是 | String(14) | 20091227091010 | 最后更新時間,格式為yyyyMMddhhmmss,如2009年12月27日9點10分10秒表示為20091227091010。時區為GMT+8 beijing。該時間取自微信服務器 |
名稱 | 描述 | 原因 | 解決方案 |
---|---|---|---|
132011004 | 參數錯誤 | 報關時僅傳入訂單號,不傳入子訂單號(sub_order_no)時,不能填費用信息,須以支付系統中的值為準 | 請檢查參數是否都正確 |
132021028 | 交易幣種與商戶結算幣種不一致】 | 報關時傳入子訂單號(sub_order_no)時,幣種參數(fee_type)必填 | 請檢查所傳幣種參數(fee_type)是否為空 |
MCHID_NOT_SET | 商戶號未設置 | 商戶號為必傳參數,請求時必傳 | 請檢查商戶號是否為空 |
MCHID_INVALID_LENGTH | 無效的商戶號長度 | 報關接口只支持12開頭10位數字的商戶號 | 請檢查商戶號長度是否為10位 |
CUSTOMSCONFIG_NOT_SET | 海關配置未設置 | 報關接口需要商戶已配置過海關信息才可以訪問 | 請參照上文中的海關備案指引,進行海關信息報備 |
FEETYPE_NOT_SET | 幣種類型未設置 | 拆單情況下,幣種為必填參數 | 請檢查fee_type是否為空 |
OUTTRADENO_NOT_SET | 商戶訂單號(out_trade_no)未設置 | 商戶訂單號為必傳參數 | 請檢查商戶訂單號(out_trade_no)是否為空 |
TRANSACTION_ID_NOT_SET | 微信訂單號(transaction_id)未設置 | 微信訂單號(transaction_id)為必傳參數 | 請檢查微信訂單號(transaction_id)是否為空 |
INVALID_TRANSACTION_ID | 無效的微信訂單號長度 | 微信訂單號為28位數字,請確保長度一致 | 請檢查微信訂單號(transaction_id)是否正確 |
CUSTOMS_NOT_SET | 海關信息未設置 | 海關信息為必傳字段 | 請檢查海關信息是否為空 |
CHCUSTOMSNO_NOT_SET | 海關備案號未設置 | 海關備案號為必傳字段 | 請檢查備案號是否為空 |
INVALID_MCHCUSTOMSNO | 無效的海關備案號長度 | 海關備案號一般為6位字符串 | 請檢查海關備案號是否正確 |
PAYFEE_NOT_MATCH | 金額不匹配 | 報關的訂單金額必須和支付的金額一致 | 請檢查報關訂單的金額是否正確 |
INVALID_SUBORDER_NO | 無效的子訂單號長度(sub_order_no) | 子訂單號要求是32位以內的字符串 | 請檢查子訂單號長度是否正確 |
APPID_NOT_EXIST | AppId未設置(sub_order_no) | appid為必傳字段 | 請檢查appid是否正確 |
MCHID_NOT_EXIST | 商戶號(mch_id)未設置 | MCH_ID為必傳字段 | 請檢查mch_id是否正確 |
AUTHORITY_NOT_FOUND | 未開通自助清關功能 | 須先開通自助清關功能才可成功調用接口 | 請檢查是否已開通自助清關功能,開通路徑:微信支付商戶平臺-產品中心-自助清關中申請開通。 |
NO_AUTH | 無權限 | 未獲得此接口的調用權限 | 請檢查當前商戶號是否已獲得此接口的調用權限 |
sdk定義
發送數據如下
array(6) { ["appid"]=> string(18) "wxa8092dd025e45123" ["mch_id"]=> string(10) "1238298123" ["out_trade_no"]=> string(22) "SH20160824095750086988" ["transaction_id"]=> string(28) "4006742001201608242098415582" ["customs"]=> string(6) "NINGBO" ["mch_customs_no"]=> string(10) "3302461123" }
接收到的數據如下
array(12) { ["return_code"]=> string(7) "SUCCESS" ["return_msg"]=> string(6) "成功" ["sign"]=> string(32) "91EFCEEAAD4322F331F3F63C4D8F1279" ["appid"]=> string(18) "wxa8092dd025e45123" ["mch_id"]=> string(10) "1238298123" ["result_code"]=> string(7) "SUCCESS" ["err_code"]=> string(1) "0" ["err_code_des"]=> string(2) "OK" ["state"]=> string(9) "SUBMITTED" ["transaction_id"]=> string(28) "4006742001201608242098415582" ["out_trade_no"]=> string(22) "SH20160824095750086988" ["modify_time"]=> string(14) "20160825111049" }
以上是“微信公眾平臺開發微信支付報關接口的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。