跨境系统-东方支付 微信公众号_接口规范 ecshop
更新时间:2020-09-18 点击量:3978
1.1. 功能描述
向东方支付提交微信支付的接口文档。
第1章 数据格式
报文结构采用JSON定义,使用自定义格式;
报文统一使用UTF-8编码。
2.1 报文结构
2.1.1请求报文头
变量 | 变量名称 | 类型(字符数) | 要求 | 备注 |
msgVersion | 接口版本号 | String(4) | M | 1.0 |
msgCode | 接口定义代码 | String(26) | M | 下单时:WX_OFFICIAL_PAY 查询时:WX_ OFFICIAL _QUERY |
msgSerialNo | 报文流水号 | String(26) | M | 报文唯一流水 |
msgSender | 发送方代码 | String(7) | M | |
msgSenderKey | 发送方证书ID | String(50) | M | 发送方证书ID |
msgContent | 业务内容 | -- | M | |
timestamp | 请求时间 | String(20) | M | |
sign | ||||
signType | 加签方式 | String(20) | M | |
signValue | 加签内容 | String(2048) | M | |
encryptType | 加密方式 | String(26) | O | 1、RSA |
示例: { "msgVersion": "3.0", "msgCode": "ORDER_QUERY", "msgSerialNo": "201902191020302091839201", "msgSender": "EPPAYTS", "msgContent": "ew0KCQkidHJ4U2VyaWFsTm8iOiAiVFMyMDE5MDExNzA5MjkxNjM4MTQ0MTQ0MTEiLA0KCQkib3RyeFNlcmlhbE5vIjogIlQwMDAwMDAwMDc4NjIwMTYxMDEzMTAzMDQ0IiwNCgkJInBheUFtb3VudCI6IDE1LA0KCQkicGF5Q3VycmVuY3kiOiAiQ05ZIiwNCgkJImJhbmtOb2RlQ29kZSI6ICJFUENDMDAwIiwNCgkJImNydENvZGUiOiAiMDg3OTI5MTM3IiwNCgkJImNyYWNjTmFtZSI6ICLmtbfljZfoiKrnqbrlhazlj7gyIiwNCgkJImNtZFR5cGUiOiAiMTAiLA0KCQkic2VyaWFsTm8iOiAiRk0yMDE5MDExNzA5MjkxNjk0ODAxMDQyMDEiDQoJfQ==", "timestamp": "20190219102030", "sign": { "signType": "RSA", "signValue": "ZDkzbGM5MzlrbzNsbGQ5b2llazhsbzI=" }, "encryptType":"RSA" }
2.1.1响应报文头
变量 | 变量名称 | 类型(字符数) | 要求 | 备注 |
code | 返回码 | String(10) | M | |
msg | 返回码描述信息 | String(26) | M | |
msgSerialNo | 报文流水号 | String(26) | M | |
sign | 加签内容 | String(2048) | O | 对body内容进行签名,某些情况body为空,此字段为空 |
body | 业务内容 | -- | O |
示例: { "code":"000000", "msg":"请求成功", "msgSerialNo":"2019060314320038340", "sign":"MEUCIQCEmeN5zFPzp3ovGdxuv3BFK0IuUAdMh9xwMDw25C8CBQIgSG5XqOMSX6nh8+bl6fv3nV/P4yI9fzI2c6wNkfLuv5s=", "body":"H4sIAAAAAAAAAKtWSs5PSVWyUjIAAyUdpdzidCD3xfrtzzY2PeuY8LRrPkQwOLUoMzHHL1/JKq80J0dHqTgzPQ/GTslMTy0ugfGS8lMqgUaEGxrYKtUCAOM0KuVhAAAA" }
请求报文
变量 | 变量名称 | 类型(字符数) | 要求 | 备注 |
trxCd | 交易代码 | 字符串(固定4) | M | 固定值:1302 |
outOrderNo | 订单号 | 字符串(1~64) | M | 商户订单号 不支持商户提交重复流水号,对重复订单号将返回失败信息 |
outOrderTime | 订单生成时间 | 字符串(固定14) | M | 14 位定长。 yyyyMMddHHmmss |
mrchntCode | 商户号 | 字符串(1~30) | M | 东方支付分配的商户号 |
appid | 微信应用号 | 字符串(1~30) | M | 小程序or公众号的APPID |
openId | 微信用户标识 | 字符串(1~100) | M | 用户在服务商公众号appid下的唯一标识 |
trxCcyCd | 交易币种 | 字符串(固定3) | M | 支付币种,固定值CNY |
trxAmt | 交易金额 | 金额字符串(0.01~100000.00) | M | 总金额,最小2位小数,不允许包含任何字、符号 |
goodsName | 商品名称 | 字符串(1~100) | M | |
goodsNum | 商品数量 | 数字字符串(1~1000) | O | |
frontUrl | 前台通知地址 | 字符串(1~256) | O | |
backUrl | 后台通知地址 | 字符串(1~256) | M | 支付结果通知地址 |
payMethod | 支付方式 | 字符串(固定1) | M | 固定值 3:API |
productType | 产品类型 | 字符串(1~20) | M | 产品类型 - WX_OFFICIAL:微信公众号支付 |
tradeType | 交易类型 | 字符串(1~20) | M | official:公众号支付
|
remoteIp | 终端IP | 字符串(1~20) | M | |
attach | 附加信息 | 字符串(1~256) | O | 商户附加信息,可做扩展参数 |
spt1 | 备用域1 | 字符串(1~256) | O | |
spt2 | 备用域2 | 字符串(1~256) | O |
同步应答报文
变量 | 变量名称 | 类型(字符数) | 要求 | 备注 |
trxCd | 交易代码 | 字符串(固定4) | M | 原交易类型 |
outOrderNo | 订单号 | 字符串(1~64) | M | 商户订单号 不支持商户提交重复流水号,对重复订单号将返回失败信息 |
outOrderTime | 订单生成时间 | 字符串(固定14) | M | 14 位定长。 yyyyMMddHHmmss |
orderNo | 支付交易订单号 | 字符串(1~64) | M | 东方支付生成交易订单号 |
rdoTime | 支付平台返回时间 | 字符串(固定14) | M | 14 位定长。 yyyyMMddHHmmss |
mrchntCode | 商户代码 | 字符串(1~30) | M | 商户号,由东方支付分配 |
payMethod | 支付方式 | 字符串(固定1) | M | 固定值 3:API |
productType | 产品类型 | 字符串(1~20) | M | 产品类型
WX_OFFICIAL:微信公众号支付 |
tradeType | 交易类型 | 字符串(1~20) | M | official:公众号支付
|
trxCcyCd | 交易币种 | 字符串(固定3) | M | 支付币种,固定值CNY |
trxAmt | 交易金额 | 金额字符串(0.01~100000.00) | M | 总金额,最小2位小数,不允许包含任何字、符号 |
returnCode | 返回状态码 | 字符串(1~30) | M | |
returnMsg | 返回信息 | 字符串(1~256) | O | |
payInfo | APP调用数据 | 字符串(1~2000) | M | 调用微信支付时使用原始数据串 |
sysRtnCd | 扩展返回代码 | 字符串(1~30) | O | |
sysRtnDesc | 扩展返回信息 | 字符串(1~256) | O | |
spt1 | 备用域1 | 字符串(1~256) | O | |
spt2 | 备用域2 | 字符串(1~256) | O |
异步应答报文
2.2.3.1 概述
对于异步应答,如果平台收到商户的应答不是纯字符串success或超过5秒后返回时,平台认为通知失败,平台会通过一定的策略间接性重新发起通知,尽可能提高通知的成功率,但不保证通知最终能成功。若在平台成功后超过2小时仍未收到商户的成功响应,平台将不会再次发起通知,商户可通过查询接口查询该笔交易的状态。
由于存在重新发送后台通知的情况, 因此同样的通知可能会多次发送给商户系统。 商户系统必须能够正确处理重复的通知。
变量 | 变量名称 | 类型(字符数) | 要求 | 备注 |
trxCd | 交易代码 | 字符串(固定4) | M | 原交易类型 |
tradeState | 交易状态 | 字符串(1~20) | M | S—支付完成 F—支付失败 |
returnCode | 返回码 | 字符串(1~30) | M | 返回状态码 |
returnMsg | 返回信息 | 字符串(1~256) | O | 支付失败时描述信息 |
mrchntCode | 商户号 | 字符串(1~30) | M | 商户号,由东方支付分配 |
payMethod | 支付方式 | 字符串(固定1) | M | 固定值 3:API |
productType | 产品类型 | 字符串(1~20) | M | 产品类型
WX_OFFICIAL:微信公众号支付 |
tradeType | 交易类型 | 字符串(1~20) | M | official:公众号支付
|
outOrderNo | 商户订单号 | 字符串(1~64) | M | 对应下单接口中outOrderNo |
outOrderTime | 订单生成时间 | 字符串(固定14) | M | 14 位定长。 yyyyMMddHHmmss |
orderNo | 支付交易订单号 | 字符串(1~64) | M | 东方支付生成交易订单号,对应下单应答中orderNo |
payTime | 支付成功时间 | 字符串(固定14) | O | 支付成功后返回的时间 14 位定长。 yyyyMMddHHmmss |
trxCcyCd | 交易币种 | 字符串(固定3) | M | 支付币种,固定值CNY |
trxAmt | 交易金额 | 金额字符串(0.01~100000.00) | M | 总金额,最小2位小数,不允许包含任何字、符号 |
factAmt | 实际金额 | 金额字符串(0.01~100000.00) | O | 实际金额,最小2位小数,不允许包含任何字、符号 |
sysRtnCd | 扩展返回代码 | 字符串(1~30) | O | |
sysRtnDesc | 扩展返回信息 | 字符串(1~256) | O | |
spt1 | 备用域1 | 字符串(1~256) | O | |
spt2 | 备用域2 | 字符串(1~256) | O |
第1章 应答码
码表 | 说明 | 出现接口 |
000000 | 成功 | WX_OFFICIAL_PAY、WX_ OFFICIAL _QUERY |
999999 | 系统错误(服务方内部处理异常无法正常接收数据返回) | WX_OFFICIAL_PAY、WX_ OFFICIAL _QUERY |
100001 | 签名验证出错(针对请求接口中sign字段校验) | WX_OFFICIAL_PAY、WX_ OFFICIAL _QUERY |
100005 | XX参数不正确(包括不能为空值的参数传输空值、字段长度超过最大数、金额格式不正确、日期格式不正确等),由于XX原因 | WX_OFFICIAL_PAY、WX_ OFFICIAL _QUERY |
100006 | 没有权限访问该服务 | WX_OFFICIAL_PAY、WX_ OFFICIAL _QUERY |
100007 | 无效加密方式 | WX_OFFICIAL_PAY、WX_ OFFICIAL _QUERY |
100011 | 报文格式不正确 | |
200001 | 流水号已存在(重复流水号或已经接收成功),调用方一定注意此返回码也代表表示成功 | WX_OFFICIAL_PAY |
200002 | 订单号已存在(重复订单号或已经接收成功),调用方一定注意此返回码也代表表示成功 | WX_OFFICIAL_PAY |
200004 | 金额不能小于等于0 | WX_OFFICIAL_PAY |
200005 | 数量不能小于或等于0 | WX_OFFICIAL_PAY |
200006 | 企业(或商户)标识无效 | WX_OFFICIAL_PAY |
200007 | 订单关闭中或已关闭 | WX_OFFICIAL_PAY |
200008 | 订单号重复使用出现字段信息不匹配 | WX_OFFICIAL_PAY |
200009 | 订单不存在 | WX_OFFICIAL_PAY |
200010 | 请求处理拒绝,当前记录状态不允许处理此请求,当前状态为XX | WX_OFFICIAL_PAY |
200013 | 企业信息不存在,无法验证 | WX_OFFICIAL_PAY |
200014 | 开始和结束时间范围无效(开始时间晚于结束时间或时间范围超过设定周期) | WX_OFFICIAL_PAY |
200022 | 渠道校验失败 | WX_OFFICIAL_PAY |
200032 | 查询无符合条件的结果 | WX_ OFFICIAL _QUERY |
如果文章对您有帮助,就打赏一个吧