Skip to content

支付撤销接口

提示

用于支付订单创建后,用户在一定时间内未进行支付,可调用该接口直接将未付款的支付订单进行撤销。除了使用接口API方式对订单撤销,也可以在管理后台使用界面进行

接口说明

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

请求参数

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

响应结果

提示

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

字段名变量名必传类型示例值描述
状态码codeInteger0
错误信息msgString撤销失败状态非0时会有返回值
响应时间resTimeLong123123121
签名signString072695d112892e382a7093b81e6a52af对响应内容进行签名

错误码

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

HTTP请求示例

请求参数

json
{
    "bizTradeNo": "P0001",
    "clientIp": "127.0.0.1",
    "sign": "458565a54e959fa206dcda9b44eecaf0d5907e8af40f9457d404e533e092a9ed",
    "reqTime": 1715347558
}

响应参数(成功)

json
{
	"msg": "",
	"code": 0,
	"sign": "",
	"traceId": "vHugexb46msh"
}

响应参数(失败)

json
{
    "msg": "success",
    "code": 0,
    "data": {
        "code": 0,
        "resTime": 1715347771,
        "sign": "3e71c47b15fc9c3da9487acdb1848870712dbbd130fce99eb99ed0c893537ffb"
    },
    "traceId": "JQWKpAeCJGlX"
}

SDK请求示例

提示

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

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

import cn.daxpay.single.sdk.code.SignTypeEnum;
import cn.daxpay.single.sdk.model.pay.PayCancelModel;
import cn.daxpay.single.sdk.net.DaxPayConfig;
import cn.daxpay.single.sdk.net.DaxPayKit;
import cn.daxpay.single.sdk.param.pay.PayCancelParam;
import cn.daxpay.single.sdk.response.DaxPayResult;
import org.junit.Before;
import org.junit.Test;

/**
 * 支付撤销接口测试类
 * @author xxm
 * @since 2024/2/5
 */
public class PayCloseOrderTest {


    @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 cancel(){
        PayCancelParam param = new PayCancelParam();
        param.setOrderNo("DEVP24051019404463000001");
        param.setClientIp("127.0.0.1");
        DaxPayResult<PayCancelModel> execute = DaxPayKit.execute(param);
        System.out.println(JSONUtil.toJsonStr(execute));
    }
}
本文档内容版权属于济南易杯光年软件技术有限公司