溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

微信公眾平臺(tái)開發(fā)微信支付報(bào)關(guān)接口的示例分析

發(fā)布時(shí)間:2021-09-10 14:34:19 來(lái)源:億速云 閱讀:161 作者:小新 欄目:移動(dòng)開發(fā)

這篇文章主要為大家展示了“微信公眾平臺(tái)開發(fā)微信支付報(bào)關(guān)接口的示例分析”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“微信公眾平臺(tái)開發(fā)微信支付報(bào)關(guān)接口的示例分析”這篇文章吧。

一、報(bào)關(guān)接口API

接口地址

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

是否需要證書

不需要。

請(qǐng)求方式:post 數(shù)據(jù)格式:xml 簽名方式:MD5

注意:商戶訂單號(hào)金額以支付系統(tǒng)記錄的為準(zhǔn),無(wú)需上傳,如有子訂單號(hào)則必須上傳子訂單應(yīng)付金額、物流費(fèi)、商品價(jià)格(應(yīng)付金額=物流費(fèi)+商品價(jià)格)。

字段名變量名必填類型示例值說(shuō)明
簽名signString(32)C380BEC2BFD727A4B6845133519F3AD6簽名,詳見(jiàn)簽名生成算法
公眾賬號(hào)IDappidString(32)wxd678efh667hg6787微信分配的公眾賬號(hào)ID
商戶號(hào)mch_idString(32)1230000109微信支付分配的商戶號(hào)
商戶訂單號(hào)out_trade_noString(32)20150806125346商戶系統(tǒng)內(nèi)部的訂單號(hào)
微信支付訂單號(hào)transaction_idString(28)1000320306201511078440737890微信支付返回的訂單號(hào)
海關(guān)customsString(32)SHANGHAI

NO 無(wú)需上報(bào)海關(guān)

GUANGZHOU 廣州

HANGZHOU 杭州

NINGBO 寧波

ZHENGZHOU_BS 鄭州(保稅物流中心)

CHONGQING 重慶

XIAN 西安

SHANGHAI 上海

ZHENGZHOU_ZH 鄭州(綜保區(qū))

SHENZHEN 深圳

商戶海關(guān)備案號(hào)mch_customs_noString(32)123456商戶在海關(guān)登記的備案號(hào),customs非NO,此參數(shù)必填
關(guān)稅dutyInt888關(guān)稅,以分為單位

以下字段在拆單或重新報(bào)關(guān)時(shí)必傳

字段名變量名必填類型示例值描述
商戶子訂單號(hào)sub_order_noString(32)20150806125346商戶子訂單號(hào),如有拆單則必傳
幣種fee_typeString(3)CNY微信支付訂單支付時(shí)使用的幣種,暫只支持人民幣CNY,如有拆單則必傳。
應(yīng)付金額order_feeInt888子訂單金額,以分為單位,不能超過(guò)原訂單金額,order_fee=transport_fee+product_fee(應(yīng)付金額=物流費(fèi)+商品價(jià)格),如有拆單則必傳。
物流費(fèi)transport_feeInt888物流費(fèi)用,以分為單位,如有拆單則必傳。
商品價(jià)格product_feeInt888商品費(fèi)用,以分為單位,如有拆單則必傳。

以下字段在微信缺少用戶信息時(shí)必傳,如果商戶上傳了用戶信息,則以商戶上傳的信息為準(zhǔn)。

字段名變量名必填類型示例值描述
證件類型cert_typeString(32)IDCARD暫只支持身份證,該參數(shù)是指用戶信息,商戶若有用戶信息,可上送,系統(tǒng)將以商戶上傳的數(shù)據(jù)為準(zhǔn),進(jìn)行海關(guān)通關(guān)報(bào)備;
證件號(hào)碼cert_idString(64)330821198809085211身份證號(hào),該參數(shù)是指用戶信息,商戶若有用戶信息,可上送,系統(tǒng)將以商戶上傳的數(shù)據(jù)為準(zhǔn),進(jìn)行海關(guān)通關(guān)報(bào)備;
姓名nameString(64)張三用戶姓名,該參數(shù)是指用戶信息,商戶若有用戶信息,可上送,系統(tǒng)將以商戶上傳的數(shù)據(jù)為準(zhǔn),進(jìn)行海關(guān)通關(guān)報(bào)備;

