退款申请-自研

大约 5 分钟

退款申请-自研

退款申请

服务IDzjrcuoip.pay.uas.mch.refund
VERSION1.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中文名称是否必输类型长度说明
1mchSeq商户识别号MString32
2txId商户退款单号MString3232个字符以内、只能包含字母、数字、下划线,且应包含当日日期时间,需保证在商户端不重复。
3subOrderInfo子订单信息CList合并支付场景下该字段必输,详见subOrderInfo说明 非合并订单支付场景,禁止传入该字段
4orglTxId原商户订单号M(三选一)String32合并支付场景,不支持三选一,仅支持orglTxId,其他场景下支持三选一 orglTxId为原消费交易的商户订单号
5orglMsgId原交易流水号M(三选一)String32orglMsgId为原消费交易由收单系统生成的流水号
6orglTradeNo原支付流水号M(三选一)String32orglTradeNo为原消费交易由支付系统生成的流水号
7txDtTm交易时间MDatetime14申请退款时间,格式为yyyyMMddHHmmss
8storeId商户门店编号OString32
9operatorId商户操作员编号OString28
10termId终端编号OString32商户终端设备号
11txAmt退款金额MString15退款金额,单位元,保留两位小数。
12ccy交易币种OString3默认CNY-人民币。指txAmt的币种。
13refundDesc退款原因CString256数币退款必传
14notifyUrl通知地址0String128商户接收异步通知的地址
15remark备注信息OString255备注信息
16attach附加数据OString78附加数据,在通知和查询接口中原样返回,该字段主要用于携带自定义数据。如包含特殊字符需做Base64编码
17goodsDetail商品信息OList订单包含的商品信息,详细字段见goodsDetail说明。

goodsDetail说明:

序号key中文名称是否必输类型长度说明
1goodsId商品编号MString32商品编号
2tnlGoodsId商品编码OString32通道侧商品编码
3goodsName商品名称MString256商品的实际名称
4quantity商品数量MString10用户购买的数量
5price商品单价MString15单位为元,精确到小数点后两位
6goodsCgy商品类目OString24
7cgyTree商品类目树OString128从商品类目根节点到叶子节点的类目id组成,类目id值使用|分割
8body商品描述信息OString1000商品描述信息
9showUrl商品展示地址OString400商品展示地址

subOrderInfo说明:

序号key中文名称是否必输类型长度说明
1subTxId子订单退款单号MString32
2orglSubTxId原子订单号MString32
3subMchSeq子订单商户识别号MString32
4subAmt子订单金额MString15单位为元,精确到小数点后两位。

业务输出项

序号key中文名称是否必输类型长度说明
1bizSts交易状态MString4指退款申请结果。02-交易成功,03-交易失败
2bizStsDesp交易状态描述MString255如:交易成功
3rjctRsnCd错误码OString32
4rjctRsn错误描述OString255

以下字段在bizSts为02-交易成功时有返回:

序号key中文名称是否必输类型长度说明
1txId商户退款单号MString32请求的txId原样返回
2msgId交易流水号MString32收单系统生成的唯一交易流水号
3txAmt申请退款金额MString15退款金额,单位元,保留两位小数。
4ccy交易币种OString3默认CNY-人民币。指txAmt的币种。