xy-shanghai-20260721-171915/xy-shanghai/refine.md

8.8 KiB
Raw Permalink Blame History

文档类型:混合型(调用文档+对接文档)


接口列表

1. 卡券/直充权益下单接口

  • 接口名称:卡券/直充权益下单接口
  • 接口描述:适用于卡密,直充商品下单
  • 请求方式POST
  • 报文格式Content-Type: application/json
  • 接口地址:需双方约定(测试/生产环境)

请求参数

请求头(通用请求参数)

参数名 必填 类型 描述 取值说明
timestamp String 时间戳 毫秒级时间戳
sign String 签名 见签名规则

请求体

参数名 必填 类型 描述 取值说明
encryptedData String 加密数据 json格式业务数据进行SM4加密

业务数据参数(加密前)

参数名 必填 类型 描述 取值说明
actCode String 活动code 可约定为各供应商的项目编号和密钥的拼接加密字符串
goodsCode String 商品code 供应商商品编号
actOrderNum String 活动方订单号 唯一,行内活动订单号
account String 充值账号
callbackUrl String 回调地址

请求示例(加密前业务数据)

{
  "actCode": "ACT001",
  "goodsCode": "123456",
  "actOrderNum": "00001",
  "account": "19912345678",
  "callbackUrl": "https://xxx/notice"
}

响应参数

公共响应参数

参数名 必填 类型 描述 说明
code int 返回状态编码 0成功 -1失败
msg String 返回错误信息
data Object 返回数据 JSON格式业务数据进行SM4加密

响应参数data解密后

参数名 必填 类型 描述 说明
orderNo String 权益订单号 唯一,供应商订单号
couponNo String 卡号 卡券/短链类商品返回
couponCode String 卡密 卡券类商品返回
status Integer 状态 -1发放中 0成功 1失败 2已核销 3已过期
expireTime String 有效期 卡券/短链类商品返回格式yyyy-MM-dd HH:mm:SS

响应示例data解密后

{
  "code": 0,
  "msg": "请求成功",
  "data": "{\"orderNo\":\"HM17575805323790000127073398f3772c00\",\"expireTime\":\"2025-09-12 00:00:00\",\"couponNo\":\"27073398f3772c00\",\"couponCode\":\"27073398f3772c00\",\"status\":1}"
}

2. 卡券/直充/微信立减金订单查询接口

  • 接口名称:卡券/直充/微信立减金订单查询接口
  • 接口描述:行内通过供应商订单号查询订单状态接口
  • 请求方式POST
  • 报文格式Content-Type: application/json
  • 接口地址:需双方约定(测试/生产环境)

请求参数

请求头(通用请求参数)同接口1

请求体同接口1

业务数据参数(加密前)

参数名 必填 类型 描述 取值说明
actCode String 活动code 可约定为各供应商的项目编号和密钥的拼接加密字符串
orderNo String 供应商订单号

请求示例(加密前业务数据)

{
  "actCode": "FBG6vdYqGE4mGX7EH/woEg==",
  "orderNo": "HM1757046717684000102707339840b23222"
}

响应参数

公共响应参数同接口1

响应参数data解密后

参数名 必填 类型 描述 说明
orderNo String 权益订单号 唯一,供应商订单号
status Integer 订单状态 -1发放中 0成功 1失败 2已核销 3已过期
account String 充值账号 直充类型时存在
cardInfo Object 卡券信息 卡券/短链类型时存在
- couponNo String 卡号/短链
- couponCode String 卡密
- expireTime String 过期时间 格式yyyy-MM-dd HH:mm:ss
couponId String 优惠id 微信立减金类型时存在

响应示例data解密后

{
  "code": 0,
  "msg": "请求成功",
  "data": "{\"orderNo\":\"HM1757046717684000102707339840b23222\",\"cardInfo\":\"{\\\"couponNo\\\":\\\"11111\\\",\\\"couponCode\\\":\\\"12334\\\",\\\"expireTime\\\":\\\"2029-03-09 00:00:00\\\"}\",\"status\":3}"
}

