扫码支付

文档说明

阅读对象

1、本规范的使用对象为服务商的技术开发人员、产品及业务。
2、开发人员应该对post提交、json 格式、http/https传输、非对称秘钥和数据签名等有一定认识。

修订记录

2019-05-06:新增

相关术语

扫码支付:用户打开微信、支付宝、银联云闪付或银行系App的扫一扫,扫描商家提供的二维码完成付款,支持微信/支付宝/银联。

接口规则

协议规则

1、接口调用方式为http post。
2、数据传输使用json格式,编码使用utf-8,请求时存放json串的参数名为: jsonData,接口传递中文或含有特殊字符的参数时应URL Encoding,接口接收返回参数时应做URL Decoding。
3、如果json请求串中值为null,则json串格式应为{“test”: “”}。
4、接口的除merPriv字段之外,其他所有字段不应该包含特殊字符,如:“&”、”?”和”‘’”等。
5、后台通知商户返回应答参数的规则:为了表示商户交易系统已经收到交易应答,商户必须在应答接收页面输出一段特殊的字符串,组成规则为:固定字符串RECV_ORD_ID_加上交易应答中某一指定字段,指定字段请见具体接口商户应答参数。

安全规范

1、为了保证数据传输过程中的数据真实性和完整性,我们需要对数据进行数字签名,在接收签名数据之后进行签名校验。
2、详情请参见接口参数checkValue参数说明。
3、checkValue生成规则:目前仅支持CFCA签名方式,checkValue生成方法请参考CFCA签名。
简单示例:
HashMap<String , String> jsonDataMap = new HashMap<String , String>();
jsonDataMap.put("termOrdId" , "20180820020626985855");
jsonDataMap.put("memberId" , memberId);
jsonDataMap.put("ordAmt" , ordAmt);
jsonDataMap.put("authCode" , "134755413751742262");//二维码
jsonDataMap.put("goodsDesc" , URLEncoder.encode(goodsDesc , Constant.CHARSET_UTF8));
jsonDataMap.put("merPriv" , "{\"Ic\":\"2253425259\",\"merNoticeUrl\":\"http://172.31.13.182:38087/site/testHttp/testB/\",\"callType\":\"04\"}");
jsonDataMap.put("apiVersion" , apiVersion);

String jsonData = JSON.toJSONString(jsonDataMap);

// CFCA 签名
String checkValue = CFCASignature.signature("100001.pfx","888888", jsonData, "UTF-8").getSign();

补单机制

交易结果以异步通知机制为准,也可以主动调用二维码订单查询接口查询交易相关信息。
1、Virgo需要回调方返回一个应答,应答内容为RECV_ORD_ID_+请求唯一ID,如果不是 则virgo发送状态为失败,但不会重试,失败原因为:NO_RECV_ORD_ID。
2、Virgo请求HTTP或HTTPS,默认超时时间为5秒,超时后会重试3次。
3、Virgo对请求应答不是200~300之间的错误,会默认重试3次。
4、Virgo请求对HTTPS不认证验签和ALLOW_ALL_HOSTNAME_VERIFIER。
5、POSTDATA建议对中文进行编码处理,以免导致服务端乱码问题。
6、一般情况下发生商户URL无法应答,请确认URL是否正确,可以在浏览器上先运行一下,确保能正常访问。
7、Virgo默认使用ISO-8895-1编码来进行post请求的,如果直接用中文进行发送,请选择指定的编码参数postCharSet。

扫码支付

场景介绍

用户打开微信、支付宝、银联云闪付或银行系App的扫一扫,扫描商家提供的二维码完成付款,支持微信/支付宝/银联。

功能描述

服务商通过调用以下接口进行扫码支付相关业务。
1、正扫接口:服务商通过此接口获取二维码链接,解析成二维码图片供用户扫描付款。
2、二维码退款接口:当商户需要退款时,可由服务商调用此接口进行退款申请。
说明:
A、接口返回成功仅表示退款申请受理成功,资金到账时间依赖于银行,通常3到7个工作日内到账,用户会收到退款。
B、当日商户在汇付的账户的余额小于退货金额时,退款申请不会成功,建议退款前保证账户余额充足。
3、二维码订单查询:服务商可通过此接口对交易结果未知的支付交易、退款交易发起交易查询。
说明:
正向交易,可支持通过outTransId(微信、支付宝的商户单号)、partyOrderId(微信、支付宝的订单号)、termOrdId(商户订单号)来进行查询
4、交易结果异步通知商户:调用支付、退款、撤销接口时,商户若在merPriv字段上传了merNoticeUrl(交易结果通知地址)信息时,平台会将交易结果以此接口报文形式推送到merNoticeUrl指定的地址上。
说明:
目前是在短时间内接连重发3次(机制正在优化,后续将调整为以一定的时间间隔进行重发,间隔的时间会逐渐增加 如3秒、6秒、9秒)。
5、关单接口:用于对超过1分钟还未支付的订单进行关闭操作。此接口目前只支持微信和支付宝,不支持银联二维码,发起关单操作的订单必须距离发起下单操作60S以上。发起关单时,若收到transStat为S,respCode非000000,商户应该再次通过查询接口获取交易成功的支付信息详情。

业务流程

_static/images/saomazhifu.png

API列表

正扫接口

描述

尊敬的客户
我司接到微信公告,微信NATIVE支付(即用户使用“微信扫一扫”扫描商户动态收款码完成支付)不再开放给三方支付机构。
增量商户将无法再使用此支付功能,存量商户可使用到9月15日,之后也将无法使用此功能。请各位尽快根据实际业务情况进行调整,避免影响到商户后续使用。感谢您的配合与理解!

输入参数

输入参数 参数代码 参数名称 数据类型 是否必填 参数说明
  jsonData json数据 String 必填  
  checkValue 加签密文 String 必填  
JsonData 参数代码 参数名称 数据类型 是否必填 参数说明
  accSplitBunch 分账串 String( 4000 ) 非必填
分账说明 divRate:分账金额单位(元)
memberId:商户号
feeMemberId:手续费承担方商户ID
divCusCount:分账条目总数 例:
{“divCusCount”:”2”,”feeMemberId”: “0001”,”acctInfos”:
[{“divRate”:”0.09”,”memberId”:”030147446000014894”},
{“divRate”:”0.91”,”memberId”:”030147446000014894”}]}
  termOrdId
商户订单号
号ID
String( 1-50 ) 必填
即商户支付订单号,商户传
入时保证唯一
格式:数字+字母
  appId
微信分配的子商户
公众账号ID
String( 32 ) 非必填
微信分配的子商户公众账
号ID,
  goodsDesc 商品名称 String( 127 ) 必填
UrlEncode进行编码,
如:%E6%B5%8B%E8%AF
  memberId 商户号 String( 18 ) 必填 汇付分配的商户号
  ordAmt 订单金额 String( 14 ) 必填
单位元,需保留小数点后两
位,例如: 1.00
  apiVersion 接口版本号 String( 7 ) 必填 3.0.0.2
  merPriv 商户私有域 String( 1500 ) 非必填
商户扩展域、json串格
式。
终端传入分帐遇到优惠的处理规则:
termDivCouponType (非必填);
01 – 按比例分02 – 按顺序保障
03 –只给交易商户(默认)
异步通知地址:merNoticeUrl(非
必填);
基站信息:lc(非必填,注意若位
数不足则用空格补足:MCC( 3
位 )+MNC( 2位 )+LAC( 5
位)+CID( 5位 ))
外部调用标识:callType(非必填);
callType选项:
01 – 智能POS
02 – MPOS
03 – MPOS SDK
04 – 智能POS SDK
05 – 传统POS
06 – 扫码设备
99 – SAAS通道接入
花呗分期数:hbFqNum(最长5位,支付宝花呗
分期分期数,暂时只支持3、6、12)与hbFqS
ellerPercent同时传入
使用花呗分期卖家承担的手续费比例:
hbFqSellerPercent(最长3位 ,使用花呗,
分期需要卖家承担的手续费比例的百分值
传入续费比例的百分值
传入100代表100%,0代表用户承担,
暂时只支持0)
  payChannelType 支付方式 String( 2 ) 必填
