U付

退款类接口

5.9 退款类接口 5.9.1 商户退款请求(商户平台) 商户可对非交易当天订单发起退费处理,支持部分退和订单全额退款,当天发生的交易不能退费。 若商户有当天退费需求的,需要联系我司运营同事协助开通T+0退款功能,方可调用此接口进行当天交易的退费。 注:商户退款的金额须小于当日交易额,才能发起退款请求。支持对12月以内发起的订单进行退款。 5.9.1.1 接口地址 http://pay.soopay.net/spay/pay/payservice.do 5.9.1.2 请求数据列表 NO. 字段 名称 长度 说明 必填 协议参数 1 service 接口名称 变长 32 mer_refund Y 2 sign_type 签名方式 定长 8 暂只支持RSA必须大写 Y 3 charset 参数字符编码集 变长 16 商户网站使用的编码格式,支持UTF-8. GBK. GB2312. GB18030 Y 4 notify_url 服务器异步通知页面路径 变长128 商户如果传递该值,则在交易完成后,联动优势支付平台会按照此地址将退费成功结果以后台的方式发送到商户网站.(退费失败的结果将不会再通知商户) 如若不传递,则平台不会发出退费结果通知。 N 5 res_format 响应数据格式 变长 16 暂支持HTML,格式见附录(默认为HTML) N 6 sign 签名 变长256 参见签名机制 Y 7 mer_id 商户编号 变长8 由平台统一分配合作商户唯一标识 Y 8 version 版本号 定长3 定值 4.0 Y 业务参数 1 refund_no 退款流水号 变长16 由商户生成的退款流水,规则是“YYMMDDHHMMSS+4位序列数”,序列数不足4位的前补0 退款流水号在商户方需全局唯一,每笔退款流水号标示唯一一笔退款交易,所有由商户发起的退款流水号均不能相同。 Y 2 order_id 商户订单号 变长32 原商户订单号 Y 3 mer_date 商户订单日期 定长8 原商户订单日期 Y 4 refund_amount 退款金额 变长13 如果是人民币,则以分为单位 退款金额不能大于原交易金额 Y 5 org_amount 原订单金额 变长13 如果是人民币,则以分为单位 联动会对原订单的金额进行校验 Y

5.9.1.3 响应数据列表 NO. 字段 名称 长度 说明 必填 协议参数 1 sign_type 签名方式 定长 8 暂只支持RSA必须大写 Y 2 sign 签名 变长256 参见签名机制 Y 3 mer_id 商户编号 变长8 由平台统一分配合作商户唯一标识 Y 4 version 版本号 定长3 定值 4.0 Y 业务参数 1 refund_no 退款流水号 变长16 由商户生成的退款流水,规则是“YYMMDDHHMMSS+4位序列数”,序列数不足4位的前补0 Y 2 order_id 商户唯一订单号 变长32 商户发起退款请求中的order_id Y 3 mer_date 商户订单日期 定长8 商户生成订单的日期,格式YYYYMMDD Y 4 amount 交易金额 变长13 如果是人民币,则以分为单位 Y 5 trade_no U付交易号 变长 16

Y 6 refund_state 退费状态 变长 32 具体值详见附录6.8 Y 7 refund_amt 退费金额 变长13

N 8 ret_code 返回码 定长4 详见附录 Y 9 ret_msg 返回信息 变长128

N

5.9.1.4 样例 商户请求平台示例:

平台响应商户示例:

5.9.2 退款状态变更通知(平台商户) 商户发起退费交易时,如果上送了结果通知地址(notify_url字段),联动会在退费状态发生变化的时候主动通过该地址将退费状态同步通知给商户。 在上送了notify_url通知字段的情况下: 商户发起申请退款后,在发起成功请求到平台后,平台会立即通知商户,通知中包含商户申请退费的订单状态。 在平台处理完退款流程并成功打款给用户或其他原因导致退款关闭或失败后,也同样会后台通知商户退款结果。 注: 商户发起成功退款请求后,平台会即时给商户“REFUND_PROCESS退款处理中”的响应,同时后台会向商户提交的notify_url发送退款状态通知为“REFUND_PROCESS退款处理中”。 如成功受理退款后,如果给用户打款成功,退款成功,状态变更,则平台会再次向商户发送“REFUND_SUCCESS退款成功”的退款结果通知。 如发起的退款请求中,数据有误,未通过平台校验,则不会返回退款失败通知。如通过平台校验的退款请求之后失败,则会发送“REFUND_FAIL退款失败”的退款结果通知。一般会出现在商户发起退款后,因账户余额不足,导致的退款失败,平台会通知商户退款失败。

