热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

微信公众平台开发微信支付报关接口

​本文介绍微信支付下的报关接口的开发过程。微信报关是用于商户提交海关需要的订单信息。
本文介绍微信支付下的报关接口的开发过程。微信报关是用于商户提交海关需要的订单信息。

一、报关接口API


接口地址

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

是否需要证书

不需要。


请求方式:post 数据格式:xml 签名方式:MD5

注意:商户订单号金额以支付系统记录的为准,无需上传,如有子订单号则必须上传子订单应付金额、物流费、商品价格(应付金额=物流费+商品价格)。

字段名变量名必填类型示例值说明
签名signString(32)C380BEC2BFD727A4B6845133519F3AD6签名,详见签名生成算法
公众账号IDappidString(32)wxd678efh567hg6787微信分配的公众账号ID
商户号mch_idString(32)1230000109微信支付分配的商户号
商户订单号out_trade_noString(32)20150806125346商户系统内部的订单号
微信支付订单号transaction_idString(28)1000320306201511078440737890微信支付返回的订单号
海关customsString(32)SHANGHAI

NO 无需上报海关

GUANGZHOU 广州

HANGZHOU 杭州

NINGBO 宁波

ZHENGZHOU_BS 郑州(保税物流中心)

CHONGQING 重庆

XIAN 西安

SHANGHAI 上海

ZHENGZHOU_ZH 郑州(综保区)

SHENZHEN 深圳

商户海关备案号mch_customs_noString(32)123456商户在海关登记的备案号,customs非NO,此参数必填
关税dutyInt888关税,以分为单位

以下字段在拆单或重新报关时必传

字段名变量名必填类型示例值描述
商户子订单号sub_order_noString(32)20150806125346商户子订单号,如有拆单则必传
币种fee_typeString(3)CNY微信支付订单支付时使用的币种,暂只支持人民币CNY,如有拆单则必传。
应付金额order_feeInt888子订单金额,以分为单位,不能超过原订单金额,order_fee=transport_fee+product_fee(应付金额=物流费+商品价格),如有拆单则必传。
物流费transport_feeInt888物流费用,以分为单位,如有拆单则必传。
商品价格product_feeInt888商品费用,以分为单位,如有拆单则必传。

以下字段在微信缺少用户信息时必传,如果商户上传了用户信息,则以商户上传的信息为准。

字段名变量名必填类型示例值描述
证件类型cert_typeString(32)IDCARD暂只支持身份证,该参数是指用户信息,商户若有用户信息,可上送,系统将以商户上传的数据为准,进行海关通关报备;
证件号码cert_idString(64)330821198809085211身份证号,该参数是指用户信息,商户若有用户信息,可上送,系统将以商户上传的数据为准,进行海关通关报备;
姓名nameString(64)张三用户姓名,该参数是指用户信息,商户若有用户信息,可上送,系统将以商户上传的数据为准,进行海关通关报备;

举例如下:


   wx2421b1c4370ec43b
   ZHENGZHOU_BS
   D00411
   1262544101
   13110
   15112496832609
   13110
   8FF6CEF879FB9555CD580222E671E9D4
   1006930610201511241751403478
   0
   CNY
   15112496832609001
   

注:参数值用XML转义即可,CDATA标签用于说明数据不被XML解析器解析。


应答参数列表


字段名变量名必填类型示例值说明
返回状态码return_codeString(16)SUCCESS

SUCCESS/FAIL

此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断

返回信息return_msgString(128)签名失败

返回信息,如非空,为错误原因

签名失败

参数格式校验错误

以下字段在return_code为SUCCESS的时候有返回

字段名变量名必填类型示例值描述
签名类型sign_typeString(32)MD5暂只支持MD5
签名signString(32)C380BEC2BFD727A4B6845133519F3AD6签名,详见签名生成算法
公众账号IDappidString(32)wxd678efh567hg6787微信分配的公众账号ID
商户号mch_idString(32)1230000109微信支付分配的商户号
业务结果result_codeString(16)SUCCESSSUCCESS/FAIL
错误代码err_codeString(32)SYSTEMERROR详细参见错误列表
错误代码描述err_code_desString(128)系统错误错误返回的信息描述

以下字段在return_code 和result_code都为SUCCESS的时候有返回

字段名变量名必填类型示例值描述
状态码stateString(2)UNDECLARED

状态码

UNDECLARED -- 未申报

SUBMITTED -- 申报已提交(订单已经送海关,商户重新申报,并且海关还有修改接口,那么记录的状态会是这个)

PROCESSING -- 申报中

SUCCESS -- 申报成功

FAIL-- 申报失败

