Maison >Applet WeChat >Développement WeChat >La plateforme publique WeChat développe une interface de déclaration en douane de paiement WeChat

La plateforme publique WeChat développe une interface de déclaration en douane de paiement WeChat

高洛峰
高洛峰original
2017-03-08 16:49:054015parcourir

Cet article présente le processus de développement de l'interface de déclaration en douane sous paiement WeChat. La déclaration en douane WeChat est utilisée par les commerçants pour soumettre les informations de commande requises par les douanes.

1. API de l'interface de déclaration en douane


Adresse de l'interface

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

Avez-vous besoin d'un certificat ?

Non.


Méthode de demande : post Format des données : xml Méthode de signature : MD5

Remarque : Le montant du numéro de commande du commerçant est soumis à ce qui est enregistré dans le système de paiement. Il n'est pas nécessaire de télécharger. S'il existe un numéro de sous-commande, le montant à payer, les frais de logistique et le prix du produit de la sous-commande doivent être téléchargés (montant à payer = prix du produit des frais de logistique).

Le commerçant s'enregistre à la douane Numéro d'enregistrement, la douane n'est pas NON, ce paramètre est obligatoire
Nom du champ Nom de la variable Obligatoire Type Exemple de valeur Description
Signature signe Oui String(32) C380BEC2BFD727A4B6845133519F3AD6 Signature, voir l'algorithme de génération de signature pour plus de détails
ID de compte public appid est String(32) wxd678efh567hg6787 L'ID de compte public attribué par WeChat
Numéro de commerçant mch_id est String(32) 1230000109 Numéro de marchand attribué par le paiement WeChat
Numéro de commande du marchand out_trade_no Oui Chaîne (32 ) 20150806125346 Numéro de commande dans le système marchand
Numéro d'ordre de paiement WeChat transaction_id td > Oui String(28) 1000320306201511078440737890 Le numéro de commande renvoyé par le paiement WeChat
Douanes Douanes Oui String(32) SHANGHAI
字段名 变量名 必填 类型 示例值 说明
签名 sign String(32) C380BEC2BFD727A4B6845133519F3AD6 签名,详见签名生成算法
公众账号ID appid String(32) wxd678efh567hg6787 微信分配的公众账号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 关税,以分为单位
NON Pas besoin de signaler les douanes

GUANGZHOU Guangzhou

HANGZHOU Hangzhou
字段名 变量名 必填 类型 示例值 描述
商户子订单号 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 商品费用,以分为单位,如有拆单则必传。

NINGBO Ningbo

ZHENGZHOU_BS Zhengzhou (Centre logistique cautionné)

CHONGQING Chongqing

字段名 变量名 必填 类型 示例值 描述
证件类型 cert_type String(32) IDCARD 暂只支持身份证,该参数是指用户信息,商户若有用户信息,可上送,系统将以商户上传的数据为准,进行海关通关报备;
证件号码 cert_id String(64) 330821198809085211 身份证号,该参数是指用户信息,商户若有用户信息,可上送,系统将以商户上传的数据为准,进行海关通关报备;
姓名 name String(64) 张三 用户姓名,该参数是指用户信息,商户若有用户信息,可上送,系统将以商户上传的数据为准,进行海关通关报备;
XIAN Xi'anSHANGHAI ShanghaiZHENGZHOU_ZH Zhengzhou (zone franche complète)SHENZHEN Shenzhen
Numéro d'enregistrement douanier du commerçant mch_customs_no Non String(32) 123456
Tarif droit Non Int 888 Tarif, divisé en unités
Les champs suivants sont utilisé lors du fractionnement des commandes ou de la nouvelle déclaration en douane. RequisLes champs suivants sont obligatoires lorsque WeChat manque d'informations utilisateur. Si le commerçant a téléchargé des informations utilisateur, les informations téléchargées par le commerçant feront foi.

举例如下:

<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) wxd678efh567hg6787 微信分配的公众账号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实现

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

 

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn