{\没有找到符合条件的记录。\
2.4.6 接口说明
1. 商户要保证冲正流水号的唯一性。
2. 冲正与退款接口不同在于,冲正接口对于除成功状态外的交易,可以使交易作废。当交易
已经成功时,冲正接口会申请退款。冲正接口的调用时间仅限于原交易发生的当天,退款不受此限制。
3. MAC校验,保证了交易信息到翼支付网关平台的完整性,参与MAC运算的字符及其顺序
如下: a.
MERCHANTID=123456789&MERCHANTPWD=123456&OLDORDERNO=123456&OLDORDERREQNO=1234567&REFUNDREQNO=200603141210&REFUNDREQDATE=20150720&TRANSAMT=1&KEY=123456
b. 商户业务平台将上述固定顺序组织的字符串,参数名均为大写,使用标准md5算法进
行摘要,然后将摘要结果转成16进制字符串,字符串建议使用大写, 就是校验域MAC的值,将MAC值和订单信息调用接口时,一起提供给翼支付网关平台。
2.4.7 客户端测试用例
import com.bestpay.paycenter.commons.util.CryptTool;
import org.apache.http.Consts; import org.apache.http.HttpEntity; import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils;
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;
public class TestClient {
public static void main(String[] args) throws Exception { String merchantId = \
String merchantPwd = \
String oldOrderNo = \
String oldOrderReqNo = \ String refundReqNo = \ String refundReqDate = \ String transAmt = \ String channel = \
StringBuilder sb = new StringBuilder();//组装mac加密明文串 sb.append(\
sb.append(\ sb.append(\
sb.append(\ sb.append(\ sb.append(\ sb.append(\
sb.append(\此处是商户的key
String mac = CryptTool.md5Digest(sb.toString());//进行md5加密(商户自己封装MD5加密工具类,此处只提供参考)
Map
param.put(\merchantId); param.put(\merchantPwd); param.put(\oldOrderNo);
param.put(\oldOrderReqNo); param.put(\refundReqNo); param.put(\refundReqDate); param.put(\transAmt); param.put(\channel); param.put(\mac);
CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = null;
CloseableHttpResponse response = null; try {
httpPost = new HttpPost(\ List
paramList.add(new BasicNameValuePair(key, param.get(key))); }
httpPost.setEntity(new UrlEncodedFormEntity(paramList, Consts.UTF_8));
httpPost.setConfig(RequestConfig.custom().setConnectTimeout(30000).setSocketT
imeout(30000).build());
response = httpClient.execute(httpPost); HttpEntity entity = response.getEntity();
int statusCode = response.getStatusLine().getStatusCode(); if (HttpStatus.SC_OK == statusCode)//如果响应码是200 System.out.println(EntityUtils.toString(entity)); } finally {
if (response != null) { response.close(); }
if (httpPost != null) {
httpPost.releaseConnection(); }
httpClient.close(); } } }
2.4.8 错误码
错误码 -309 -301 1002 BE100002 BE110028 BE110062 BE199999 BE300000 BE300006 BE300007 BE300012
描述
校验商户调用密码出错 校验商户MAC校验域出错 商户未配置密钥信息 受理机构代码为空 分账信息有误
没有找到符合条件的记录。 请求参数有误 商户不存在
受理机构未配置此交易权限 商户未配置此交易权限 分账金额总和不等于订单总金额
原订单不存在
具体的参数错误,在描述中有体现
原支付机构不支持退款
商户没有给定渠道的普通退款权限
备注
BE300013 BE300018 BE301001 BE301007
商户IP验证异常 订单不支持部分扣款 订单金额出现异常,交易失败 不支持批量支付订单的退款,退款失败
原订单支付机构不支持部分退款 退款金额不符合要求
BE301008 订单的业务类型不支持退款,退款失败
BE301009 BE301010 BE301011 BE301012 BE301013 BE301014 BE999999
订单状态不为成功,退款失败 退款订单受理中,退款失败 订单已退款或冲正,退款失败 订单不为未退款,冲正失败 订单状态为作废,冲正失败 原订单不为当天订单,冲正失败 系统繁忙,请稍后再试
系统原因,联系技术支协查
2.5 退款【建议使用2.3】 2.5.1 接口描述
接口名称 接口描述 接口类型 数据编码 接口提供者 接口使用者 支付交易普通退款接口 通过调用退款接口向翼支付网关平台发出退款请求完成退款。 WebService UTF-8 翼支付网关平台 商户
2.5.2 接口地址
生产地址 https://ivrpaywg.bestpay.com.cn/services/refundV2?wsdl
2.5.3 接口参数
属性 commCode subCommCode commPwd oldOrderId oldOrderPayId 含义 商户代码 商户子代码 商户调用密码 原扣款订单号 原订单请求支付流水号 退款流水号 类型 n ans an an an 长度 20 20 20 30 30 必填 M O M M M 备注 由翼支付网关平台统一分配给各接入商户 商户子代码 如没有则填空 商户执行时需填入相应密码 原扣款成功的订单号 原扣款成功的请求支付流水号 orderRefundId an 30 M transamt reqTime mac
订单交n 易金额 交易请n 求时间 Mac校an 验域 12 14 32 M M M 该流水在商户处必须是唯一的,而且每次发起退款时,都必须是唯一的 单位为分 yyyyMMDDhhmmss md5摘要 2.5.4 接口响应
属性 errorCode 含义 错误码 类型 ans 长度 10 O 必填 备注 当success为false时取此值,为true时,errorCode为0000,