EXCEPT --海关接口异常

微信支付订单号transaction_idString(28)1000320306201511078440737890微信支付返回的订单号
商户订单号out_trade_noString(32)20150806125346商户系统内部的订单号
商户子订单号sub_order_noString(32)20150806125346商户子订单号,如有拆单则必传
微信子订单号sub_order_idString(32)20150806125346微信子订单号
最后更新时间modify_timeString(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_EXISTAppId未设置(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"
}

以上就是微信公众平台开发微信支付报关接口 的详细内容,更多请关注其它相关文章!


推荐阅读
  • Spring Boot 初学者指南(第一部分)
    本文介绍了Spring Boot框架的基础知识,包括其设计理念、主要优势以及如何简化传统的J2EE开发流程。 ... [详细]
  • 时序数据是指按时间顺序排列的数据集。通过时间轴上的数据点连接,可以构建多维度报表,揭示数据的趋势、规律及异常情况。 ... [详细]
  • 本文介绍了多种Eclipse插件,包括XML Schema Infoset Model (XSD)、Graphical Editing Framework (GEF)、Eclipse Modeling Framework (EMF)等,涵盖了从Web开发到图形界面编辑的多个方面。 ... [详细]
  • 择要:Fundebug的JavaScript毛病监控插件同步支撑Vue.js异步毛病监控。Vue.js从降生至今已5年,尤大在本年2月份宣布了严重更新,即Vue2.6。更新包含新增 ... [详细]
  • 深入浅出:Hadoop架构详解
    Hadoop作为大数据处理的核心技术,包含了一系列组件如HDFS(分布式文件系统)、YARN(资源管理框架)和MapReduce(并行计算模型)。本文将通过实例解析Hadoop的工作原理及其优势。 ... [详细]
  • 构建高性能Feed流系统的设计指南
    随着移动互联网的发展,Feed流系统成为了众多社交应用的核心组成部分。本文将深入探讨如何设计一个高效、稳定的Feed流系统,涵盖从基础架构到高级特性的各个方面。 ... [详细]
  • 尤洋:夸父AI系统——大规模并行训练的深度学习解决方案
    自从AlexNet等模型在计算机视觉领域取得突破以来,深度学习技术迅速发展。近年来,随着BERT等大型模型的广泛应用,AI模型的规模持续扩大,对硬件提出了更高的要求。本文介绍了新加坡国立大学尤洋教授团队开发的夸父AI系统,旨在解决大规模模型训练中的并行计算挑战。 ... [详细]
  • 解决宝塔面板Nginx反向代理缓存问题
    本文介绍如何在宝塔控制面板中通过编辑Nginx配置文件来解决反向代理中的缓存问题,确保每次请求都能从服务器获取最新的数据。 ... [详细]
  • 本文探讨了在SharePoint环境中使用BDC(Business Data Catalog)时遇到的问题及其解决策略,包括XML文件导入SSP后的不可见性问题以及与远程SQL Server 2005连接的难题。 ... [详细]
  • 酷家乐 Serverless FaaS 产品实践探索
    本文探讨了酷家乐在 Serverless FaaS 领域的实践与经验,重点介绍了 FaaS 平台的构建、业务收益及未来发展方向。 ... [详细]
  • [编程题] LeetCode上的Dynamic Programming(动态规划)类型的题目
    继上次把backTracking的题目做了一下之后:backTracking,我把LeetCode的动态规划的题目又做了一下,还有几道比较难的Medium的题和Hard的题没做出来,后面会继续 ... [详细]
  • 在Android应用开发中,当在MenuItem中通过app:actionLayout属性使用Switch控件时,可能会遇到空指针异常的问题。本文将探讨该问题的原因及解决方案。 ... [详细]
  • Python脚本实现批量删除多种类型文件的扩展名
    本文介绍了一个Python脚本,用于批量处理并移除指定目录下不同格式文件(如png、jpg、xml、json、txt、gt等)的文件扩展名。该方法通过递归遍历文件夹中的所有文件,并对每个文件执行重命名操作。 ... [详细]
  • 华为云openEuler环境下的Web应用部署实践
    本文详细记录了在华为云openEuler系统上进行Web应用部署的具体步骤,包括配置yum源、安装Apache、MariaDB、PHP及其相关组件,并完成WordPress的安装与配置过程。 ... [详细]
  • SpringBoot底层注解用法及原理
    2.1、组件添加1、Configuration基本使用Full模式与Lite模式示例最佳实战配置类组件之间无依赖关系用Lite模式加速容器启动过程,减少判断配置类组 ... [详细]
author-avatar
2233
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有