舉例如下:

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

注:參數(shù)值用XML轉(zhuǎn)義即可,CDATA標(biāo)簽用于說(shuō)明數(shù)據(jù)不被XML解析器解析。

應(yīng)答參數(shù)列表

字段名變量名必填類型示例值說(shuō)明
返回狀態(tài)碼return_codeString(16)SUCCESS

SUCCESS/FAIL

此字段是通信標(biāo)識(shí),非交易標(biāo)識(shí),交易是否成功需要查看result_code來(lái)判斷

返回信息return_msgString(128)簽名失敗

返回信息,如非空,為錯(cuò)誤原因

簽名失敗

參數(shù)格式校驗(yàn)錯(cuò)誤

以下字段在return_code為SUCCESS的時(shí)候有返回

字段名變量名必填類型示例值描述
簽名類型sign_typeString(32)MD5暫只支持MD5
簽名signString(32)C380BEC2BFD727A4B6845133519F3AD6簽名,詳見(jiàn)簽名生成算法
公眾賬號(hào)IDappidString(32)wxd678efh667hg6787微信分配的公眾賬號(hào)ID
商戶號(hào)mch_idString(32)1230000109微信支付分配的商戶號(hào)
業(yè)務(wù)結(jié)果result_codeString(16)SUCCESSSUCCESS/FAIL
錯(cuò)誤代碼err_codeString(32)SYSTEMERROR詳細(xì)參見(jiàn)錯(cuò)誤列表
錯(cuò)誤代碼描述err_code_desString(128)系統(tǒng)錯(cuò)誤錯(cuò)誤返回的信息描述

以下字段在return_code 和result_code都為SUCCESS的時(shí)候有返回

字段名變量名必填類型示例值描述
狀態(tài)碼stateString(2)UNDECLARED

狀態(tài)碼

UNDECLARED -- 未申報(bào)

SUBMITTED -- 申報(bào)已提交(訂單已經(jīng)送海關(guān),商戶重新申報(bào),并且海關(guān)還有修改接口,那么記錄的狀態(tài)會(huì)是這個(gè))

PROCESSING -- 申報(bào)中

SUCCESS -- 申報(bào)成功

FAIL-- 申報(bào)失敗

EXCEPT --海關(guān)接口異常

微信支付訂單號(hào)transaction_idString(28)1000320306201511078440737890微信支付返回的訂單號(hào)
商戶訂單號(hào)out_trade_noString(32)20150806125346商戶系統(tǒng)內(nèi)部的訂單號(hào)
商戶子訂單號(hào)sub_order_noString(32)20150806125346商戶子訂單號(hào),如有拆單則必傳
微信子訂單號(hào)sub_order_idString(32)20150806125346微信子訂單號(hào)
最后更新時(shí)間modify_timeString(14)20091227091010最后更新時(shí)間,格式為yyyyMMddhhmmss,如2009年12月27日9點(diǎn)10分10秒表示為20091227091010。時(shí)區(qū)為GMT+8 beijing。該時(shí)間取自微信服務(wù)器

錯(cuò)誤碼