5.9.2.1 接口地址 商户在退款接口的notifyurl字段中上送。 5.9.2.2 请求数据列表 平台到商户请求数据: NO 字段 名称 长度 说明 必填 协议参数 1 mer_id 商户编号 变长8 由平台统一分配合作商户唯一标识 Y 2 sign_type 签名方式 定长 8 暂只支持RSA必须大写 Y 3 sign 签名 变长256 参见签名机制6.1 Y 4 version 版本号 定长3 定值 4.0 Y 业务参数 1 refund_no 退款流水 变长16 商户退费请求传递的流水 退款流水号唯一且对应每一笔退款请求。 Y 2 order_id 原商户订单号 变长32 商户下单时提交的order_id Y 3 mer_date 原商户订单日期 定长8 商户下单时提交的mer_date Y 4 refund_state 退费状态 变长 32 分账订单退费不返回; 非分账订单退费:如平台受理退费请求成功,会返回该字段值; 具体值详见附录5.6 N 5 refund_amt 退费金额 变长13 分账订单退费不返回; 非分账订单的退费:如平台受理退费请求成功,会返回该字段值; N 6 error_code 交易错误码 变长 32 详见《商户接入规范常见返回码列表文档》 N 5.9.2.3 响应数据列表 商户给平台响应数据: NO 字段 名称 长度 说明 必填 协议参数 1 mer_id 商户编号 变长8 由平台统一分配合作商户唯一标识 Y 2 sign_type 签名方式 定长 8 暂只支持RSA必须大写 Y 3 sign 签名 变长256 参见签名机制6.1 Y 4 version 版本号 定长3 定值 4.0 Y 业务参数 3 ret_code 返回码 定长4 验签成功,返回0000,表示商户已收到联动的通知,此时联动不会再重复通知。 Y 4 ret_msg 返回信息 变长128 返回信息的描述。 N

5.9.2.4 样例 平台请求商户示例: 以下3笔退款通知分别为:退款失败,退款处理中,打款成功的三次通知:

商户响应平台示例:

5.9.3 商户退费订单状态查询(商户平台) 根据请求退费时的退费流水号查询该笔退费请求的退费状态。每笔原支付订单可能会多次部分退费,每次退费的退费流水号不一样。该接口就是查询每一次退费请求对应的退费流水号的退费状态。 仅支持针对商户12月内的退费订单进行查询。【支持2013年8月28后退费订单的查询】

5.9.3.1 接口地址 http://pay.soopay.net/spay/pay/payservice.do 5.9.3.2 请求数据列表 NO. 字段 名称 长度 说明 必填 协议参数 1 service 接口名称 变长 32 mer_refund_query Y 2 sign_type 签名方式 定长 8 暂只支持RSA必须大写 Y 3 charset 参数字符编码集 变长 16 商户网站使用的编码格式,支持UTF-8. GBK. GB2312. GB18030 Y 4 res_format 响应数据格式 变长 16 暂支持HTML,格式见附录(默认为HTML) N 5 sign 签名 变长256 参见签名机制 Y 6 mer_id 商户编号 变长8 由平台统一分配合作商户唯一标识 Y 7 version 版本号 定长3 定值 4.0 Y 业务参数 1 refund_no 原退款流水号 变长16 商户在退费请求时传给联动的退款流水。 Y

5.9.3.3 响应数据列表 NO. 字段 名称 长度 说明 必填 协议参数 1 sign_type 签名方式 定长 8 暂只支持RSA必须大写 Y 2 sign 签名 变长256 参见签名机制 Y 3 mer_id 商户编号 变长8 由平台统一分配合作商户唯一标识 Y 4 version 版本号 定长3 定值 4.0 Y 业务参数 1. refund_state 退费状态 变长 32 分账退费和批量转账子商户退费不返回该字段; 其他订单退费会返回该字段值; 具体值详见附录5.6 N 2. refund_amt 退费金额 变长13 已退费或正在退费的金额。以分为单位。 分账退费或者批量转账子商户退费不返回该字段; 其他的退费:如平台受理退费请求成功,会返回该字段值; N 3. split_query_result 分账退费或批量转账子商户退费结果信息 变长 分账退费和批量转账子商户退费返回该字段; 其他不返回该字段; 格式参见5.16 N 4. ret_code 返回码 定长4 0000:代表查询成功 退费订单是否成功需看退费状态 Y 5. ret_msg 返回信息 变长128

N

5.9.3.4 样例 商户请求平台示例:

平台响应商户示例: