Skip to content

退款同步接口

提示

通常不需要调用这个主动调用接口这个接口,系统中已经有回调处理和定时同步任务进行处理。通常只用在发起支付退款后,退款状态为退款中,且一段时间内也没有发生状态变更,可以通过手动进行触发同步,并根据状态的流转进行处理。

接口说明

参数说明
请求URL/unipay/sync/pay
请求方式POST
请求类型application/json

请求参数

字段名变量名必填类型长度示例值描述
退款号refundNoString32R00123退款号和商户退款号不能同时为空,同时传输时以退款号为准
商户退款号bizRefundNoString100DEVR24051019590563000001退款号和商户退款号不能同时为空,同时传输时以退款号为准
用户IPclientIpString64127.0.0.1支持V4和V6,部分支付方式要求必填,如调用微信支付方式时必传
随机数nonceStrString32d112892e382a7093
签名值signString64072695d112892e382a7093b81e6a52af
请求时间reqTimeLong123123121使用时间戳(秒级)

响应结果

提示

业务数据包裹在公共响应参数中的data字段,在code0时才会有返回数据。

字段名变量名必传类型示例值描述
商户退款号bizRefundNoStringR00123商户退款时传入的退款单号
退款号refundNoStringDEVR24051019590563000001系统生成的退款单号
退款状态statusStringsuccess退款状态说明
状态码codeInteger0
错误信息msgString关闭失败状态非0时会有返回值
响应时间resTimeLong123123121
响应数据签名值signString072695d112892e382a7093b81e6a52af对响应内容进行签名

错误码

状态码名称备注
0成功同步成功

HTTP请求示例

请求参数

json
{
    "refundNo": "DEVR24051020531763000004",
    "clientIp": "127.0.0.1",
    "sign": "a375e5517062966dab81b84fec9586a4f88e38f1385f6350ce200a27d32190d7",
    "reqTime": 1715575932
}

响应参数(成功)

json
{
    "msg": "success",
    "code": 0,
    "data": {
        "status": "pay_not_found",
        "code": 0,
        "resTime": 1715576198,
        "sign": "913e925dcda0f68787b8ade8c0c34064a0b71cd008ba3377b42333c0da0c9df9"
    },
    "traceId": "sIV4zJVhZ4Uz"
}

响应参数(失败)

json
{
  "msg": "success",
  "code": 0,
  "data": {
    "sign": "2bcc5ac7902379d65dc9901186cd81a2833835a30d5a59b3b1860df82f012557",
    "code": "1",
    "msg": "当前订单不存在",
    "resTime": 1715345296
  },
  "traceId": "7UEqCd1v3fcZ"
}

SDK请求示例

提示

使用SDK可以简化接入支付的速度

java
package cn.daxpay.single.sdk.payment;

import cn.daxpay.single.sdk.code.SignTypeEnum;
import cn.daxpay.single.sdk.model.sync.SyncModel;
import cn.daxpay.single.sdk.net.DaxPayConfig;
import cn.daxpay.single.sdk.net.DaxPayKit;
import cn.daxpay.single.sdk.param.sync.RefundSyncParam;
import cn.daxpay.single.sdk.response.DaxPayResult;
import org.junit.Before;
import org.junit.Test;

/**
 * 退款同步接口
 * @author xxm
 * @since 2024/2/5
 */
public class RefundOrderSyncTest {


    @Before
    public void init() {
        // 初始化支付配置
        DaxPayConfig config = DaxPayConfig.builder()
                .serviceUrl("http://127.0.0.1:9000")
                .signSecret("123456")
                .signType(SignTypeEnum.HMAC_SHA256)
                .build();
        DaxPayKit.initConfig(config);
    }

    @Test
    public void sync() {
        RefundSyncParam param = new RefundSyncParam();
        param.setRefundNo("DEVR24051020530263000002");
        param.setClientIp("127.0.0.1");
        DaxPayResult<SyncModel> execute = DaxPayKit.execute(param);
        System.out.println(JSONUtil.toJsonStr(execute));
    }

}
本文档内容版权属于济南易杯光年软件技术有限公司