天天看點

微信公衆平台開發(120) 微信支付報關接口

關鍵字:微信支付 微信支付v3 報關接口 

作者:方倍工作室

本文介紹微信支付下的報關接口的開發過程。微信報關是用于商戶送出海關需要的訂單資訊。

一、報關接口API

接口位址

https://api.mch.weixin.qq.com/cgi-bin/mch/customs/customdeclareorder      

是否需要證書

不需要。

請求方式:post 資料格式:xml 簽名方式:MD5

注意:商戶訂單号金額以支付系統記錄的為準,無需上傳,如有子訂單号則必須上傳子訂單應付金額、物流費、商品價格(應付金額=物流費+商品價格)。 

字段名 變量名 必填 類型 示例值 說明
簽名 sign String(32) C380BEC2BFD727A4B6845133519F3AD6 簽名,詳見簽名生成算法
公衆賬号ID appid wxd678efh567hg6787 微信配置設定的公衆賬号ID
商戶号 mch_id 1230000109 微信支付配置設定的商戶号
商戶訂單号 out_trade_no 20150806125346 商戶系統内部的訂單号
微信支付訂單号 transaction_id String(28) 1000320306201511078440737890 微信支付傳回的訂單号
海關 customs SHANGHAI

NO 無需上報海關

GUANGZHOU 廣州

HANGZHOU 杭州

NINGBO 甯波

ZHENGZHOU_BS 鄭州(保稅物流中心)

CHONGQING 重慶

XIAN 西安

SHANGHAI 上海

ZHENGZHOU_ZH 鄭州(綜保區)

SHENZHEN 深圳

商戶海關備案号 mch_customs_no 123456 商戶在海關登記的備案号,customs非NO,此參數必填
關稅 duty Int 888 關稅,以分為機關

以下字段在拆單或重新報關時必傳

描述
商戶子訂單号 sub_order_no 商戶子訂單号,如有拆單則必傳
币種 fee_type String(3) CNY 微信支付訂單支付時使用的币種,暫隻支援人民币CNY,如有拆單則必傳。
應付金額 order_fee 子訂單金額,以分為機關,不能超過原訂單金額,order_fee=transport_fee+product_fee(應付金額=物流費+商品價格),如有拆單則必傳。
物流費 transport_fee 物流費用,以分為機關,如有拆單則必傳。
商品價格 product_fee 商品費用,以分為機關,如有拆單則必傳。

以下字段在微信缺少使用者資訊時必傳,如果商戶上傳了使用者資訊,則以商戶上傳的資訊為準。

證件類型 cert_type IDCARD 暫隻支援身份證,該參數是指使用者資訊,商戶若有使用者資訊,可上送,系統将以商戶上傳的資料為準,進行海關通關報備;
證件号碼 cert_id String(64) 330821198809085211 身份證号,該參數是指使用者資訊,商戶若有使用者資訊,可上送,系統将以商戶上傳的資料為準,進行海關通關報備;
姓名 name 張三 使用者姓名,該參數是指使用者資訊,商戶若有使用者資訊,可上送,系統将以商戶上傳的資料為準,進行海關通關報備;

舉例如下:

微信公衆平台開發(120) 微信支付報關接口
<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>      
微信公衆平台開發(120) 微信支付報關接口

注:參數值用XML轉義即可,CDATA标簽用于說明資料不被XML解析器解析。

應答參數清單

傳回狀态碼 return_code String(16) SUCCESS

SUCCESS/FAIL

此字段是通信辨別,非交易辨別,交易是否成功需要檢視result_code來判斷

傳回資訊 return_msg String(128) 簽名失敗

傳回資訊,如非空,為錯誤原因

參數格式校驗錯誤

以下字段在return_code為SUCCESS的時候有傳回

簽名類型 sign_type MD5 暫隻支援MD5
業務結果 result_code
錯誤代碼 err_code SYSTEMERROR 詳細參見錯誤清單
錯誤代碼描述 err_code_des 系統錯誤 錯誤傳回的資訊描述

以下字段在return_code 和result_code都為SUCCESS的時候有傳回

狀态碼 state String(2) UNDECLARED

UNDECLARED -- 未申報

SUBMITTED -- 申報已送出(訂單已經送海關,商戶重新申報,并且海關還有修改接口,那麼記錄的狀态會是這個)

PROCESSING -- 申報中

SUCCESS -- 申報成功

FAIL-- 申報失敗

EXCEPT --海關接口異常

微信子訂單号 sub_order_id
最後更新時間 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實作

sdk定義

微信公衆平台開發(120) 微信支付報關接口
微信公衆平台開發(120) 微信支付報關接口

三、調用方式

微信公衆平台開發(120) 微信支付報關接口

四、傳回結果

發送資料如下

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"
}      

繼續閱讀