Appearance
退款同步接口 ¶
提示
通常不需要调用这个主动调用接口这个接口,系统中已经有回调处理和定时同步任务进行处理。通常只用在发起支付退款后,退款状态为退款中,且一段时间内也没有发生状态变更,可以通过手动进行触发同步,并根据状态的流转进行处理。
接口说明 ¶
参数 | 说明 |
---|---|
请求URL | /unipay/sync/pay |
请求方式 | POST |
请求类型 | application/json |
请求参数 ¶
字段名 | 变量名 | 必填 | 类型 | 长度 | 示例值 | 描述 |
---|---|---|---|---|---|---|
退款号 | refundNo | 否 | String | 32 | R00123 | 退款号和商户退款号不能同时为空,同时传输时以退款号为准 |
商户退款号 | bizRefundNo | 否 | String | 100 | DEVR24051019590563000001 | 退款号和商户退款号不能同时为空,同时传输时以退款号为准 |
用户IP | clientIp | 否 | String | 64 | 127.0.0.1 | 支持V4和V6,部分支付方式要求必填,如调用微信支付方式时必传 |
随机数值 | nonceStr | 否 | String | 32 | d112892e382a7093 | |
签名值 | sign | 否 | String | 64 | 072695d112892e382a7093b81e6a52af | |
请求时间 | reqTime | 是 | Long | 123123121 | 使用时间戳(秒级) |
响应结果 ¶
提示
业务数据包裹在公共响应参数
中的data
字段,在code
为0
时才会有返回数据。
字段名 | 变量名 | 必传 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
商户退款号 | bizRefundNo | 是 | String | R00123 | 商户退款时传入的退款单号 |
退款号 | refundNo | 是 | String | DEVR24051019590563000001 | 系统生成的退款单号 |
退款状态 | status | 是 | String | success | 见退款状态说明 |
状态码 | code | 是 | Integer | 0 | |
错误信息 | msg | 否 | String | 关闭失败 | 状态非0时会有返回值 |
响应时间 | resTime | 是 | Long | 123123121 | |
响应数据签名值 | sign | 是 | String | 072695d112892e382a7093b81e6a52af | 对响应内容进行签名 |
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));
}
}