3. 微信立减金订单充值接口

  • 接口名称:微信立减金订单充值接口
  • 请求方式POST
  • 报文格式Content-Type: application/json
  • 接口地址:需双方约定(测试/生产环境)

请求参数

请求头(通用请求参数)同接口1

请求体同接口1

业务数据参数(加密前)

参数名 必填 类型 描述 取值说明
actCode String 活动code 可约定为各供应商的项目编号和密钥的拼接加密字符串
orderNo String 供应商订单号
goodsCode String 商品code 供应商商品编号
actOrderNum String 活动方订单号 唯一,行内订单号
appId String 公众账号ID
openId String 微信用户标识 需要与 appId 绑定(同一个 appId 下的 openId
callbackUrl String 回调地址

请求示例(加密前业务数据)

{
  "actCode": "FBG6vdYqGE4mGX7EH/woEg==",
  "goodsCode": "0001",
  "actOrderNum": "0001",
  "openId": "0001",
  "appId": "00001"
}

响应参数

公共响应参数同接口1

响应参数data解密后

参数名 必填 类型 描述 说明
orderNo String 权益订单号 唯一,供应商订单号
status Integer 订单状态 -1发放中 0成功 1失败 2已核销 3已过期
couponId String 微信优惠id 微信该批次立减金的优惠id

响应示例data解密后

{
  "code": 0,
  "msg": "请求成功",
  "data": "{\"orderNo\":\"0001\",\"couponId\":\"123456\",\"status\":1}"
}
{
  "code": -1,
  "msg": "库存不足",
  "data": null
}

4. 卡券/直充/微信立减金充值结果通知接口(回调)

  • 接口名称:卡券/直充/微信立减金充值结果通知接口
  • 接口路径:行内提供回调地址(由行方提供,供应商调用)
  • 请求方式POST
  • 报文格式Content-Type: application/json

请求参数

请求头(通用请求参数)同接口1

请求体同接口1

业务数据参数(加密前)

参数名 必填 类型 描述 取值说明
orderNo String 供应商订单号 唯一,供应商订单号
actOrderNum String 活动方订单号 唯一,行内订单号
status Integer 订单状态 -1发放中 0成功 1失败 2已核销 3已过期
account String 直充账号 直充类型商品时存在
cardInfo Object 卡券信息 卡券/短链类型商品时存在
- couponNo String 卡号/短链
- couponCode String 卡密 卡券类型商品时存在
- expireTime String 卡券过期时间
couponId String 微信优惠id 微信立减金类型商品时存在

请求示例(加密前业务数据)

{
  "orderNo": "HM202509291010001",
  "actOrderNum": "XY2025092910100001",
  "status": 3,
  "account": "19912345678"
}

响应参数

状态码 返回内容 说明
200 ok 接收成功,系统认为回调已处理成功,不会重试
其它 任意内容 系统认为接收失败将按重试策略重试最多3次

认证/加密/签名

需双方约定的参数

  • SM3 salt盐值
  • SM4 key密钥
  • 供应商侧测试及生产环境的ip/域名和接口地址
  • 行方回调通知接口地址

签名规则

  • 签名内容:timestamp + encryptedData 字符串拼接
  • 签名算法使用SM3盐值加密SM3 with salt
  • 签名示例Java Hutool
    import cn.hutool.crypto.SmUtil;
    String sign = SmUtil.sm3WithSalt(sm3Salt.getBytes()).digestHex(timestamp + encryptedData);
    

数据加密

  • 业务数据JSON格式使用SM4加密得到 encryptedData 字段
  • 响应中的 data 字段也是SM4加密的JSON字符串需解密后使用

错误码

code 含义
0 成功
-1 失败(具体错误信息见 msg 字段)

(文档中未列出其他错误码,仅此两个)