退款申请-自研
大约 5 分钟
退款申请-自研
退款申请
服务ID | zjrcuoip.pay.uas.mch.refund |
---|---|
VERSION | 1.0.0 |
服务详细描述
退款时,先调用该接口,该接口响应成功仅表示受理成功,退款是否成功以异步通知结果为准。
注:订单退款应确认退款状态后再度发起,并且同笔订单应该间隔20S以上。参数中的必填要求:M为必填项,O为非必填项,C为条件选填项。
示例代码
UasRefundDemoOp.java
/**
* 退款申请-自研
*
* @author
*/
@Service
public class UasRefundDemoOp {
@SuppressWarnings({ "rawtypes", "unchecked" })
public static void execute() {
// 1.获取通讯连接对象
INetTools netTools = NetToolsHttpFactory.getHttpInstance();
// 2.生成公共请求报文对象
OipReqBean oipReqBean = new OipReqBean();
// 设置应用id
oipReqBean.setAppId("应用id");
// 设置开发者id
oipReqBean.setDlpId("开发者id");
// 设置产品id
oipReqBean.setProdId("产品id");
// 设置api方法名
oipReqBean.setMethod("zjrcuoip.pay.uas.mch.refund");
// 设置api版本
oipReqBean.setVersion("1.0.0");
// 设置时间戳
SimpleDateFormat sfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
oipReqBean.setTimestamp(sfs.format(new Date()));
// 3.生成请求配置对象,配置请求地址/url等信息
NetReqConfBean netReqConfBean = new NetReqConfBean();
// 应用私钥
netReqConfBean.setAppPrivateKey("应用私钥");
// 请求地址
netReqConfBean.setNetUrl("请求地址");
// 开发者公钥
netReqConfBean.setPublicKey("开发者公钥");
// 设置业务报文
Date d=new Date();
SimpleDateFormat sf=new SimpleDateFormat("yyyyMMddHHmmss");
//以map接收所有参数生成业务报文,主要是必输项,具体参考接口文档
Map map =new HashMap();
map.put("输入项必输字段", "字段值");
String bizContent = JSON.toJSONString(map);
// 生成业务报文json对象
oipReqBean.setBizContent(bizContent);
// 通讯获取报文对象
OipRspBean oipRspBean = netTools.execute(oipReqBean, netReqConfBean);
// 响应成功
if (oipRspBean.isSuccess()) {
String bizJson = oipRspBean.getBizContent();
if (StringUtils.isNotBlank(bizJson)) {
Map bizData = JSON.parseObject(bizJson, Map.class);
System.out.println(bizData);
}
}
}
}
公共报文
业务输入项
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | mchSeq | 商户识别号 | M | String | 32 | |
2 | txId | 商户退款单号 | M | String | 32 | 32个字符以内、只能包含字母、数字、下划线,且应包含当日日期时间,需保证在商户端不重复。 |
3 | subOrderInfo | 子订单信息 | C | List | 合并支付场景下该字段必输,详见subOrderInfo说明 非合并订单支付场景,禁止传入该字段 | |
4 | orglTxId | 原商户订单号 | M(三选一) | String | 32 | 合并支付场景,不支持三选一,仅支持orglTxId,其他场景下支持三选一 orglTxId为原消费交易的商户订单号 |
5 | orglMsgId | 原交易流水号 | M(三选一) | String | 32 | orglMsgId为原消费交易由收单系统生成的流水号 |
6 | orglTradeNo | 原支付流水号 | M(三选一) | String | 32 | orglTradeNo为原消费交易由支付系统生成的流水号 |
7 | txDtTm | 交易时间 | M | Datetime | 14 | 申请退款时间,格式为yyyyMMddHHmmss |
8 | storeId | 商户门店编号 | O | String | 32 | |
9 | operatorId | 商户操作员编号 | O | String | 28 | |
10 | termId | 终端编号 | O | String | 32 | 商户终端设备号 |
11 | txAmt | 退款金额 | M | String | 15 | 退款金额,单位元,保留两位小数。 |
12 | ccy | 交易币种 | O | String | 3 | 默认CNY-人民币。指txAmt的币种。 |
13 | refundDesc | 退款原因 | C | String | 256 | 数币退款必传 |
14 | notifyUrl | 通知地址 | 0 | String | 128 | 商户接收异步通知的地址 |
15 | remark | 备注信息 | O | String | 255 | 备注信息 |
16 | attach | 附加数据 | O | String | 78 | 附加数据,在通知和查询接口中原样返回,该字段主要用于携带自定义数据。如包含特殊字符需做Base64编码 |
17 | goodsDetail | 商品信息 | O | List | 订单包含的商品信息,详细字段见goodsDetail说明。 |
goodsDetail说明:
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | goodsId | 商品编号 | M | String | 32 | 商品编号 |
2 | tnlGoodsId | 商品编码 | O | String | 32 | 通道侧商品编码 |
3 | goodsName | 商品名称 | M | String | 256 | 商品的实际名称 |
4 | quantity | 商品数量 | M | String | 10 | 用户购买的数量 |
5 | price | 商品单价 | M | String | 15 | 单位为元,精确到小数点后两位 |
6 | goodsCgy | 商品类目 | O | String | 24 | |
7 | cgyTree | 商品类目树 | O | String | 128 | 从商品类目根节点到叶子节点的类目id组成,类目id值使用|分割 |
8 | body | 商品描述信息 | O | String | 1000 | 商品描述信息 |
9 | showUrl | 商品展示地址 | O | String | 400 | 商品展示地址 |
subOrderInfo说明:
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | subTxId | 子订单退款单号 | M | String | 32 | |
2 | orglSubTxId | 原子订单号 | M | String | 32 | |
3 | subMchSeq | 子订单商户识别号 | M | String | 32 | |
4 | subAmt | 子订单金额 | M | String | 15 | 单位为元,精确到小数点后两位。 |
业务输出项
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | bizSts | 交易状态 | M | String | 4 | 指退款申请结果。02-交易成功,03-交易失败 |
2 | bizStsDesp | 交易状态描述 | M | String | 255 | 如:交易成功 |
3 | rjctRsnCd | 错误码 | O | String | 32 | |
4 | rjctRsn | 错误描述 | O | String | 255 |
以下字段在bizSts为02-交易成功时有返回:
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | txId | 商户退款单号 | M | String | 32 | 请求的txId原样返回 |
2 | msgId | 交易流水号 | M | String | 32 | 收单系统生成的唯一交易流水号 |
3 | txAmt | 申请退款金额 | M | String | 15 | 退款金额,单位元,保留两位小数。 |
4 | ccy | 交易币种 | O | String | 3 | 默认CNY-人民币。指txAmt的币种。 |