# 线上交易类接口
# 同步单品发码(单个&批量发码与激活)
#### **接口用途**
- 支持请码方一次单品请求调用,单品发码数量上限100
#### **接口说明**
- 每次调用时必须有明确的渠道订单编号。
- commissionDate = -1时,所制码不具有支付功能(即码没有激活),如果需要激活该码的支付功能需要再次调用"码激活"接口。
- 同步单条发码时,saleChannelOrderId和saleChannelItemId可用同一值。
- returnCode = "00"时,说明订单进入制码流程。itemResultCode = "00"时,说明订单制码成。
- notifyType为券码发送到用户的形式,是否需要通知以券配置为开关
#### **action**
- `MakeCode`
**请求参数,CHANNEL===>[WHALE](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")**
字段 | 类型 | 是否必填 | 字段意义 | 备注 |
---|
saleChannelOrderId | String | 是 | 渠道制码订单id | 最长32位,当上送相同订单号时返回上一次成功信息,如果上一次请码失败,则本次会重新生成码 |
requestId | String | 是 | 请求流水号 | 最长32位,用于标识唯一一笔交易 |
remark | JSONString | 是 | 订单备注信息 | 最长200位,订单查询时原样返回 |
notifyType | Object<[notifyType](https://book.e-buy.com/books/e-buy-40/page/26657 "notifyType")> | 否 | 制码通知类型 | |
item | Object<[makeOrderItems](https://book.e-buy.com/books/e-buy-40/page/3ad7c "makeOrderItems")> | 是 | 制码明细 | 同步制码时,仅支持单产品单码 |
**请求报文举例**
```
{
"saleChannelId": "102410058",
"saleChannelOrderId": "20181024154201",
"requestId": "20181024154201",
"notifyType": {
"mobilePhone": "13524161800"
},
"item": {
"saleChannelItemId":"20181024154201",
"commissionDate":"1",
"validDays": 10,
"ticketId": 1,
"makeFundsChannel": {
"channelBenefit": 0,
"merchantBenefit": 500,
"userRealAmount": 2500
}
}
}
```
**返回参数,[WHALE](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")===>CHANNEL**
字段 | 类型 | 是否必填 | 字段意义 | 备注 |
---|
returnCode | String | 是 | 请求返回码 | |
returnMsg | String | 是 | 请求返回信息 | |
data | Object<[makeCodeResponseData](https://book.e-buy.com/books/e-buy-40/page/faa9a "makeCodeResponseData")> | 否 | 码信息 |
**返回报文举例**
```
{
"returnCode": "00",
"returnMsg": "SUCCESS",
"data": {
"saleChannelOrderId": "20181120155110",
"tradeNo": "c1eca7fbda51430cb5100ec0699a5b00",
"createTime": "20181120155225",
"isNotify": "1",
"codeNum": 1,
"items": [{
"codeDetail": [{
"codeURL": "http://qrcode.url.ag/make?0000001496A382FA4725D24FA27839FC1680D136CAFE515519B94B1D&type=QRCODE",
"code": "10116574123700278846",
"useTimes": 10,
"status": "00",
"statusDesc": "未使用"
}],
"validEnd": "20181201000000",
"validStart": "20181121000000",
"itemResultMsg": "SUCCESS",
"itemResultCode": "00",
"saleChannelItemId": "20181120155110",
"ticketId": 9000000010,
"ticketName":"星巴克30元代金券",
"activityId":"1000000006",
"activityName":"中信银行星巴克代金券活动"
}],
"createDate": "20181120"
}
}
```
#### **券状态枚举**
字段 | 字段意义 | 备注 |
---|
04 | 参数配置不正确 | RequestId参数不能为空
appId参数不能为空
|
50 | 活动产品信息不存在 |
|
97 | 活动产品信息不存在 | 活动产品信息不存在
或者其他配置信息错误 |
06 | 活动产品未经过测试 |
|
50 | 销售渠道信息不存在 |
|
07 | 销售渠道和活动产品权限不匹配 |
|
# 发码订单查询
#### **接口用途**
- 当需要查询发码订单结果时,取码方调用此接口
- 当调用`同步单条发码`超时或未知状态,取码方调用此接口确认交易结果
- 此接口不支持`异步批量发码`的订单查询
#### **接口说明**
- 每一次销售渠道对接[whale](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")进行制码,生成一个制码订单。
- 制码订单以渠道方订单编号为分表位,每次调用时必须有明确的订单编号
#### **action**
- `MakeQuery`
**请求参数,CHANNEL===>[WHALE](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")**
字段 | 类型 | 是否必填 | 字段意义 | 备注 |
---|
originalChannelOrderId | String | 是 | 原取码方制码订单id | 小于64个字符 |
requestId | String | 是 | 请求流水号 | 32个字符,用于标识唯一一笔交易 |
**请求报文举例**
```
{
"originalChannelOrderId": "20180912162026",
"requestId":"20180912162026"
}
```
**返回参数,[WHALE](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")===>CHANNEL**
字段 | 类型 | 是否必填 | 字段意义 | 备注 |
---|
returnCode | String | 是 | 请求返回码 | |
returnMsg | String | 是 | 请求返回信息 | |
data | Object<[makeQueryResponseData](https://book.e-buy.com/books/e-buy-40/page/faa9a "makeQueryResponseData")> | 否 | 码信息 |
**返回报文举例**
```
{
"returnCode": "00",
"returnMsg": "SUCCESS",
"data": {
"saleChannelOrderId": "20181025152303",
"tradeNo": "cee533ae3e504179868e1801e697c5dc",
"createTime": "20181025155331",
"isNotify": "1",
"codeNum": 1,
"createDate": "20181025",
"items": [{
"saleChannelItemId": "20181025105101",
"itemResultMsg": "SUCCESS",
"itemResultCode": "00",
"validStart": "20181025155300",
"ticketId": 1,
"ticketName":"星巴克30元代金券",
"activityId":"1000000006",
"activityName":"中信银行星巴克代金券活动",
"validEnd": "20181104155300",
"codeDetail": [{
"codeURL": "http://xxxx/hbw?A3rVNNEgPLQV",
"code": "10110544106453980943",
"useTimes": 10,
"status": "00",
"statusDesc": "未使用"
},
{
"codeURL": "http://xxxx/hbw?A3rVNNEgPLQQ",
"code": "10110544106453980944",
"useTimes": 10,
"status": "00",
"statusDesc": "未使用"
}]
},
{
"saleChannelItemId": "20181025105102",
"itemResultMsg": "SUCCESS",
"itemResultCode": "00",
"validStart": "20181025155300",
"ticketId": 2,
"ticketName":"星巴克50元代金券",
"activityId":"1000000006",
"activityName":"中信银行星巴克代金券活动"
"validEnd": "20181104155300",
"codeDetail": [{
"codeURL": "http://xxxx/hbw?A3rVNNEgPLQV",
"code": "10110544106453980943",
"useTimes": 10,
"status": "00",
"statusDesc": "未使用"
}]
}]
}
}
```
# 码作废(退款)接口
#### **接口用途**
- 当需要`作废`码时,取码方调用此接口
#### **接口说明**
- 码表中以掩码为分表位,每查询某个码时必须有明确的码号。
- 已撤销(作废)/使用的码不能转换为其他状态。
- 冻结和解冻操作是相对的。
#### **action**
- `CodeStatusUpdate`
**请求参数,CHANNEL===>[WHALE](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")**
字段 | 类型 | 是否必填 | 字段意义 | 备注 |
---|
requestId | String | 是 | 请求流水号 | 32个字符,用于标识唯一一笔交易 |
code | String | 是 | 码号 | 小于22个字符 |
optTag | String(2) | 是 | 操作分类 | 01:作废 |
**请求报文举例**
```
{
"requestId": "20181019112535100000000000000008",
"code": "1021242013780905000",
"optTag":"01"
}
```
**返回参数,[WHALE](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")===>CHANNEL**
字段 | 类型 | 是否必填 | 字段意义 | 备注 |
---|
returnCode | String | 是 | 请求返回码 |
|
returnMsg | String | 是 | 请求返回信息 |
|
data | Object<[statusUpdateData](https://book.e-buy.com/books/e-buy-40/page/01386 "statusUpdateData")> | 否 | 码状态更新返回数据 |
**返回报文举例**
```
{
"returnCode": "00",
"returnMsg": "SUCCESS",
"data": {
"updateDate": "20241224",
"codeSecret": "10032891673449546316",
"codeValidEnd": "20250323235959",
"statusDesc": "已作废",
"data": {},
"tradeNo": "0601f61bf54a46b8a01899b444d47a38",
"codeValidStart": "20241224000000",
"currentStatus": "05",
"updateTime": "20241224093435",
"ticketId": 1000030006397
}
}
```
**失败返回报文举例**
```
{
"returnCode": "32",
"returnMsg": "流水号重复,请调用查询接口",
"data": {}
}
```
```
{
"returnCode": "91",
"returnMsg": "该码已使用不能更新状态[100***8707]",
"data": {}
}
```
```
{
"returnCode": "91",
"returnMsg": "该码已作废不能更新状态[100***6316]",
"data": {}
}
```
#### **券状态枚举**
字段 | 字段意义 | 备注 |
---|
91 | 更新码状态不支持当前操作 | 更新码状态不支持当前操作 |
10 | 券码不存在 |
|
02 | 本操作不支持,流水号长度不正确 |
|
# 码冻结接口
#### **接口用途**
- 当需要`冻结`码时,取码方调用此接口
#### **接口说明**
- 码表中以掩码为分表位,每查询某个码时必须有明确的码号。
- 已撤销(作废)/使用的码不能转换为其他状态。
- 冻结和解冻操作是相对的。
#### **action**
- `CodeStatusUpdate`
**请求参数,CHANNEL===>[WHALE](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")**
字段 | 类型 | 是否必填 | 字段意义 | 备注 |
---|
requestId | String | 是 | 请求流水号 | 32个字符,用于标识唯一一笔交易 |
code | String | 是 | 码号 | 小于22个字符 |
optTag | String(2) | 是 | 操作分类 | 02:冻结 |
**请求报文举例**
```
{
"channelOrderId": "20180912162026",
"requestId": "20181019112535100000000000000008",
"code": "1021242013780905000",
"optTag":"02"
}
```
**返回参数,[WHALE](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")===>CHANNEL**
字段 | 类型 | 是否必填 | 字段意义 | 备注 |
---|
returnCode | String | 是 | 请求返回码 | |
returnMsg | String | 是 | 请求返回信息 | |
data | Object<[statusUpdateData](https://book.e-buy.com/books/e-buy-40/page/01386 "statusUpdateData")> | 否 | 码状态更新返回数据 |
**返回报文举例**
```
{
"returnCode": "00",
"returnMsg": "SUCCESS",
"data": {
"tradeNo": "9e22d9a9e532435db77bccdfd8a74ee5",
"requestId": "20181019112535100000000000000008",
"currentStatus": "01",
"statusDesc": "已作废",
"updateDate":"20181019",
"updateTime":"20181019112535"
}
}
```
# 码解冻接口
#### **接口用途**
- 当需要`解冻`码时,取码方调用此接口
#### **接口说明**
- 码表中以掩码为分表位,每查询某个码时必须有明确的码号。
- 已撤销(作废)/使用的码不能转换为其他状态。
- 冻结和解冻操作是相对的。
#### **action**
- `CodeStatusUpdate`
**请求参数,CHANNEL===>[WHALE](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")**
字段 | 类型 | 是否必填 | 字段意义 | 备注 |
---|
requestId | String | 是 | 请求流水号 | 32个字符,用于标识唯一一笔交易 |
code | String | 是 | 码号 | 小于22个字符 |
optTag | String(2) | 是 | 操作分类 | 03:解冻 |
**请求报文举例**
```
{
"channelOrderId": "20180912162026",
"requestId": "20181019112535100000000000000008",
"code": "1021242013780905000",
"optTag":"03"
}
```
**返回参数,[WHALE](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")===>CHANNEL**
字段 | 类型 | 是否必填 | 字段意义 | 备注 |
---|
returnCode | String | 是 | 请求返回码 | |
returnMsg | String | 是 | 请求返回信息 | |
data | Object<[statusUpdateData](https://book.e-buy.com/books/e-buy-40/page/01386 "statusUpdateData")> | 否 | 码状态更新返回数据 |
**返回报文举例**
```
{
"returnCode": "00",
"returnMsg": "SUCCESS",
"data": {
"tradeNo": "9e22d9a9e532435db77bccdfd8a74ee5",
"requestId": "20181019112535100000000000000008",
"currentStatus": "01",
"statusDesc": "已作废",
"updateDate":"20181019",
"updateTime":"20181019112535"
}
}
```
# 码激活接口
#### **接口用途**
- 当需要`激活`码时,取码方调用此接口
#### **接口说明**
- 码表中以掩码为分表位,每查询某个码时必须有明确的码号。
- 已撤销(作废)/使用的码不能转换为其他状态。
#### **action**
- `CodeStatusUpdate`
**请求参数,CHANNEL===>[WHALE](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")**
字段 | 类型 | 是否必填 | 字段意义 | 备注 |
---|
requestId | String | 是 | 请求流水号 | 32个字符,用于标识唯一一笔交易 |
code | String | 是 | 码号 | 小于22个字符 |
codeValidDays | Number | 否 | 相对有效天数 | 除制码当天开始相应天数结束。validStart、validEnd组合与validDay、commissionDate组合可选其一,若全部填写以相对有效期优先 |
codeValidStart | Number(14) | 否 | 码有效开始时间 | 该字段填写时,validEnd必填格式:yyyyMMddHHmmss |
codeValidEnd | Number(14) | 否 | 码有效结束时间 | 该字段填写时,validStart必填格式:yyyyMMddHHmmss |
activateShopNo | String(10) | 否 | 激活门店号 |
|
activateOrg | String(10) | 否 | 激活机构 |
|
purchaseOrderNum | String | 否 | 用户购买订单号 |
|
notifyType | Object<[notifyType](https://book.e-buy.com/books/e-buy-40/page/26657 "notifyType")> | 否 | 激活通知类型 |
|
makeFundsChannels | Array<[fundsChannel](https://book.e-buy.com/books/e-buy-40/page/cee63 "makeFundsChannel")> | 否 | 资金渠道 | 针对阶梯价场景为必填 |
makeFundsChannel | Object<[makeFundsChannel](https://book.e-buy.com/books/e-buy-40/page/cee63 "makeFundsChannel")> | 否 | 资金渠道 | 当需要在对账报表中体现时必填 |
optTag | String(2) | 是 | 操作分类 | 04:激活 |
**请求报文举例**
```
{
"requestId": "20181019112535100000000000000008",
"code": "1021242013780905000",
"codeValidDays":9,
"purchaseOrderNum":"20191119192700123",
"optTag":"04"
}
```
**返回参数,[WHALE](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")===>CHANNEL**
字段 | 类型 | 是否必填 | 字段意义 | 备注 |
---|
returnCode | String | 是 | 请求返回码 |
|
returnMsg | String | 是 | 请求返回信息 |
|
data | Object<[statusUpdateData](https://book.e-buy.com/books/e-buy-40/page/01386 "statusUpdateData")> | 否 | 码状态更新返回数据 |
**返回报文举例**
```
{
"returnCode": "00",
"returnMsg": "SUCCESS",
"data": {
"tradeNo": "9e22d9a9e532435db77bccdfd8a74ee5",
"requestId": "20181019112535100000000000000008",
"currentStatus": "00",
"statusDesc": "未使用",
"updateDate":"20181019",
"updateTime":"20181019112535"
}
}
```
**失败返回报文举例**
```
{
"returnCode": "32",
"returnMsg": "流水号重复,请调用查询接口",
"data": {}
}
```
# 同步批量码作废
#### **接口用途**
- 多码批量作废时,调用此接口
#### **接口说明**
- 一次可以多码作废,一次最多20个码。
#### **action**
- `SyncBatchCodeUpdate`
**请求参数,CHANNEL===>[WHALE](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")**
字段 | 类型 | 是否必填 | 字段意义 | 备注 |
---|
requestId | String | 是 | 请求流水号 | 32个字符,用于标识唯一一笔交易 |
codeArray | List | 是 | 码号数组 | |
saleChannelId | Long | 否 | 取码方id | |
saleChannelOrderId | String | 否 | 取码方制码订单号 | 当codeArray无值时取该订单号下所有串码进行作废。当订单号有值时取码方id必填 |
callBackUrl | String | 是 | 激活成功后的回调地址 | |
updateShopNo | String(10) | 否 | 激活门店号 | |
updateOrg | String(10) | 否 | 激活机构 | |
optTag | String(2) | 是 | 操作分类 | B1:批量作废 |
**请求报文举例**
```
{
"requestId":"20181019112535100000000000000001",
"codeArray": ["10215523190570712621"],
"callBackUrl": "http://test.com/api/codeVoid",
"optTag": "B1",
}
```
**同步返回参数,[WHALE](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")===>CHANNEL**
字段 | 类型 | 是否必填 | 字段意义 | 备注 |
---|
returnCode | String | 是 | 请求返回码 | |
returnMsg | String | 是 | 请求返回信息 | |
data | Object<[statusUpdateCallbackData](https://book.e-buy.com/books/e-buy-40/page/15438 "statusUpdateCallbackData")> | 否 | 码状态更新返回数据 |
**回调返回报文举例**
```
{
"returnCode": "00",
"returnMsg": "SUCCESS",
"data": {
"tradeNo": "9e22d9a9e532435db77bccdfd8a74ee5",
"requestId": "20181019112535100000000000000008",
"totalCodeNum": 1,
"successCodeNum": 1,
"codeArray": [{
"codeId": "1212431432",
"searchCode": "100***1234",
"codeSecret": "100213321414112234",
...
}],
}
}
```
# 码信息更新接口
#### **接口用途**
- 当需要对指定码的部分信息进行更新时,调用此接口
#### **接口说明**
- 码表中以掩码为分表位,每查询某个码时必须有明确的码号。
#### **action**
- `CodeDetailUpdate`
**请求参数,CHANNEL===>[WHALE](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")**
字段 | 类型 | 字段意义 | 备注 |
---|
requestId | String | 是 | 请求流水号 | 32个字符,用于标识唯一一笔交易 |
code | String | 是 | 码号 | |
updateOpts | <[updateOpt](https://book.e-buy.com/books/e-buy-40/page/02522 "updateOpt")> | 是 | 码明细更新操作 |
**请求报文举例**
```
{
"requestId": "20180912162026",
"code": "1012123342335432145",
"updateOpts": {
"updatePurchaseTime": "20181103105501",
"updateMakeNotifyType": {
"mobilePhone": "13510121314"
},
"updateMerchantRealAmount": 1200
}
}
```
**返回参数,[WHALE](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")===>CHANNEL**
字段 | 类型 | 是否必填 | 字段意义 | 备注 |
---|
returnCode | String | 是 | 请求返回码 | |
returnMsg | String | 是 | 请求返回信息 | |
data | Object<[statusUpdateData](https://book.e-buy.com/books/e-buy-40/page/01386 "statusUpdateData")> | 否 | 码状态更新返回数据 |
**返回报文举例**
```
{
"returnCode": "00",
"returnMsg": "SUCCESS",
"data": {
"tradeNo": "9e22d9a9e532435db77bccdfd8a74ee5",
"requestId": "20180912162026",
"currentStatus": "00",
"statusDesc":"未使用",
"updateDate":"20181019",
"updateTime":"20181019112535"
}
}
```
# 码信息查询
#### **接口用途**
- 当需要查询某个指定码时,取码方调用此接口
#### **接口说明**
- 码表中以掩码为分表位,每查询某个码时必须有明确的码号。
#### **action**
- `CodeQuery`
**请求参数,CHANNEL===>[WHALE](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")**
字段 | 类型 | 是否必填 | 字段意义 | 备注 |
---|
requestId | String | 是 | 请求流水号 | 32个字符,用于标识唯一一笔交易 |
codes | List | 是 | 验码集合 | 最大不超过20 |
brandId | String | 否 | 核销门店所属品牌 | 组合劵必须上送,易百提供 |
cityId | String | 否 | 门店所在城市id | 易百提供的城市id |
storeInfo | Object<[storeInfo](https://book.e-buy.com/books/e-buy-40/page/54229 "storeInfo")> | 否 | 门店串码查询时上送 |
**请求报文举例**
```
{
"requestId": "20181019112535100000000000000002",
"codes": ["1021242013780905000"],
"brandId":"2429",
"cityId":5493
}
```
**返回参数,[WHALE](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")===>CHANNEL**
字段 | 类型 | 是否必填 | 字段意义 | 备注 |
---|
returnCode | String | 是 | 请求返回码 |
|
returnMsg | String | 是 | 请求返回信息 |
|
data | Object<[codeQueryResponseData](https://book.e-buy.com/books/e-buy-40/page/0584c "codeQueryResponseData")> | 否 | 码信息 |
**返回报文举例**
```
{
"returnCode": "00",
"returnMsg": "操作成功",
"requestId": "171698602301",
"data":{
"codeDetail":[{
"code":"1021242013780905000",
"saleChannelOrderId":"20181120155110",
"sendChannelName":"易百自制渠道",
"saleChannelCode":"990001",
"useTimes":1,
"verifyTimes":1
"remainTimes":0,
"createDate": "20180905",
"createTime": "20180905160911",
"validStart":"20181123000000",
"validEnd":"20181124235959",
"verifyDate":"20181123",
"verifyTime":"20181124121243",
"status": "01",
"statusDesc": "已使用",
"cityCheck":"Y",
"ticketId":"9000000001",
"faceValue":3000,
"ticketName":"星巴克30元代金券",
"shopNo":"1111",
"shopName":"星巴克测试门店"
"faceValue":1000,
},{
"code":"1021242013780905001",
"saleChannelOrderId":"20181120155110",
"sendChannelName":"易百自制渠道",
"remainTimes":1,
"createDate": "20180905",
"createTime": "20180905160911",
"validStart":"20181123000000",
"validEnd":"20181124235959",
"verifyDate":"20181123",
"verifyTime":"20181124121243",
"status": "01",
"statusDesc": "已使用",
"cityCheck":"Y",
"ticketId":"9000000001",
"faceValue":3000,
"ticketName":"星巴克30元代金券",
"shopNo":"1111",
"shopName":"星巴克测试门店"
"faceValue":1000,
}]
}
}
```
#### **券状态枚举**
字段 | 字段意义 | 备注 |
---|
00 | 可使用 |
|
01 | 已使用 |
|
02 | 可使用(一码多次使用时,码还有可用次数) |
|
03 | 未激活 | 未激活的码需调用激活接口才能 |
04 | 已冻结 |
|
05 | 已作废 |
|
06 | 已过期 |
|
07 | 未生效 | 当制码时选择次日生效,核销时会返回该状态 |
08 | 不能退款 | 仅核销场景-不支持核销撤销(根据业务场景配置是否支持隔日和当日核销撤销) |
09 | 券不存在 | 券码不存在(券码查询、核销、核销撤销) |
21 | 电子凭证不可用 | 券码不在有效期
|
35 | 码配置异常 |
|
51 | 改码不存在制码方 |
|
97 | 报文错误 | 接口调用参数校验不通过 |
C2 | 商户无权限 | 券码查询和核销 权限校验不通过 |
# 批量码核销
#### **接口用途**
- 多码批量核销时,调用此接口
#### **接口说明**
- 一次可以多码核销,一次最多10个码。
#### **action**
- `BatchCodesVerify`
**请求参数,CHANNEL===>[WHALE](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")**
字段 | 类型 | 是否必填 | 字段意义 | 备注 |
---|
verifyScene | String | 是 | 交易场景.offline线下,online线上 | 线上也可以传抖音、美团等 |
codes | List | 是 | 码号数组 | |
verifyCodes | List<[codeArr](https://book.e-buy.com/books/e-buy-40/page/cfa08)> | 否 | 指定券码阶梯价序号 |
|
isProductCheck | String | 是 | 是否校验订单产品规则 | 是Y,否N |
requestId | String | 是 | 请求流水号确保永久唯一性 | 32位长度 |
refNo | String | 否 | 系统参考号 | 12位长度 |
cashierTransNo | String | 否 | 收银机流水号 | 最长64位长度 |
storeInfo | Object<[storeInfo](https://book.e-buy.com/books/e-buy-40/page/6f492 "storeInfo")> | 否 | 此信息为线下门店核销时上送 | 线下核销必填 |
cashTotalAmount | Number | 否 | 订单总金额 | 单位:分 |
goodsDetail | List<[goodsDetail](https://book.e-buy.com/books/e-buy-40/page/1d7f7-Fbe "goodsDetail")> | 否 | (只有在收银POS上发起交易时才上送) | |
remark | String | 否 | 备注(在核销撤销、核销查询等接口原样返回) | |
**请求报文举例**
```
{
"verifyScene":"online",
"codes": ["10215523190570712621"],
"requestId": "20181019112535100000000000000001",
"refNo": "181215430700",
"cashierTransNo": "42441908138100007498001",
"storeInfo": {
"cityId":"1012",
"shopNo": "C00001",
"shopName": "上海浦东测试门店",
"manageCompany": "上海浦东测试店管理公司",
"companyId": "218"
},
"cashTotalAmount": "20000",
"goodsDetail": [{
"sku": "1112343",
"qty": 1,
"price": 3000,
"type": "03",
"spec": "03"
}, {
"sku": "1212342",
"qty": 1,
"price": 3500,
"type": "03",
"spec": "03"
}]
}
```
**返回参数,[WHALE](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")===>CHANNEL**
字段 | 类型 | 是否必填 | 字段意义 | 备注 |
---|
returnCode | String | 是 | 请求返回码 | 返回码32时,请调用单码核销查询接口CodeVerifyQuery,确认核销结果 |
returnMsg | String | 是 | 请求返回信息 | |
data/checkResult | Object<[data/checkResult](https://book.e-buy.com/books/e-buy-40/page/1afa3 "data")> | 是 | 券码核销信息明细返回 |
**返回报文举例**
```
{
"requestId": "10000000000000000000002",
"returnCode": "00",
"returnMsg": "操作成功",
"data": {
"verifyResult":[{
"code":"1021242013780905000",
"saleChannelCode":"990001",
"saleChannelCode":"易百码",
"status":"00",
"fundsChannel": {
"discountAmount": 3000,
"merchantRealAmount":0.0,
"channelBenefit": 0.0,
"merchantBenefit": 0.0
},
"faceValue":3000,
"ticketId":"3",
"ticketName":"30元现金抵价券",
"returnCashParam":{
"tenderCode":"135"
}
},{
"code":"1021242013780905000",
"saleChannelCode":"990001",
"saleChannelCode":"易百码",
"status":"06",
"fundsChannel": {
"discountAmount": 1000,
"merchantRealAmount":0.0,
"channelBenefit": 0.0,
"merchantBenefit": 0.0
},
"faceValue":1000,
"ticketId":"6",
"ticketName":"10元现金抵价券",
"returnCashParam":{
"tenderCode":"132"
}
}]
}
}
```
#### **status枚举**
字段 | 字段意义 | 备注 |
---|
00 | 可使用 |
01 | 已使用 |
03 | 未激活 | 未激活的码需调用激活接口才能 |
04 | 已冻结 |
05 | 已作废 |
06 | 已过期 | |
07 | 未生效 | 当制码时选择次日生效,核销时会返回该状态 |
09 | 码不存在 |
10 | 券码状态异常,券码无效 |
23 | 商户商品号传送错误 |
26 | 券码不能在本门店使用 |
C1 | 商户号门店信息有误 |
C2 | 商户无权限 |
T2 | 易百调用第三方失败 |
A4 | 其他异常 |
# 批量码核销查询
#### **接口用途**
- 批量核销接口调用超时对核销结果未知道,可以调用此接口来查询核销结果
#### **接口说明**
- 此接口默认支持查询当日内核销交易
- 也可传参originalDate查询指定日核销交易
#### **action**
- `BatchCodeVerifyQuery`
**请求参数,CHANNEL===>[WHALE](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")**
字段 | 类型 | 是否必填 | 字段意义 | 备注 |
---|
requestId | String | 是 | 请求流水号 | 32个字符,用于标识唯一一笔交易 |
originalRequestId | String | 是 | 原核销请求流水号 | 32个字符 |
originalDate | String | 否 | 原交易日期 | 传入需要查询的原交易日期,不传默认为当天格式为yyyyMMdd |
**请求报文举例**
```
{
"requestId": "20180905000",
"originalRequestId":"1021867639235435",
"originalDate": "20170912"
}
```
**返回参数,[WHALE](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")===>CHANNEL**
字段 | 类型 | 是否必填 | 字段意义 | 备注 |
---|
returnCode | String | 是 | 请求返回码 | |
returnMsg | String | 是 | 请求返回信息 | |
requestId | String | 是 | 原样返回 | |
verifyRemark | String | 否 | 核销备注信息 | 核销接口上送原样返回 |
data/verifyQueryResponse | Object<[data/verifyQueryResponse](https://book.e-buy.com/books/e-buy-40/page/19f3c-LQF "data")> | 是 | 券码核销订单明细返回 | |
**返回报文举例**
```
{
"returnCode": "00",
"returnMsg": "操作成功",
"requestId": "10000000000000000000002",
"data": {
"verifyQueryResponse": [{
"cashTotalAmount": 17800,
"fundsChannel": {
"totalAmount": 50000,
"discountAmount": 50000,
"merchantRealAmount": 40000,
"channelBenefit": 10000,
"merchantBenefit": 10000,
"userRealAmount": 30000
},
"goodsDetail": [{
"sku": "1212342",
"qty": 1,
"price": 3500,
"type": "03",
"spec": "03"
}],
"code": "10215523190570712621",
"ticketId": "3",
"ticketName": "50 元现金抵价券 ",
"activityNo": "2017071951",
"activityName": "联动优势电子凭证",
"printData": "00|产品:测试券|00|团购价:100|00|订单号:100000000002100002|00|兑换码:101105********4289|"
}]
}
}
```
# 批量码核销撤销
#### **接口用途**
- 多码批量核销订单撤销时或订单中部分码撤销,调用此接口。
#### **接口说明**
- 撤销批量核销订单,调用前请确认订单是否符合撤销条件。
#### **action**
- `BatchCodeVerifyVoid`
**请求参数,CHANNEL===>[WHALE](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")**
字段 | 类型 | 是否必填 | 字段意义 | 备注 |
---|
requestId | String | 是 | 请求流水号 | 小于32个字符 |
originalRequestId | String | 是 | 原核销请求流水号 | 32个字符,用于标识唯一一笔交易 |
codes | List | 否 | 原订单中批量核销撤销的码 | 此字段不填默认整订单撤销 |
voidDate | String | 否 | 原交易时间,默认当天 | 格式:YYYYMMDD |
isAtomicity | String | 否 | 是否需要支持原子性,原交易中码核销撤销要么全部成功要么全部失败 | Y:是,N:否(默认) |
**请求报文举例**
```
{
"requestId": "10000000000000000000001",
"originalRequestId":"10000000000000000000002"
}
```
**返回参数,[WHALE](https://book.e-buy.com/books/e-buy-40/page/7f100 "易百电子凭证4.0系统的别称")===>CHANNEL**
字段 | 类型 | 是否必填 | 字段意义 | 备注 |
---|
returnCode | String | 是 | 请求返回码 | 返回码32时,请调用单码核销查询接口CodeVerifyQuery,确认核销结果 |
returnMsg | String | 是 | 请求返回信息 | |
verifyRemark | String | 否 | 核销备注信息 | 核销接口上送原样返回 |
data/voidResult | Object<[data/voidResult](https://book.e-buy.com/books/e-buy-40/page/18997)> | 是 | 券码核销信息明细返回 | |
**返回报文举例**
```
{
"returnCode": "00",
"returnMsg": "操作成功",
"requestId": 10000000000000000000002,
"data": {
"voidResult":[{
"code":"1021242013780905000",
"status":"00",
"statusDesc":"成功",
"amount": "5000",
"ticketName": "50 元现金抵价券 "
}]
}
}
```
# 测试apimock同步
\[yapi\_interface\]617\[/yapi\_interface\]
# 查询码信息查询
接口用途
接口说明
- 码表中以掩码为分表位,每查询某个码时必须有明确的码号。
action
请求参数,CHANNEL===>WHALE
字段 |
类型 |
是否必填 |
字段意义 |
备注 |
---|
requestId |
String |
是 |
请求流水号 |
32个字符,用于标识唯一一笔交易 |
codes |
List |
是 |
验码集合 |
|
brandId |
String |
否 |
核销门店所属品牌 |
组合劵必须上送,易百提供 |
cityId |
String |
否 |
门店所在城市id |
易百提供的城市id |
storeInfo |
Object<storeInfo> |
否 |
门店串码查询时上送 |
请求报文举例
{
"requestId": "20181019112535100000000000000002",
"codes": ["1021242013780905000"],
"brandId":"2429",
"cityId":5493
}
返回参数,WHALE===>CHANNEL
字段 |
类型 |
是否必填 |
字段意义 |
备注 |
---|
returnCode |
String |
是 |
请求返回码 |
|
returnMsg |
String |
是 |
请求返回信息 |
|
data |
Object<codeQueryResponseData> |
否 |
码信息 |
返回报文举例
{
"returnCode": "00",
"returnMsg": "操作成功",
"requestId": "171698602301",
"data":{
"codeDetail":[{
"code":"1021242013780905000",
"saleChannelOrderId":"20181120155110",
"sendChannelName":"易百自制渠道",
"saleChannelCode":"990001",
"useTimes":1,
"verifyTimes":1
"remainTimes":0,
"createDate": "20180905",
"createTime": "20180905160911",
"validStart":"20181123000000",
"validEnd":"20181124235959",
"verifyDate":"20181123",
"verifyTime":"20181124121243",
"status": "01",
"statusDesc": "已使用",
"cityCheck":"Y",
"ticketId":"9000000001",
"faceValue":3000,
"ticketName":"星巴克30元代金券",
"shopNo":"1111",
"shopName":"星巴克测试门店"
"faceValue":1000,
},{
"code":"1021242013780905001",
"saleChannelOrderId":"20181120155110",
"sendChannelName":"易百自制渠道",
"remainTimes":1,
"createDate": "20180905",
"createTime": "20180905160911",
"validStart":"20181123000000",
"validEnd":"20181124235959",
"verifyDate":"20181123",
"verifyTime":"20181124121243",
"status": "01",
"statusDesc": "已使用",
"cityCheck":"Y",
"ticketId":"9000000001",
"faceValue":3000,
"ticketName":"星巴克30元代金券",
"shopNo":"1111",
"shopName":"星巴克测试门店"
"faceValue":1000,
}]
}
}
券状态枚举
字段 |
字段意义 |
备注 |
---|
00 |
可使用 |
01 |
已使用 |
02 |
可使用(一码多次使用时,码还有可用次数) |
03 |
未激活 |
未激活的码需调用激活接口才能 |
04 |
已冻结 |
05 |
已作废 |
06 |
已过期 |
|
07 |
未生效 |
当制码时选择次日生效,核销时会返回该状态 |
09 |
券不存在 |
|
35 |
码配置异常 |