选项:
A1 支付宝 ;
W1 微信;
U1 银联
  timeExpire 订单过期时间 String( 14 ) 非必填
订单失效时间,超过此时
间限制之后该笔订单将无法进行支
付,失效时间与订单创建时间之间
的间隔应大于60S,
yyyyMMddHHmmss格式
  remark 备注 String( 45 ) 非必填
超出长度会导致交易失败,
败,UrlEncode进行编码,
如:%E6%B5%8B%E8%AF
  isDelayAcct 延迟标识 String( 1 ) 非必填 值为1时,该笔交易为延迟交易。
  limitPay 信用卡支付限制 String( 1 ) 非必填 值为1时禁止使用信用卡支付
  promotionDetail 优惠明细 String 非必填 Json格式
promotion
Detail
detail 商品详情 String(6000) 非必填
Json格式 对于使用单品优惠的商户,
该字段必须按照规范上传。
  detail costPrice 订单原价 String (14) 非必填
单位元,需保留小数点后两位,例如: 1.00, 最低传入0.01
    receiptId 商品小票ID String(32) 非必填
基站信息:lc(非必填,注意若位
    goodsDetail 单品列表 String 非必填
条件必填;商品详情detail不为
空时必填;单品信息,使用Json数组格式提交
goodsDetail goodsId 商品编码 String(32) 非必填
条件必填;商品详情detail不为空时必填;
  channelGoodsId 通道侧商品编码 String(32) 非必填 非必填
  goodsName 商品名称 String(256) 非必填 条件必填;商品详情detail不为空时必填;
  quantity 商品数量 String (12) 非必填 条件必填;商品详情detail不为空时必填;需传入正整数
  price 商品单价 String (12) 非必填
条件必填;商品详情detail不为空时必填;
空时必填;需保留小数点后两位,
例如: 1.00, 最低传入0.01

输出参数

输出参数 参数代码 参数名称 数据类型 是否必填 参数说明
  respCode 返回码 String( 6 ) 必填
示例:
000000表示成功,
000199交易处理中,
其余表示失败( 详见错误返回码 )
  respDesc 返回文字说明 String( 256 ) 非必填  
  checkValue 加签密文 String 必填  
  jsonData Json字符串 String 必填
jsonData数据,
内容见下方描述
JsonData 参数代码 参数名称 数据类型 是否必填 参数说明
  memberId 商户号 String( 18 ) 必填 汇付分配的商户号
  merName 商户名称 String( 28 ) 必填  
  qrcodeUrl 二维码链接 String( 64 ) 非必填  
  ordId
汇付系统的支付
订单号
String( 32 ) 非必填  
  bankMerId 银行商户号 String( 64 ) 可忽略  
  bankRespCode 银行返回码 String( 64 ) 可忽略  
  bankRespMessage 银行返回信息 String( 256 ) 可忽略  
  termOrdId 商户订单号 String( 1-50 ) 必填
即商户支付订单号,商户传
入时保证唯一
格式:数字+字母
  transDate 交易日期 String( 8 ) 非必填
交易发生日期,
YYYYMMDD
  transTime 交易时间 String( 6 ) 非必填
交易发生时间,
HHMMSS

二维码退款接口

描述

如果商户开通了延迟入账,调用了“交易确认”接口成功进行了确认,请使用“云上增强型退款接口”,接口编号:E1115

输入参数

输入参数 参数代码 参数名称 数据类型 是否必填 参数说明
  jsonData json数据 String 必填 jsonData数据,内容见下方描述
  checkValue 加签密文 String 必填  
JsonData 参数代码 参数名称 数据类型 是否必填 参数说明
  accSplitBunch 分账串 String( 4000 ) 非必填
分账说明 divRate:分账金额单位(元)
memberId:商户号
feeMemberId:手续费承担方商户ID
divCusCount:分账条目总数 例:
{“divCusCount”:”3”,”feeMemberId”: “0001”,”acctInfos”:
[{“divRate”:”0.09”,”memberId”:”030147446000014894”},
{“divRate”:”0.91”,”memberId”:”030147446000014894”}]}
  termOrdId 商户订单号 String( 1-50 ) 必填
即商户支付订单号,商户传
入时保证唯一
格式:数字+字母
  memberId 商户号 String( 18 ) 必填 汇付分配的商户号
  ordId 原交易汇付订单号 String( 20 ) 非必填 ordId和orgTermOrdId必传一个
  orgTermOrdId 原交易商户订单号 String( 1-50 ) 非必填
即原交易商户订单号,
ordId和orgTermOrdId必传一个
  ordAmt 退款金额 String( 14 ) 必填
单位元,需保留小数点后两
位,例如: 1.00
  apiVersion 接口版本号 String( 7 ) 必填 2.0.0.1或3.0.0.2
  remark 备注 String( 90 ) 非必填
退货原因,超出长度会导致退货失
败,UrlEncode进行编码,
如:%E6%B5%8B%E8%AF
  merPriv 拓展域 String( 1500 ) 非必填
商户扩展域、json串格
式。
异步通知地址:merNoticeUrl(非
必填);
基站信息:lc(非必填,注意若位
数不足则用空格补足:MCC( 3
位 )+MNC( 2位 )+LAC( 5
位)+CID( 5位 ))
外部调用标识:callType(非必填);
callType选项:
01 – 智能POS
02 – MPOS
03 – MPOS SDK
04 – 智能POS SDK
05 – 传统POS
06 – 扫码设备
99 – SAAS通道接入
  transDate 原支付交易日期 String( 8 ) 必填 YYYYMMDD

输出参数

输出参数 参数代码 参数名称 数据类型 是否必填 参数说明
  respCode 返回码 String( 6 ) 必填
示例:
000000表示成功apiVersion
为3.0.0.2及以上时同步不再
返回000000,3.0.0.2及以上时
退款结果通过查询接口或异步
通知接口获取退到用户账上的
最终实际结果
000199交易处理中
000268状态未知需联系客
服,
其余表示失败( 详见错误返回
码 )
  respDesc 返回文字说明 String( 256 ) 非必填  
  checkValue 加签密文 String 必填  
  jsonData Json字符串 String 必填 jsonData数据,内容见下方描述
JsonData 参数代码 参数名称 数据类型 是否必填 参数说明
  termOrdId 商户订单号 String( 1-50 ) 必填
即商户支付订单号,商户传入
时保证唯一
格式:数字+字母
  transDate 交易日期 String( 8 ) 非必填 交易发生日期,YYYYMMDD
  ordAmt 退款金额 String( 14 ) 必填
单位元,需保留小数点后两
位,例如: 1.00
  transTime 交易时间 String( 6 ) 非必填 交易发生时间,HHMMSS
  memberId 商户号 String( 18 ) 必填 汇付分配的商户号
  merName 商户名称 String( 128 ) 必填  
  ordId 退货订单号 String( 32 ) 非必填
受理退货之后,汇付生
成的退货订单号
  payType 支付类型 String( 2 ) 非必填
受理退货后返回
20支付宝反扫
21支付宝正扫
22无机具支付宝正扫
23无机具支付宝反扫
30微信反扫
31微信正扫
32无机具微信正扫
33无机具微信反扫
40 口碑
50银联带终端主扫 ·
51银联带终端被扫
52银联不带终端主扫
  orgOrderId
原支付交易
汇付订单号
String( 32 ) 必填  
  bankCode 通道返回码 String( 64 ) 非必填
apiVersion为3.0.0.2
及以上时返回
  bankMessage
银行返回描述
,可空
String( 256 ) 非必填
apiVersion为3.0.0.2及以上
时返回
  debitFlag 借贷记标识 String( 1 ) 非必填
选项:
D –借记卡
C –贷记卡
O –其他
  bankType 收单银行 String( 128 ) 非必填
具体参考双联银
行对照表

二维码订单查询

输入参数

输入参数 参数代码 参数名称 数据类型 是否必填 参数说明
  jsonData json数据 String 必填 jsonData数据,内容见下方描述
  checkValue 加签密文 String 必填 apiVersion:1.0用sha256/2.0以上用cfca
JsonData 参数代码 参数名称 数据类型 是否必填 参数说明
  memberId 商户号 String( 18 ) 必填 汇付分配的商户号
  termOrdId 商户订单号 String( 1-50 ) 必填
条件必填( 退款交易必填 )
支付交易:
outTransId、partyOrderId、
termOrdId支付交易
的“商户订单号”
3选1
退款交易:
termOrdId
退款交易的“商户订
单号”
  ordType 订单类型 String( 1 ) 必填 1-支付订单2-退款订单
  apiVersion 接口版本号 String( 7 ) 必填 3.0.0.2
  merOperId 操作员号 String(32) 非必填 pos机机具交易查询必填
  merPriv 商户私有域 String( 1500 ) 非必填
商户扩展域、json串格
式。
终端传入分帐遇到优惠的处理规则:
termDivCouponType (非必填);
01 – 按比例分02 – 按顺序保障
03 –只给交易商户(默认)
异步通知地址:merNoticeUrl(非
必填);
基站信息:lc(非必填,注意若位
数不足则用空格补足:MCC( 3
位 )+MNC( 2位 )+LAC( 5
位)+CID( 5位 ))
外部调用标识:callType(非必填);
callType选项:
01 – 智能POS
02 – MPOS
03 – MPOS SDK
04 – 智能POS SDK
05 – 传统POS
06 – 扫码设备
99 – SAAS通道接入
花呗分期数:hbFqNum(最长5位,支付宝花呗
分期分期数,暂时只支持3、6、12)与hbFqS
ellerPercent同时传入
使用花呗分期卖家承担的手续费比例:
hbFqSellerPercent(最长3位 ,使用花呗,
分期需要卖家承担的手续费比例的百分值
传入续费比例的百分值
传入100代表100%,0代表用户承担,
暂时只支持0)
  partyOrderId
微信支付宝的商
户单号,
String( 128 ) 非必填
正向订单
( 正扫、反扫、台
outTransId、
partyOrderId、
termOrdId 支付交易
的“商户订单号”
3选1
  outTransId
微信支付宝的订
单号,见7.3订
单号订单号
String( 128 ) 非必填
正向订单
( 正扫、反扫、台
outTransId、
partyOrderId、
termOrdId 支付交易
的“商户订单号”
3选1
  transDate 原支付交易日期 String( 8 ) 必填
被查询的原交
易的日期,( 如果是退
货交易时,该日期为
退货交易发生的日
期 )格式:
YYYYMMDD

输出参数

输出参数 参数代码 参数名称 数据类型 是否必填 参数说明
  respCode 返回码 String( 6 ) 必填
示例:
000000表示成功,
其余表示失败( 详见错误返回
码 )
  respDesc 返回文字说明 String( 256 ) 非必填  
  checkValue 加签密文 String 必填  
  jsonData Json字符串 String 必填 jsonData数据,内容见下方描述
JsonData 参数代码 参数名称 数据类型 是否必填 参数说明
  memberId 商户号 String( 18 ) 必填 汇付分配的商户号
  merName 商户名称 String( 128 ) 必填  
  merPriv 商户扩展域 String( 1500 ) 必填 Json格式字符串
  merFee 商户手续费 String( 14 ) 必填
交易查询时为手续费,单笔订单退还的手续费单位元
需保留小数点后两位,例如:1.00
  transStat 交易状态 String( 1 ) 必填
选项:
I—初始
S—成功
F – 失败
P –处理中
  ordId 汇付订单号 String( 20 ) 必填 汇付生成的订单号
  termOrdId 商户订单号 String( 1-50 ) 必填
即商户支付订单号,商户传入
时保证唯一
格式:数字+字母
  refAmt 已退款金额 String( 14 ) 非必填
累计退款金额,单位元
需保留小数点后两位,例如:1.00
  acctStat 账务状态 String( 1 ) 必填
选项:
I—初始
P –处理中
S—成功
R— 回滚
F – 失败
  payType 支付方式 String( 2 ) 必填
选项:注意不同文档数据定义不同,请仔细核对使用
10 刷卡
20支付宝反扫
21支付宝正扫
22无机具支付宝正扫
23无机具支付宝反扫
30微信反扫
31微信正扫
32无机具微信正扫
33无机具微信反扫
34微信小程序支付
50银联带终端主扫
51银联带终端被扫
52 银联不带终端主扫
53银联不带终端被扫
  transType 交易类型 String( 4 ) 必填
选项:
1000( 消费 )
2030( 退货 )
  transDate 交易日期 String( 8 ) 必填 格式,YYYYMMDD
  transTime 交易时间 String( 6 ) 必填 同:sysTime,HHMMSS
  transAmt 订单金额 String( 14 ) 必填
单位元,需保留小数点后两
位,例如: 1.00
  partyOrderId
微信支付宝的商
户单号
String( 128 ) 非必填  
  outTransId
微信支付宝的订
单号
String( 128 ) 非必填  
  traceId 汇付全局流水号 String 可忽略  
 
doubleLimit
Amt
小额双免金额
( 仅用于正向交
易 )
String 可忽略  
  bankName 银行名称 String( 128 ) 可忽略  
  openId 用户标识 String( 128 ) 非必填
支付方式为微信,表示用户在
汇付appid下的用户标识;支付方式为支付宝
,表示买家支付宝账号
  subOpenId 用户子标识 String( 128 ) 非必填
支付方式为微信,表示用户在
子商户appid下的用户标识;支付方式为支付宝
,表示买家支付宝账号
  transSeqId
汇付后端交易流
水号
String( 128 ) 非必填 可忽略
  debitFlag 借贷记标识 String( 1 ) 非必填
选项:
D –借记卡
C –贷记卡
O –其他
  bankType 收单银行 String( 128 ) 非必填
具体参考
双联银行对照表
  acctDate 账务日期 String( 8 ) 非必填  
  bankCode 通道返回码 String( 64 ) 非必填
ordType 为2
且退款交易的
apiVersion为3.0.0.2
及以上时返回
  bankMessage
银行返回描述
String( 256 ) 非必填
ordType 为2
且退款交易的
apiVersion为3.0.0.2
及以上时返回
  settlementAmt 结算订单金额 String(14) 必填
单位元,保留小数点后两位例如:1.00
未使用免充值优惠券时,此金额与订单金额相等
使用了免充值优惠券时,此金额为订单金额
-免充值优惠券
  couponInfos 优惠券信息 长度不定 非必填 优惠券信息,使用Json格
 
closeTrans
Status


关单状态 String( 1 ) 条件必填
选项:只在关单时显示
S—成功
F – 失败
P –处理中
  endTime 支付完成时间 String( 14 ) 非必填 字段格式为yyyyMMddHHmmss例如:20091225091010
  remark 备注 String( 45 ) 非必填
超出长度会导致交易失败,UrlEncode进行编码,
如:%E6%B5%8B%E8%AF

List<CouponInfo>

couponInfos 参数代码 参数名称 数据类型 是否必填 参数说明
  couponId 券ID String( 32 ) 非必填 券或者立减优惠id
  couponName 优惠名称 String( 64 ) 非必填 优惠名称
  couponRange 优惠范围 String( 32 ) 非必填 GLOBAL-全场代金券/SINGLE-单品优惠/折扣券
  couponType 优惠类型 String( 32 ) 非必填
COUPON-代金券,需要走结算资金的充值型代金券,
(境外商户券币种与支付币种一致)
DISCOUNT-优惠券,不走结算资金的免充值型优惠券,
(境外商户券币种与标价币种一致)
  couponAmt 优惠券面额 String( 12 ) 非必填
用户享受优惠的金额
(优惠券面额=微信出资金额+商家出资金额+其他出资方金额)
  activeId 活动ID String( 32 ) 非必填 在微信商户后台配置的批次ID
 
merchant
Contribute
商户出资 String( 32 ) 非必填
特指商户自己创建的优惠,
出资金额等于本项优惠总金额,单位为元
 
other
Contribute
其他出资 String( 32 ) 非必填
其他出资方金额, 可能是通道方,可能是品牌商,
或者其他方,也可能是他们的一起出资
  goodsInfo 单品信息 Object 非必填 单品信息,使用Json格式
  addnInfo 银联字段内容自定义 String( 100 ) 非必填 GLOBAL-全场代金券/SINGLE-单品优惠/折扣券

List<goodsInfo> goodsInfo

couponInfos 参数代码 参数名称 数据类型 是否必填 参数说明
  goodsCode 商品编码 String( 32 ) 非必填
由半角的大小写字母、数字、中划线、
下划线中的一种或几种组成
  goodsNote 商品备注 String( 256 ) 非必填
goods_remark为备注字段,按照配置原样返回
字段内容在微信后台配置券时进行设置
  goodsDisAmt 商品优惠金额 String( 12 ) 非必填 单品的总优惠金额,单位为:元
  goodsNum 商品数量 String( 12 ) 非必填 用户购买的数量
  goodsAmt 商品价格 String( 12 ) 非必填
单位为:元。如果商户有优惠,
优惠后的单价(例如:用户对一笔100元
的订单使用了商场发的纸质优惠券100-50
需传输商户则活动商品的单价应为原单价-50)

云上扫码增强型退款接口

实现一方承担手续费交易确认(包括全额确认和部分确认)后全额退款(包括分帐和不分帐),
均摊手续费的交易确认(包括全额确认和部分确认)后全额和部分退款(包括分帐和不分帐),
同时该接口兼容老退款接口/E1106功能。

https://nspos.cloudpnr.com/qrcp/refund/E1115

输入参数 参数代码 参数名称 数据类型 是否必填 参数说明
  jsonData json数据 String 必填 jsonData数据,内容见下方描述
  checkValue 加签密文 String 必填  
JsonData 参数代码 参数名称 数据类型 是否必填 参数说明
  termOrdId 商户订单号 String( 1-50 ) 必填
即商户支付订单号,商户传
入时保证唯一
格式:数字+字母
ordId和orgTermOrdId必传一个
  memberId 商户号 String( 18 ) 必填 汇付分配的商户号
  ordId 原交易汇付订单号 String( 20 ) 非必填 ordId和orgTermOrdId必传一个
  orgTermOrdId 原交易商户订单号 String( 1-50 ) 非必填 即原支付交易商户订单号,
  transDate 原支付交易日期 String( 8 ) 必填 YYYYMMDD
  remark 备注 String( 90 ) 非必填
退货原因,超出长度会导致退货失
败,UrlEncode进行编码,
如:%E6%B5%8B%E8%AF
  apiVersion 接口版本号 String( 7 ) 必填
2.0.0.1或3.0.0.2 apiVersion为2.0.0.1,
退款同步返回成功apiVersion为3.0.0.2及
以上时同步不再返回000000,
退款结果通过查询接口或异步通知接口
获取退到用户账上的最终实际结果
  merPriv 拓展域 String( 1500 ) 非必填 非必填;商户扩展域、json串格式。
  merNoticeUrl
退款结果异
步通知地址
String( 512 ) 非必填 退款结果异步通知地址。
  cashOutMode 出金模式 String( 2 ) 非必填
退款申请时传入的出金模式,默认为:0,
选项:0:交易确认后从结算户出
1: 交易确认后从钱包户出
仅当订单进行过确认操作时,此参数有效
  ordAmt 退款金额 String( 14 ) 必填
单位元,需保留小数点后两
位,例如: 1.00
  refundDetail 退款商户明细 Json数组 非必填
部份退款时传入,全额退款不用传
例如:一笔延迟交易的订单,金额100,已进行过“交易确认”,
确认金额20元,本次部分退款30元,那么所有参与退款的账户
需要分别注明各承担多少金额,请求参数如下:
{
……
“apiVersion”:” 3.0.0.2”,
“cashOutMode”: “0”,
“ordAmt”: “30”,
“refundDetail”: [
{
“memberId”: “A”,
“undertakeAmt”: “10”,
“confirmTermOrdId”: “”
},
{
“memberId “: “A”,
“undertakeAmt “: “20”,
“confirmTermOrdId “: “confirmTermOrdId00001”
}
]
}
refundDetail 中,各个明细的undertakeAmt 之和 = ordAmt(退款金额)
refundDetail 参数代码 参数名称 数据类型 是否必填 参数说明
  memberId 商户号 String( 18 ) 必填 汇付分配的商户号
  undertakeAmt 承担金额 String(14) 条件必填
confirmTermOrdId为空,表示订单未进行过“交易确认”,
undertakeAmt(承担金额),从延迟户出金
例如:一笔延迟交易的订单,金额100,未进行过“交易确认”,
本次部分退款10元(undertakeAmt = 10 )从延迟户出金。
confirmTermOrdId不为空,表示订单已进行过“交易确认”
在入参refundDetail里,根据cashOutMode指定的出金模式,
undertakeAmt(承担金额),优先从指定账户出金,
当指定的账户资金不足时,从另外的账户出金,都不足以完成退款,则退款失败
说明:如果从结算户出金(cashOutMode=0),
需要指定confirmTermOrdId,如果从延迟户出金(cashOutMode=1),
则confirmTermOrdId为空即可;
 
confirm
TermOrdId
原交易确认订单号 String(1-50) 非必填 如果是延时未确认的订单,可以不填。
输出参数 参数代码 参数名称 数据类型 是否必填 参数说明
  respCode 返回码 String( 6 ) 必填
示例:
000000表示成功apiVersion
为3.0.0.2及以上时同步不再
返回000000,3.0.0.2及以上时
退款结果通过查询接口或异步
通知接口获取退到用户账上的
最终实际结果
000199交易处理中
000268状态未知需联系客
服,
其余表示失败( 详见错误返回
码 )
  respDesc 返回文字说明 String( 256 ) 非必填  
  checkValue 加签密文 String 必填  
  jsonData Json字符串 String 必填 jsonData数据,内容见下方描述
JsonData 参数代码 参数名称 数据类型 是否必填 参数说明
  termOrdId 商户订单号 String( 1-50 ) 必填
即商户支付订单号,商户传入
时保证唯一
格式:数字+字母
  transDate 申请退款日期 String( 8 ) 非必填 交易发生日期,YYYYMMDD
  transTime 申请退款时间 String( 6 ) 非必填 交易发生时间,HHMMSS
  memberId 商户号 String( 18 ) 必填 汇付分配的商户号
  merName 商户名称 String( 128 ) 必填  
  orgOrdId
原支付交易
汇付订单号
String( 32 ) 必填  
  orgTermOrdId 原交易商户订单号 String( 1-50 ) 必填 商户正向交易时传入的订单号
  orgRefAmtTotal
原交易累积
已退还金额
String( 14 ) 必填 单位元,需保留小数点后两位,例如: 1.00
 
orgRefFee
AmtTotal
原交易累积
已退还手续费
String( 14 ) 必填 单位元,需保留小数点后两位,例如: 1.00
  orgRefCnt
原交易累积
已退款笔数
String( 3 ) 必填 正整数
  refundStat 退款状态 String( 1 ) 必填 选项:S—成功 F – 失败 P –处理中
  cashOutMode 出金模式 String( 2 ) 非必填
退款申请时传入的出金模式,默认为:0,
选项:0:交易确认后从结算户出
1: 交易确认后从钱包户出
仅当订单进行过确认操作时,此参数有效
  cashOutMode 出金模式 String( 2 ) 非必填
0: 先从结算户出金 1:先从钱包户出金
默认 0:先结算户
  refundAmt 退款总金额 String( 14 ) 非必填 单位元,需保留小数点后两位,例如: 1.00
  refundFeeAmt 退款总手续费 String( 14 ) 必填 单位元,需保留小数点后两位,例如: 1.00
  ordId 退款订单号 String( 32 ) 非必填
受理退货之后,汇付生
成的退货订单号
  bankCode 通道返回码 String( 64 ) 非必填
apiVersion为3.0.0.2
及以上时返回
  bankMessage
银行返回描述
可空
String( 256 ) 非必填
apiVersion为3.0.0.2及以上
时返回
  refundDetail 退款商户明细 Json数组 非必填
部份退款时传入,全额退款不用传
例如:一笔延迟交易的订单,金额100,已进行过“交易确认”,
确认金额20元,本次部分退款30元,那么所有参与退款的账户
需要分别注明各承担多少金额,请求参数如下:
{
……
“apiVersion”:” 3.0.0.2”,
“cashOutMode”: “0”,
“ordAmt”: “30”,
“refundDetail”: [
{
“memberId”: “A”,
“undertakeAmt”: “10”,
“confirmTermOrdId”: “”
},
{
“memberId “: “A”,
“undertakeAmt “: “20”,
“confirmTermOrdId “: “confirmTermOrdId00001”
}
]
}
refundDetail 中,各个明细的undertakeAmt 之和 = ordAmt(退款金额)
refundDetail 参数代码 参数名称 数据类型 是否必填 参数说明
  memberId 扣款商户号 String( 18 ) 必填 汇付分配的商户号
  undertakeAmt 承担金额 String(14) 条件必填
confirmTermOrdId为空,表示订单未进行过“交易确认”,
undertakeAmt(承担金额),从延迟户出金
例如:一笔延迟交易的订单,金额100,未进行过“交易确认”,
本次部分退款10元(undertakeAmt = 10 )从延迟户出金。
confirmTermOrdId不为空,表示订单已进行过“交易确认”
在入参refundDetail里,根据cashOutMode指定的出金模式,
undertakeAmt(承担金额),优先从指定账户出金,
当指定的账户资金不足时,从另外的账户出金,都不足以完成退款,则退款失败
说明:如果从结算户出金(cashOutMode=0),
需要指定confirmTermOrdId,如果从延迟户出金(cashOutMode=1),
则confirmTermOrdId为空即可;
 
undertake
AmtRefundFee
承担金额应退还
手续费
String(14) 条件必填
退款金额中undertakeAmt所占部分退还的
手续费金额
 
confirm
TermOrdId
确认订单号 Json数组 条件必填 每个退款商户的帐户扣款明细 | 金额部分的交易确认订单号
  acctDetail 出金帐户明细 Json数组 Json数组 每个退款商户的帐户扣款明细
acctDetail acctType 扣款账户类型 String(2) 条件必填
帐户类型:01:结算户02:钱包户
03:延时户04:充值户
  acctAmt 扣款金额 String(14)  
undertakeAmt在此类账户扣款的金额;
各扣款账户扣除金额之和等于undertakeAmt

云上扫码增强型退款查询接口

退款查询接口,用于退款结果查询

https://nspos.cloudpnr.com/qrcp/refundQuery

输入参数 参数代码 参数名称 数据类型 是否必填 参数说明
  jsonData json数据 String 必填 jsonData数据,内容见下方描述
  checkValue 加签密文 String 必填  
JsonData 参数代码 参数名称 数据类型 是否必填 参数说明
  termOrdId 商户订单号 String( 1-50 ) 必填
即商户支付订单号,商户传
入时保证唯一
格式:数字+字母
ordId和orgTermOrdId必传一个
  memberId 商户号 String( 18 ) 必填 汇付分配的商户号
  transDate 原支付交易日期 String( 8 ) 必填 YYYYMMDD
  apiVersion 接口版本号 String( 7 ) 必填 3.0.0.2
输出参数 参数代码 参数名称 数据类型 是否必填 参数说明
  respCode 返回码 String( 6 ) 必填
示例:
000000表示成功apiVersion
为3.0.0.2及以上时同步不再
返回000000,3.0.0.2及以上时
退款结果通过查询接口或异步
通知接口获取退到用户账上的
最终实际结果
000199交易处理中
000268状态未知需联系客
服,
其余表示失败( 详见错误返回
码 )
  respDesc 返回文字说明 String( 256 ) 非必填  
  checkValue 加签密文 String 必填  
  jsonData Json字符串 String 必填 jsonData数据,内容见下方描述
JsonData 参数代码 参数名称 数据类型 是否必填 参数说明
  termOrdId 商户订单号 String( 1-50 ) 必填
即商户支付订单号,商户传入
时保证唯一
格式:数字+字母
  ordId 退款订单号 String( 32 ) 非必填
受理退货之后,汇付生
成的退货订单号
  orgTermOrdId 原交易商户订单号 String( 1-50 ) 必填 商户正向交易时传入的订单号
  orgOrdId
原支付交易
汇付订单号
String( 32 ) 必填 原支付交易汇付生成的订单号
  memberId 商户号 String( 18 ) 必填 汇付分配的商户号
  merName 商户名称 String( 128 ) 必填  
  transDate 申请退款日期 String( 8 ) 非必填 交易发生日期,YYYYMMDD
  transTime 申请退款时间 String( 6 ) 非必填 交易发生时间,HHMMSS
  refundAmt 退款总金额 String( 14 ) 非必填 单位元,需保留小数点后两位,例如: 1.00
  refundFeeAmt 退款总手续费 String( 14 ) 必填 单位元,需保留小数点后两位,例如: 1.00
  refundStat 退款状态 String( 1 ) 必填 选项:S—成功 F – 失败 P –处理中
  orgOrdAmt 原支付交易金额 String( 14 ) 必填 单位元,需保留小数点后两位,例如: 1.00
  orgFeeAmt 原支付交易手续费 String( 14 ) 必填 单位元,需保留小数点后两位,例如: 1.00
  orgRefAmtTotal
原交易累积
已退还金额
String( 14 ) 必填 单位元,需保留小数点后两位,例如: 1.00
 
orgRefFee
AmtTotal
原交易累积
已退还手续费
String( 14 ) 必填 单位元,需保留小数点后两位,例如: 1.00
  orgRefCnt
原交易累积
已退款笔数
String( 3 ) 必填 正整数
  bankCode 通道返回码 String( 64 ) 非必填
apiVersion为3.0.0.2
及以上时返回
  bankMessage
银行返回描述
可空
String( 256 ) 非必填
apiVersion为3.0.0.2及以上
时返回
  feeSplitType 手续费承担模式 String( 1 ) 非必填
该延时分账交易的手续费承担模式;
选项:0 – 一方承担1 – 平均分摊
  cashOutMode 出金模式 String( 2 ) 非必填
退款申请时传入的出金模式,默认为:0,
选项:0:交易确认后从结算户出
1: 交易确认后从钱包户出
仅当订单进行过确认操作时,此参数有效
  refundDetail 退款商户明细 Json数组 非必填
部份退款时传入,全额退款不用传
例如:一笔延迟交易的订单,金额100,已进行过“交易确认”,
确认金额20元,本次部分退款30元,那么所有参与退款的账户
需要分别注明各承担多少金额,请求参数如下:
{
……
“apiVersion”:” 3.0.0.2”,
“cashOutMode”: “0”,
“ordAmt”: “30”,
“refundDetail”: [
{
“memberId”: “A”,
“undertakeAmt”: “10”,
“confirmTermOrdId”: “”
},
{
“memberId “: “A”,
“undertakeAmt “: “20”,
“confirmTermOrdId “: “confirmTermOrdId00001”
}
]
}
refundDetail 中,各个明细的undertakeAmt 之和 = ordAmt(退款金额)
refundDetail 参数代码 参数名称 数据类型 是否必填 参数说明
  memberId 商户号 String( 18 ) 必填 汇付分配的商户号
  undertakeAmt 承担金额 String(14) 条件必填
confirmTermOrdId为空,表示订单未进行过“交易确认”,
undertakeAmt(承担金额),从延迟户出金
例如:一笔延迟交易的订单,金额100,未进行过“交易确认”,
本次部分退款10元(undertakeAmt = 10 )从延迟户出金。
confirmTermOrdId不为空,表示订单已进行过“交易确认”
在入参refundDetail里,根据cashOutMode指定的出金模式,
undertakeAmt(承担金额),优先从指定账户出金,
当指定的账户资金不足时,从另外的账户出金,都不足以完成退款,则退款失败
说明:如果从结算户出金(cashOutMode=0),
需要指定confirmTermOrdId,如果从延迟户出金(cashOutMode=1),
则confirmTermOrdId为空即可;
 
undertake
AmtRefundFee
承担金额应退还
手续费
String(14) 条件必填
退款金额中undertakeAmt所占部分退还的
手续费金额
 
confirm
TermOrdId
确认订单号 Json数组 条件必填 每个退款商户的帐户扣款明细 | 金额部分的交易确认订单号
  acctDetail 出金帐户明细 Json数组 Json数组 每个退款商户的帐户扣款明细
acctDetail acctType 扣款账户类型 String(2) 条件必填
帐户类型:01:结算户02:钱包户
03:延时户04:充值户
  acctAmt 扣款金额 String(14)  
undertakeAmt在此类账户扣款的金额;
各扣款账户扣除金额之和等于undertakeAmt

云上扫码增强型退款异步通知商户

交易结果异步通知商户(延迟入账没有做交易确认按老接口返回)

输出参数 参数代码 参数名称 数据类型 是否必填 参数说明
  respCode 返回码 String( 6 ) 必填
示例:000000 – 成功其他
- 失败(详见错误返回码)
  respDesc 返回文字说明 String( 256 ) 非必填  
  checkValue 加签密文 String 必填 对整个jsonData做签名
  jsonData Json字符串 String 必填 jsonData数据,内容见下方描述
JsonData 参数代码 参数名称 数据类型 是否必填 参数说明
  termOrdId 商户订单号 String( 1-50 ) 必填
即商户支付订单号,商户传入
时保证唯一
格式:数字+字母
  ordId 退款订单号 String( 32 ) 非必填
受理退货之后,汇付生
成的退货订单号
  orgTermOrdId 原交易商户订单号 String( 1-50 ) 必填 商户正向交易时传入的订单号
  orgOrdId
原支付交易
汇付订单号
String( 32 ) 必填 原支付交易汇付生成的订单号
  memberId 商户号 String( 18 ) 必填 汇付分配的商户号
  merName 商户名称 String( 128 ) 必填  
  agentId 代理商号 String( 18 ) 选填 汇付分配的代理商号
  agentName 代理商名称 String( 128 ) 选填 代理商名称
  bagentId 渠道商号 String(18) 必填 汇付分配的渠道商号
  bagentName 渠道商户名称 String( 128 ) 必填 渠道商名称
  payType 支付类型 String( 2 ) 非必填
受理退货后返回
20支付宝反扫
21支付宝正扫
22无机具支付宝正扫
23无机具支付宝反扫
30微信反扫
31微信正扫
32无机具微信正扫
33无机具微信反扫
40 口碑
50银联带终端主扫 ·
51银联带终端被扫
52银联不带终端主扫
  transDate 申请退款日期 String( 8 ) 非必填 交易发生日期,YYYYMMDD
  transTime 申请退款时间 String( 6 ) 非必填 交易发生时间,HHMMSS
  refundAmt 退款总金额 String( 14 ) 非必填 单位元,需保留小数点后两位,例如: 1.00
  refundFeeAmt 退款总手续费 String( 14 ) 必填 单位元,需保留小数点后两位,例如: 1.00
  refundStat 退款状态 String( 1 ) 必填 选项:S—成功 F – 失败 P –处理中
  orgOrdAmt 原支付交易金额 String( 14 ) 必填 单位元,需保留小数点后两位,例如: 1.00
  orgFeeAmt 原支付交易手续费 String( 14 ) 必填 单位元,需保留小数点后两位,例如: 1.00
  orgRefAmtTotal
原交易累积
已退还金额
String( 14 ) 必填 单位元,需保留小数点后两位,例如: 1.00
 
orgRefFee
AmtTotal
原交易累积
已退还手续费
String( 14 ) 必填 单位元,需保留小数点后两位,例如: 1.00
  orgRefCnt
原交易累积
已退款笔数
String( 3 ) 必填 正整数
  bankCode 通道返回码 String( 64 ) 非必填
apiVersion为3.0.0.2
及以上时返回
  bankMessage
银行返回描述
可空
String( 256 ) 非必填
apiVersion为3.0.0.2及以上
时返回
  feeSplitType 手续费承担模式 String( 1 ) 非必填
该延时分账交易的手续费承担模式;
选项:0 – 一方承担1 – 平均分摊
  cashOutMode 出金模式 String( 2 ) 非必填
退款申请时传入的出金模式,默认为:0,
选项:0:交易确认后从结算户出
1: 交易确认后从钱包户出
仅当订单进行过确认操作时,此参数有效
  refundDetail 退款商户明细 Json数组 非必填
部份退款时传入,全额退款不用传
例如:一笔延迟交易的订单,金额100,已进行过“交易确认”,
确认金额20元,本次部分退款30元,那么所有参与退款的账户
需要分别注明各承担多少金额,请求参数如下:
{
……
“apiVersion”:” 3.0.0.2”,
“cashOutMode”: “0”,
“ordAmt”: “30”,
“refundDetail”: [
{
“memberId”: “A”,
“undertakeAmt”: “10”,
“confirmTermOrdId”: “”
},
{
“memberId “: “A”,
“undertakeAmt “: “20”,
“confirmTermOrdId “: “confirmTermOrdId00001”
}
]
}
refundDetail 中,各个明细的undertakeAmt 之和 = ordAmt(退款金额)
refundDetail 参数代码 参数名称 数据类型 是否必填 参数说明
  memberId 商户号 String( 18 ) 必填 汇付分配的商户号
  undertakeAmt 承担金额 String(14) 条件必填
confirmTermOrdId为空,表示订单未进行过“交易确认”,
undertakeAmt(承担金额),从延迟户出金
例如:一笔延迟交易的订单,金额100,未进行过“交易确认”,
本次部分退款10元(undertakeAmt = 10 )从延迟户出金。
confirmTermOrdId不为空,表示订单已进行过“交易确认”
在入参refundDetail里,根据cashOutMode指定的出金模式,
undertakeAmt(承担金额),优先从指定账户出金,
当指定的账户资金不足时,从另外的账户出金,都不足以完成退款,则退款失败
说明:如果从结算户出金(cashOutMode=0),
需要指定confirmTermOrdId,如果从延迟户出金(cashOutMode=1),
则confirmTermOrdId为空即可;
 
undertake
AmtRefundFee
承担金额应退还
手续费
String(14) 条件必填
退款金额中undertakeAmt所占部分退还的
手续费金额
 
confirm
TermOrdId
确认订单号 Json数组 条件必填 每个退款商户的帐户扣款明细 | 金额部分的交易确认订单号
  acctDetail 出金帐户明细 Json数组 Json数组 每个退款商户的帐户扣款明细
acctDetail acctType 扣款账户类型 String(2) 条件必填
帐户类型:01:结算户02:钱包户
03:延时户04:充值户
  acctAmt 扣款金额 String(14)  
undertakeAmt在此类账户扣款的金额;
各扣款账户扣除金额之和等于undertakeAmt
商户应答参数 参数代码 参数名称 数据类型 是否必填 参数说明
  固定字符串 商品订单号 String 必填 RECV_ORD_ID_{ordId}

交易结果异步通知商户

当apiversion不传或者版本在3.0.0.1之前( 不包含3.0.0.1版本 )时,异步通知报文格式如下

汇付输出 参数代码 参数名称 数据类型 是否必填 参数说明
参数 respCode 返回码 String( 6 ) 必填
示例:
000000交易成功
000095以及其他code时表示交
易失败( 详见错误返回码 )
  respMsg 返回码解释 String( 256 ) 非必填  
  transDate 交易日期 String( 8 ) 必填 格式:yyyyMMdd,如:20180313
  transTime 交易时间 String( 6 ) 必填 格式:hhmmss, 如:132800
  transType 交易类型 String( 4 ) 必填
选项:
1000( 消费 )
1010( 预授权 )
1020( 预授权完成 )
2000( 消费撤销 )
2010( 预授权撤销 )
2020( 预授权完成撤销 )
2030( 消费退货 )
  payType 交易方式 String( 2 ) 必填
选项
10 -微信
20 -支付宝
30 -刷卡
40 -银联二维码
50 -云闪付
  payTypeDetail 交易类型补充参数 String( 4 ) 必填
选项:
1001-刷卡
1010-支付宝主扫
1011-支付宝被扫
1012-支付宝主扫无机具
1013-支付宝被扫无机具
1020-微信主扫
1021-微信被扫
1022-微信主扫无机具
1023-微信被扫无机具
1024-微信小程序
1031-银联主扫
1032-银联被扫
1033-银联主扫无机具
1034-银联被扫无机具
1040 云闪付
  ordAmt 交易金额 String( 14 ) 必填
单位元,需保留小数点后两
位,例如: 1.00
  merFee 手续费 String( 14 ) 必填
单位元,需保留小数点后两
位,例如: 1.00
  transStat 交易状态 String( 2 ) 必填 选项 :S-成功;F-失败
  posTermId 银联终端号 String 非必填 机具使用
  merchId 商户号 String( 18 ) 必填 固定18位 ,汇付分配的商户号
  merchName 商户名称 String( 128 ) 必填  
  agentId 代理商号 String( 18 ) 必填 汇付分配的代理商号
  agentName 代理商名称 String( 128 ) 必填  
  ordId 平台订单号 String( 32 ) 必填
汇付订单号,调用撤销接口
或退货接口时必传,同cashOrdId
  cashOrdId 汇付订单号 String( 32 ) 必填
汇付订单号,调用撤销接口
或退货接口时必传,同ordId
不参与验签
  pospSeqId 凭证号 String 非必填 可忽略
  refNum 银联参考号 String 非必填 可忽略
  merOrdId 外部订单号 String 非必填
外部订单号outOrdId,
商户自有系统订单号
  openBuyerId
微信支付宝
的用户ID
String( 128 ) 非必填
支付方式为微信,表示用户在
子商户appid下的用户标识;支付方式为支付宝
,表示买家支付宝账号
  outTransId
微信支付宝的
订单号
String( 128 ) 非必填
微信或支付宝订单号,
见5.3订单号,不参与验签
  partyOrderId
微信、支付宝
条码号
String( 128 ) 非必填
微信或支付宝条码号,
见5.3订单号,不参与验签
  merPriv 商户扩展域 json 非必填 同原交易
  debitFlag 借贷记标识 String( 1 ) 非必填
选项:
D –借记卡
C –贷记卡
O –其他
不参与验签
( 对应云下接口文档中字段:
dcType )
  openId 用户标识 String( 128 ) 非必填
支付方式为微信,表示用户在
汇付appid下的用户标识;支付方式为支付宝
,表示买家支付宝账号
不参与验签
  subOpenId 用户子标识 String( 128 ) 非必填
支付方式为微信,表示用户在
子商户appid下的用户标识;支付方式为支付宝
,表示买家支付宝账号
不参与验签
  termOrdId 商户订单号 String( 1-50 ) 必填
即商户支付订单号,商户传
入时保证唯一
格式:数字+字母
不参与验签
  settlementAmt 结算订单金额 String(14) 必填
单位元,保留小数点后两位例如:1.00
未使用免充值优惠券时,此金额与订单金额相等
使用了免充值优惠券时,此金额为订单金额
-免充值优惠券
  couponInfos 优惠券信息 长度不定 非必填 优惠券信息,使用Json格
  bankType 收单银行 String( 128 ) 非必填
具体参考9双联银行对照表
不参与验签
  orgOrdId 正向交易汇付单号 String( 20 ) 条件必填
仅在退款异步通知中,对应原正向
交易的汇付订单号ordId
  orgTermOrdId 正向交易商户单号 String( 1-50 ) 条件必填
仅在退款异步通知中,对应原正向
交易的商户订单号termOrdId
  endTime 支付完成时间 String( 14 ) 非必填 字段格式为yyyyMMddHHmmss例如:20091225091010
  isDelayAcct 是否延时交易 String( 1 ) 非必填 1:延时交易 ; 0:非延时交易;
  isDiv 是否分账交易 String( 1 ) 非必填 1:分账交易 ; 0:非分账交易;
  remark 备注 String( 45 ) 非必填
超出长度会导致交易失败,UrlEncode进行编码,
如:%E6%B5%8B%E8%AF
  joinFoodResult 活动标志 String( 2 ) 非必填
是否参加线下活动标志:
1-蓝海绿洲
2-校园零费率
0-未参加活动或参加失败
商户应答参数 参数代码 参数名称 数据类型 是否必填 参数说明
  固定字符串 商品订单号 String 必填 RECV_ORD_ID_{ordId}

当apiversion为3.0.0.1及其以上版本时,报文格式如下

汇付输出 参数代码 参数名称 数据类型 是否必填 参数说明
参数 respCode 返回码 String( 6 ) 必填
示例:
000000-成功
其他- 失败( 详见错误返回码 )
  respDesc 返回描述 String( 256 ) 非必填  
  jsonData json字符串 String 必填 jsonData内容见下
  checkValue 加签密文 String 必填 对整个jsonData做签名
jsonData transDate 交易日期 String( 8 ) 必填 格式:yyyyMMdd,如:20180313
  transTime 交易时间 String( 6 ) 必填 格式:hhmmss, 如:132800
  transType 交易类型 String( 4 ) 必填
选项:
1000( 消费 )
1010( 预授权 )
1020( 预授权完成 )
2000( 消费撤销 )
2010( 预授权撤销 )
2020( 预授权完成撤销 )
2030( 消费退货 )
  payType 交易方式 String( 2 ) 必填
选项
10 -微信
20 -支付宝
30 -刷卡
40 -银联二维码
50 -云闪付
  payTypeDetail 交易类型补充参数 String( 4 ) 必填
选项:
1001-刷卡
1010-支付宝主扫
1011-支付宝被扫
1012-支付宝主扫无机具
1013-支付宝被扫无机具
1020-微信主扫
1021-微信被扫
1022-微信主扫无机具
1023-微信被扫无机具
1024-微信小程序
1031-银联主扫
1032-银联被扫
1033-银联主扫无机具
1034-银联被扫无机具
1040 云闪付
  ordAmt 交易金额 String( 14 ) 必填
单位元,需保留小数点后两
位,例如: 1.00
  merFee 手续费 String( 14 ) 必填
单位元,需保留小数点后两
位,例如: 1.00
  transStat 交易状态 String( 2 ) 必填 S-成功;F-失败
  posTermId 银联终端号 String 非必填 机具使用
  merchId 商户号 String( 18 ) 必填 固定18位 ,汇付分配的商户号
  merchName 商户名称 String( 128 ) 必填  
  agentId 代理商号 String( 18 ) 必填 汇付分配的代理商号
  agentName 代理商名称 String( 128 ) 必填  
  ordId 平台订单号 String( 20 ) 必填
汇付订单号,调用撤销接口
或退货接口时必传,同cashOrdId
  cashOrdId 汇付订单号 String( 20 ) 必填
汇付订单号,调用撤销接口
或退货接口时必传,同ordId
  pospSeqId 凭证号 String 非必填 可忽略
  refNum 银联参考号 String 非必填 可忽略
  merOrdId 外部订单号 String 非必填
外部订单号outOrdId,
商户自有系统订单号
  openBuyerId
微信支付宝
的用户ID
String( 128 ) 非必填
支付方式为微信,表示用户在
子商户appid下的用户标识;支付方式为支付宝
,表示买家支付宝账号
  outTransId
微信支付宝的
订单号
String( 128 ) 非必填
微信或支付宝订单号,
见5.3订单号,
  partyOrderId
微信、支付宝
条码号
String( 128 ) 非必填
微信或支付宝条码号,
见5.3订单号,
  merPriv 商户扩展域域 json 非必填 同原交易
  debitFlag 借贷记标识 String( 1 ) 非必填
选项:
D –借记卡
C –贷记卡
O –其他
  openId 用户标识 String( 128 ) 非必填
支付方式为微信,表示用户在
汇付appid下的用户标识;支付方式为支付宝
,表示买家支付宝账号
  subOpenId 用户子标识 String( 128 ) 非必填
支付方式为微信,表示用户在
子商户appid下的用户标识;支付方式为支付宝
,表示买家支付宝账号
  termOrdId 商户订单号 String( 1-50 ) 必填
即商户支付订单号,商户传
入时保证唯一
格式:数字+字母
  bankCode 通道返回码 String( 64 ) 非必填
可忽略
非必填;apiVersion为3.0.0.2及以上
时返回
  bankMessage 通道返回描述 String( 256 ) 非必填
可忽略
非必填;apiVersion为3.0.0.2及以上
时返回
  settlementAmt 结算订单金额 String(14) 必填
单位元,保留小数点后两位例如:1.00
未使用免充值优惠券时,此金额与订单金额相等
使用了免充值优惠券时,此金额为订单金额
-免充值优惠券
  couponInfos 优惠券信息 长度不定 非必填 优惠券信息,使用Json格
  bankType 收单银行 String( 128 ) 非必填
具体参考9双联银行对照表
  orgOrdId 正向交易汇付单号 String( 20 ) 条件必填
仅在退款异步通知中,对应原正向
交易的汇付订单号ordId
  orgTermOrdId 正向交易商户单号 String( 1-50 ) 条件必填
仅在退款异步通知中,对应原正向
交易的商户订单号termOrdId
  endTime 支付完成时间 String( 14 ) 非必填 字段格式为yyyyMMddHHmmss例如:20091225091010
  isDelayAcct 是否延时交易 String( 1 ) 非必填 1:延时交易 ; 0:非延时交易;
  isDiv 是否分账交易 String( 1 ) 非必填 1:分账交易 ; 0:非分账交易;
  remark 备注 String( 45 ) 非必填
超出长度会导致交易失败,UrlEncode进行编码,
如:%E6%B5%8B%E8%AF
  joinFoodResult 活动标志 String( 2 ) 非必填
是否参加线下活动标志:
1-蓝海绿洲
2-校园零费率
0-未参加活动或参加失败
商户应答参数 参数代码 参数名称 数据类型 是否必填 参数说明
  固定字符串 商品订单号 String 必填 RECV_ORD_ID_{ordId}

List<CouponInfo>

couponInfos 参数代码 参数名称 数据类型 是否必填 参数说明
  couponId 券ID String( 32 ) 非必填 券或者立减优惠id
  couponName 优惠名称 String( 64 ) 非必填 优惠名称
  couponRange 优惠范围 String( 32 ) 非必填 GLOBAL-全场代金券/SINGLE-单品优惠/折扣券
  couponType 优惠类型 String( 32 ) 非必填
COUPON-代金券,需要走结算资金的充值型代金券,
(境外商户券币种与支付币种一致)
DISCOUNT-优惠券,不走结算资金的免充值型优惠券,
(境外商户券币种与标价币种一致)
  couponAmt 优惠券面额 String( 12 ) 非必填
用户享受优惠的金额
(优惠券面额=微信出资金额+商家出资金额+其他出资方金额)
  activeId 活动ID String( 32 ) 非必填 在微信商户后台配置的批次ID
 
merchant
Contribute
商户出资 String( 32 ) 非必填
特指商户自己创建的优惠,
出资金额等于本项优惠总金额,单位为元
 
other
Contribute
其他出资 String( 32 ) 非必填
其他出资方金额, 可能是通道方,可能是品牌商,
或者其他方,也可能是他们的一起出资
  goodsInfo 单品信息 Object 非必填 单品信息,使用Json格式
  addnInfo 银联字段内容自定义 String( 100 ) 非必填 GLOBAL-全场代金券/SINGLE-单品优惠/折扣券

List<goodsInfo> goodsInfo

couponInfos 参数代码 参数名称 数据类型 是否必填 参数说明
  goodsCode 商品编码 String( 32 ) 非必填
由半角的大小写字母、数字、中划线、
下划线中的一种或几种组成
  goodsNote 商品备注 String( 256 ) 非必填
goods_remark为备注字段,按照配置原样返回
字段内容在微信后台配置券时进行设置
  goodsDisAmt 商品优惠金额 String( 12 ) 非必填 单品的总优惠金额,单位为:元
  goodsNum 商品数量 String( 12 ) 非必填 用户购买的数量
  goodsAmt 商品价格 String( 12 ) 非必填
单位为:元。如果商户有优惠,
优惠后的单价(例如:用户对一笔100元
的订单使用了商场发的纸质优惠券100-50
需传输商户则活动商品的单价应为原单价-50)

关单接口

描述

用于对超过1分钟还未支付的订单进行关闭操作。此接口目前只支持微信和支付宝,不支持银联二维码,发起关单操作的订单必须距离发起下单操作60S以上。
发起关单时,若收到transStat为S,respCode非000000,商户应该再次通过查询接口获取交易成功的支付信息详情

输入参数

输入参数 参数代码 参数名称 数据类型 是否必填 参数说明
  checkValue 加签密文 String 必填 Cfca方式验签
  jsonData json json 必填 jsonData数据,内容见下方描述
JsonData 参数代码 参数名称 数据类型 是否必填 参数说明
  memberId 商户号 String(18) 必填 必填,会员号
  termOrdId 商户订单号 String(50) 必填
商户支付订单号,商户传入时
保证唯一格式:数字+字母
  transDate 交易日期 String(8) 必填 格式,YYYYMMDD
  apiVersion 接口版本号 String( 7 ) 必填 3.0.0.1

输出参数

输出参数 参数代码 参数名称 数据类型 是否必填 参数说明
  respCode 返回码 String( 6 ) 必填
示例:
000000表示关单成功,
000199标识处理中,
其余表示失败( 详见错误返回码 )
  respDesc 返回文字说明 String( 256 ) 非必填  
  checkValue 加签密文 String 必填  
  jsonData Json字符串 String 必填 jsonData数据,内容见下方描述
JsonData 参数代码 参数名称 数据类型 是否必填 参数说明
  memberId 商户号 String( 18 ) 必填 汇付分配的商户号
  termOrdId 商户订单号 String( 1-50 ) 必填
即商户支付订单号,商户传入
时保证唯一
格式:数字+字母
  transStat 原交易状态 String( 1 ) 必填
选项:
I—初始
P –处理中
S—成功
F—失败
  transDate 原交易日期 String( 8 ) 非必填 原交易发生日期,YYYYMMDD
  transTime 原交易时间 String( 6 ) 非必填 原交易发生时间,HHMMSS

错误码

错误码

常见错误码描述,如还未解决问题请及时联系专业技术支持人员。
错误码 描述                               错误码 描述                                       错误码 描述
000000 操作成功                            000098 请求参数非法                               000267 接口获取状态与订单状态不符
000093 请求参数不规范                       000097 数据库异常                                000268 二维码反向交易超时
000094 重复交易                            000234 订单生成失败                               000272 订单查询,未查询到记录
000095 验签失败                            000236 PA入账失败                                 000273 支付通道类型不为微信或者支付宝
000100 业务系统已关闭                       000238 对象属性复制异常                           000277 无此交易类型
000107 业务系统不存在                       000240 冻结账务对象不存在,分账串解析为空           000278 无此交易记录
000202 订单已存在                          000241 订单被风控拒绝,风控未通过                   000279 退货失败,该笔订单非退货交易
000203 原订单不存在                        000242 风控系统调用异常                            000197 控台系统异常,网络繁忙
000204 撤销金额与原订单金额不一致           000243 撤销或退货失败,PA冻结超时                   000281 交易处理中
000205 撤销日期与原订单日期不一致           000244 不存在该账务类型                             000099 网络繁忙,请稍后再试
000206 撤销失败,账务状态异常              000245 分账串异常                                   000219 订单校验失败
000207 撤销失败,PA冻结失败                000250 退货失败,PA退款失败                          000220 签名上送失败,订单未完成支付
000208 撤销失败,通道失败                  000256 退货失败,PA冻结超时                          000221 签名上传失败,已上传
000209 撤销失败,原订单未完成              000255 确认交易失败,账务状态异常                      000213 退货失败,超出退货期限
000210 退货失败,原订单未完成              000257 确认交易失败,原订单未成功                     000214 退货失败,PA冻结失败
000211 退货失败,账务状态异常              000258 确认交易失败,确认金额与原交易金额不一致         000215 退货失败,通道失败
000212 退货失败,超出可退货金额            000260 消费撤销发通道扣款超时                         000261 消费退货发通道扣款超时
000199 二维码交易处理中                    000198 二维码交易失败

SDK与DEMO

说明

SDK和DEMO作为参考或示例,请服务商在使用过程中,要专业技术人员指导使用,注意系统兼容性。

Java版本

即将更新。

PHP版本

即将更新。