Skip to content

支付同步接口

提示

通常不需要调用这个主动调用接口这个接口,系统中已经有回调处理和定时同步任务进行处理,用于支付订单创建后,状态一直为支付中时,且一段时间内也没有发生状态变更, 可以通过手动进行触发同步,并根据状态的流转进行处理。注意:如果订单状态涉及到退款相关的情况,受第三方支付网关的限制,并不能进行很好的处理,可以借助退款同步接口进行处理

接口说明

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

请求参数

字段名变量名必填类型长度示例值描述
订单号orderNoString321753370980523384832订单号与商户订单号不可以同时为空,同时传输是以订单号为准
商户订单号bizOrderNoString100P0001订单号与商户订单号不可以同时为空,同时传输是以订单号为准
用户IPclientIpString64127.0.0.1支持Ipv4和Ipv6,部分支付通道要求必填,如调用微信支付时
随机数nonceStrString32d112892e382a7093
签名值signString64072695d112892e382a7093b81e6a52af
请求时间reqTimeLong123123121使用时间戳(秒级)

响应结果

提示

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

字段名变量名必传类型示例值描述
同步状态statusStringpay_success返回订单同步成功后的状态,见常量和状态表PayStatusEnum相关的描述
状态码codeInteger0为0表示成功,非0表示失败
错误信息msgString关闭失败状态非0时会有返回值
响应时间resTimeLong123123121服务返回请求的时间,时间戳(秒级)
响应数据签名值signString072695d112892e382a7093b81e6a52af对响应内容进行签名

错误码

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

HTTP请求示例

请求参数

json
{
    "bizOrderNo": "SDK_1715341621498",
    "sign": "8bcaee4a71a9ca6b7a3ab8a7caa35a7604d2a84753763c2f7e984ab4b9f5c6cd",
    "reqTime": 1715500231
}

响应参数(成功)

json
{
    "msg": "success",
    "code": 0,
    "data": {
        "status": "pay_success",
        "code": 0,
        "resTime": 1715500234,
        "sign": "12221593a23d64246f5b8bc75c13a1ce581fb764934e9a8ef3294eddda5ec6a2"
    },
    "traceId": "otTneUZX4KEK"
}

响应参数(失败)

json
{
    "msg": "success",
    "code": 0,
    "data": {
        "code": 1,
        "msg": "支付订单不存在",
        "resTime": 1715499295,
        "sign": "48145bb659db3a337ecbba4e46d3b57b5da6ef8006c1342ebbc9320d619bbad4"
    },
    "traceId": "uYFsaueHRcXa"
}

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.PaySyncParam;
import cn.daxpay.single.sdk.response.DaxPayResult;
import org.junit.Before;
import org.junit.Test;

/**
 * 支付同步接口
 * @author xxm
 * @since 2024/2/5
 */
public class PayOrderSyncTest {


    @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() {
        PaySyncParam param = new PaySyncParam();
        param.setBizOrderNo("SDK_1715341621498");
        DaxPayResult<SyncModel> execute = DaxPayKit.execute(param);
        System.out.println(JSONUtil.toJsonStr(execute));
    }

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