Appearance
支付撤销接口 ¶
提示
用于支付订单创建后,用户在一定时间内未进行支付,可调用该接口直接将未付款的支付订单进行撤销。除了使用接口API方式对订单撤销,也可以在管理后台使用界面进行
接口说明 ¶
参数 | 说明 |
---|---|
请求URL | /unipay/cancel |
请求方式 | POST |
请求类型 | application/json |
请求参数 ¶
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 | |
---|---|---|---|---|---|---|
订单号 | orderNo | 否 | String | 32 | 1753370980523384832 | 订单号与商户订单号不可以同时为空,同时传输是以订单号为准 |
商户订单号 | bizOrderNo | 否 | String | 100 | P0001 | 订单号与商户订单号不可以同时为空,同时传输是以订单号为准 |
客户端IP | clientIp | 否 | String | 64 | 127.0.0.1 | 支持V4和V6,部分支付方式要求必填,如调用微信支付方式时Long |
随机数值 | nonceStr | 否 | String | 32 | d112892e382a7093 | |
签名值 | sign | 否 | String | 64 | 072695d112892e382a7093b81e6a52af | |
请求时间 | reqTime | 是 | Long | 123123121 | 使用时间戳(秒级) |
响应结果 ¶
提示
业务数据包裹在公共响应参数
中的data
字段,在code
为0
时才会有返回数据。
字段名 | 变量名 | 必传 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
状态码 | code | 是 | Integer | 0 | |
错误信息 | msg | 否 | String | 撤销失败 | 状态非0时会有返回值 |
响应时间 | resTime | 是 | Long | 123123121 | |
签名 | sign | 是 | String | 072695d112892e382a7093b81e6a52af | 对响应内容进行签名 |
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));
}
}