名稱描述原因解決方案
132011004參數(shù)錯(cuò)誤報(bào)關(guān)時(shí)僅傳入訂單號(hào),不傳入子訂單號(hào)(sub_order_no)時(shí),不能填費(fèi)用信息,須以支付系統(tǒng)中的值為準(zhǔn)請(qǐng)檢查參數(shù)是否都正確
132021028交易幣種與商戶結(jié)算幣種不一致】報(bào)關(guān)時(shí)傳入子訂單號(hào)(sub_order_no)時(shí),幣種參數(shù)(fee_type)必填請(qǐng)檢查所傳幣種參數(shù)(fee_type)是否為空
MCHID_NOT_SET商戶號(hào)未設(shè)置商戶號(hào)為必傳參數(shù),請(qǐng)求時(shí)必傳請(qǐng)檢查商戶號(hào)是否為空
MCHID_INVALID_LENGTH無(wú)效的商戶號(hào)長(zhǎng)度報(bào)關(guān)接口只支持12開頭10位數(shù)字的商戶號(hào)請(qǐng)檢查商戶號(hào)長(zhǎng)度是否為10位
CUSTOMSCONFIG_NOT_SET海關(guān)配置未設(shè)置報(bào)關(guān)接口需要商戶已配置過(guò)海關(guān)信息才可以訪問(wèn)請(qǐng)參照上文中的海關(guān)備案指引,進(jìn)行海關(guān)信息報(bào)備
FEETYPE_NOT_SET幣種類型未設(shè)置拆單情況下,幣種為必填參數(shù)請(qǐng)檢查fee_type是否為空
OUTTRADENO_NOT_SET商戶訂單號(hào)(out_trade_no)未設(shè)置商戶訂單號(hào)為必傳參數(shù)請(qǐng)檢查商戶訂單號(hào)(out_trade_no)是否為空
TRANSACTION_ID_NOT_SET微信訂單號(hào)(transaction_id)未設(shè)置微信訂單號(hào)(transaction_id)為必傳參數(shù)請(qǐng)檢查微信訂單號(hào)(transaction_id)是否為空
INVALID_TRANSACTION_ID無(wú)效的微信訂單號(hào)長(zhǎng)度微信訂單號(hào)為28位數(shù)字,請(qǐng)確保長(zhǎng)度一致請(qǐng)檢查微信訂單號(hào)(transaction_id)是否正確
CUSTOMS_NOT_SET海關(guān)信息未設(shè)置海關(guān)信息為必傳字段請(qǐng)檢查海關(guān)信息是否為空
CHCUSTOMSNO_NOT_SET海關(guān)備案號(hào)未設(shè)置海關(guān)備案號(hào)為必傳字段請(qǐng)檢查備案號(hào)是否為空
INVALID_MCHCUSTOMSNO無(wú)效的海關(guān)備案號(hào)長(zhǎng)度海關(guān)備案號(hào)一般為6位字符串請(qǐng)檢查海關(guān)備案號(hào)是否正確
PAYFEE_NOT_MATCH金額不匹配報(bào)關(guān)的訂單金額必須和支付的金額一致請(qǐng)檢查報(bào)關(guān)訂單的金額是否正確
INVALID_SUBORDER_NO無(wú)效的子訂單號(hào)長(zhǎng)度(sub_order_no)子訂單號(hào)要求是32位以內(nèi)的字符串請(qǐng)檢查子訂單號(hào)長(zhǎng)度是否正確
APPID_NOT_EXISTAppId未設(shè)置(sub_order_no)appid為必傳字段請(qǐng)檢查appid是否正確
MCHID_NOT_EXIST商戶號(hào)(mch_id)未設(shè)置MCH_ID為必傳字段請(qǐng)檢查mch_id是否正確
AUTHORITY_NOT_FOUND未開通自助清關(guān)功能須先開通自助清關(guān)功能才可成功調(diào)用接口請(qǐng)檢查是否已開通自助清關(guān)功能,開通路徑:微信支付商戶平臺(tái)-產(chǎn)品中心-自助清關(guān)中申請(qǐng)開通。
NO_AUTH無(wú)權(quán)限未獲得此接口的調(diào)用權(quán)限請(qǐng)檢查當(dāng)前商戶號(hào)是否已獲得此接口的調(diào)用權(quán)限

二、SDK實(shí)現(xiàn)

sdk定義

微信公眾平臺(tái)開發(fā)微信支付報(bào)關(guān)接口的示例分析

微信公眾平臺(tái)開發(fā)微信支付報(bào)關(guān)接口的示例分析

三、調(diào)用方式

微信公眾平臺(tái)開發(fā)微信支付報(bào)關(guān)接口的示例分析

三、返回結(jié)果

發(fā)送數(shù)據(jù)如下

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

接收到的數(shù)據(jù)如下

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

以上是“微信公眾平臺(tái)開發(fā)微信支付報(bào)關(guān)接口的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI