星巴克预付费券系统

文档介绍

文档目的

此为取码方与易百电子凭证对接的报文协议 为实现取码方对接易百制码,制码查询,制码撤销,码信息查询,码状态修改,码信息修改等制码功能

开发测环境

https://dev-starbucks-gateway.e-buy.com/api/product
https://dev-starbucks-gateway.e-buy.com/starbucksjs
https://dev-starbucks-gateway.e-buy.com/ebuyweb-posp/api
https://dev-starbucks-gateway.e-buy.com/41/

产线环境

https://starbucks-gateway.e-buy.com/api/product
https://starbucks-gateway.e-buy.com/js
https://starbucks-gateway.e-buy.com/ebuyweb-posp/api
https://starbucks-gateway.e-buy.com/41/

名词解释

HTTP

基于HTTP协议的通讯方式

JSON

网络通信时的一种数据交互格式

WHALE

易百电子凭证4.0系统的别称

JWT

JWTJSON Web Token的简写,它定义了一种在客户端和服务器端安全传输数据的规范,通过 JSON 格式来传递信息。 一个JWT实际上就是一个字符串,它由三部分组成,第一段是 header(头部),第二段是 payload(主体信息或称为载荷),第三段是 signature(数字签名)。

  1. header 完整的头部就像下面这样的JSON: { "typ": "JWT", "alg": "HS256" } 然后将头部进行base64加密(该加密是可以对称解密的),构成了第一部分: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9

  2. playload 载荷就是存放有效信息的地方,这些有效信息包含三个部分:标准中注册的声明、公共的声明、私有的声明。 标准中注册的声明 (建议但不强制使用): iss: jwt签发者 sub: jwt所面向的用户 aud: 接收jwt的一方 exp: jwt的过期时间,这个过期时间必须要大于签发时间 nbf: 定义在什么时间之前,该jwt都是不可用的 iat: jwt的签发时间 jti: jwt的唯一身份标识,主要用来作为一次性token,从而回避重放攻击。 公共的声明 : 公共的声明可以添加任何的信息,一般添加用户的相关信息或其他业务需要的必要信息.但不建议添加敏感信息,因为该部分在客户端可解密。 私有的声明 : 私有声明是提供者和消费者所共同定义的声明,一般不建议存放敏感信息,因为base64是对称解密的,意味着该部分信息可以归类为明文信息。 定义一个payload: { "username":"张三", "password":"zs123456", "dynamic Code":"EBUY123456789abcdefg" } 然后将其进行base64加密,得到JWT的第二部分: eyJvcmciOiLku4rml6XlpLTmnaEiLCJuYW1lIjoiRnJlZeeggeWGnCIsImV4cCI6MTUxNDM1NjEwMywiaWF0IjoxNTE0MzU2MDQzLCJhZ2UiOiIyOCJ9

  3. signature JWT的第三部分是一个签证信息,这个签证信息由三部分组成: header (base64后的) payload (base64后的) secret 这个部分需要base64加密后的header和base64加密后的payload使用.连接组成的字符串,然后通过header中声明的加密方式进行加盐secret组合加密,然后就构成了jwt的第三部分:49UF72vSkj-sA4aHHiYN5eoZ9Nb4w5Vb45PsLF7x_NY 密钥secret是保存在服务端的,服务端会根据这个密钥进行生成token和验证,所以需要保护好。

业务参数对象

业务参数对象

资金渠道

字段 类型 是否必填 字段意义 备注
totalAmount Number 订单总金额 单位:分。totalAmount = discountAmount + userRealAmount
discountAmount Number 折扣金额 单位:分。discountAmount = merchantBenefit + channelBenefit
merchantRealAmount Number 商户实收金额 单位:分。merchantRealAmount = totalAmount - merchantBenefit
channelBenefit Number 渠道出资优惠 单位:分
merchantBenefit Number 商户出资优惠 单位:分
userRealAmount Number 用户实付金额 单位:分
业务参数对象

券码历史记录

字段 类型 是否必填 字段意义 备注
dateTime
String 交易时间 格式: yyyyMMddHHmmss
returnCode
String 返回编码 00
returnMsg
String 返回编码描述
code
String 券码
mid
String 商户号
shopName
String 门店名称
type
String 交易类型 1 发码 2 核销  3 作废 4核销撤销
shopNo
String 门店号
tid
String 终端号
swift
String 索引序号
extendData
JSON 扩展自定义字段

业务参数对象

余额资金渠道

业务参数对象

核销资金渠道

字段 类型 是否必填 字段意义 备注
totalAmount Number 订单总金额 单位:分。totalAmount = discountAmount + userRealAmount
discountAmount Number 折扣金额 单位:分。discountAmount = merchantBenefit + channelBenefit
merchantRealAmount Number 商户实收金额(A账户) 单位:分。merchantRealAmount = totalAmount - merchantBenefit
merchantCustomRealAmount Number 商户指定实收金额 单位:分。默认:-1。当商户制码或激活时指定实收金额,在核销时该字段与merchantRealAmount均为指定实收金额
channelBenefit Number 渠道出资优惠 单位:分
merchantBenefit Number

商户出资优惠

(B账户)

单位:分
userRealAmount Number 用户实付金额 单位:分
seq Number 阶梯序号
seqStatus String 阶梯状态 00 初始化  01 已使用
verifyRequestId String 核销流水号 对应当前阶梯流水号(单次订单层级)
业务参数对象

下单制码资金渠道

字段 类型 是否必填 字段意义 备注
totalAmount Number 总金额(A+B) 单位:分
channelBenefit Number 渠道出资优惠 单位:分
merchantBenefit Number 商户出资优惠(B账户) 单位:分
userRealAmount Number 用户实付金额 单位:分
merchantRealAmount Number 商户实收金额(A账户) 单位:分
seq Number 阶梯序号
业务参数对象

产品明细

字段 类型 是否必填 字段意义 备注
sku String 商品SKU  
qty Integer 数量  
price Number 单价 单位:分
type String 商品品类  
spec String 商品规格  
rebateCode String 折扣代码 当收银端折扣过产品不能在后端再次折扣时在此标注
业务参数对象

会员信息

码明细

字段 类型 是否必填 字段意义 备注
memberId String 会员ID  
memberName String 会员名称  
grade String 会员等级  
status String 会员状态  
memberCode String 会员号码  
balance Long 会员余额 单位:分
pointBalance Long 会员积分余额 单位:分
业务参数对象

兑换码明细

字段 类型 是否必填 字段意义 备注
realCode String 兑换码兑换后的真实串码号  
realTicketId Long 兑换码兑换后的真实券id  
realTicketName String 兑换码兑换后的真实券名称
业务参数对象

用户通知类型

制码通知类型

字段 类型 是否必填 字段意义 备注
mobilePhone String 短信通知手机号  
weiChat String 微信通知openId 暂不支持
aliPay String 支付宝通知id 暂不支持
thirdUserId String 第三方平台用户id 不做业务处理,仅作为参数传递
weChatCardPackageNotify Object<weChatCardPackageNotify> 微信卡包通知  
业务参数对象

微信卡包制码通知类型

字段 类型 是否必填 字段意义 备注
userUnionId String 微信用户唯一识别号  
appId String 公众号id  
userOpenId String 微信用户唯一识别号  
sendChannelId String 渠道id 若是易百自制码,需要调用外部渠道进行微信卡包通知时上传该字段,字段值由易百事先分配;若是第三方制码,需要调用该制码方微信靠包通知接口时,无需上传该字段
业务参数对象

码状态更新操作类型

字段 类型 是否必填 字段意义 备注
updatePurchaseTime String 修改实际购买时间 yyyyMMddHHmmss
updateValidEnd String 修改实际有效截至时间 yyyyMMddHHmmss
updatePurchaseOrderNum String 修改用户购买订单号  
updateMakeNotifyType Object<makeNotifyType> 修改制码通知信息  
updateVerifyNotifyType Object<verifyNotifyType> 修改核销通知信息  
updateMerchantRealAmount Long 修改商户实收金额 单位:分
updateMemberDetail Object<memberDetail> 修改会员信息  
activateShopNo String(10) 激活门店号  
activateOrg String(10) 激活机构  
remark String(200) 串码备注信息
业务参数对象

码信息查询返回数据

字段 类型 是否必填 字段意义 备注
codeDetail List<codeQueryCodeDetail> 码信息
业务参数对象

码明细查询

字段 类型 是否必填 字段意义 备注
code String 码号  
saleChannelOrderId String 取码方制码订单号  
saleChannelName String 取码方名称  
saleChannelCode String 取码方code  
sendChannelName String 制码方名称  
useTimes Integer 总可使用次数  
remainTimes Integer 剩余核销次数  
verifyTimes Integer 已核销次数  
createDate String 码创建日期 yyyyMMdd
createTime String 码创建时间 yyyyMMddHHmmss
validStart String 码有效开始时间 yyyyMMddHHmmss
validEnd String 码有效结束时间 yyyyMMddHHmmss
activateDate String 激活日期 yyyyMMdd
activateTime String 激活时间 yyyyMMddHHmmss
activateShopNo String 激活门店  
verifyDate String 码核销日期 yyyyMMdd
verifyTime String 码核销时间 yyyyMMddHHmmss
status String 状态  
statusDesc String 状态描述  
cityCheck String 劵所在城市是否可用 Y可用N不可用。第三方码核销逻辑受第三方控制时,此字段无意义
ticketId String 易百活动产品id 由于历史原因,该字段存放易百活动产品id
whaleTicketId String 券id  券系统中券批次id,例:1000000006400
ticketName String 券名称  
activityId String 活动id  
activityName String 活动名称  
faceValue Number 券面值 单位:分
shopNo String 核销门店编号  
shopName String 核销门店名称  
codeRemark String 串码备注字段  
ebuyActivityProductId String 易百活动产品id  
ebuyActivityProductNo String 易百活动产品编号  
fundsChannel Object<fundsChannel> 资金渠道 在制码或激活时上传的资金明细
remainFundsChannel Object<remainFundsChannel> 余额资金渠道  
fundsChannels Array<fundChannel> 资金渠道列表 仅针对阶梯价场景
业务参数对象

阶梯价核销券码明细

字段 类型 是否必填 字段意义 备注
code String 券码
seq Number 阶梯序号
业务参数对象

制码请求子订单明细

字段 类型 是否必填 字段意义 备注
saleChannelItemId String 取码方子订单号 小于32个字符
ticketId Long 券id 一个产品对应一个券id,由易百提供。当是普通券活动时,此处必填。
activityId Long 券id 一个组合券活动对应一个活动id,由易百提供。当是组合券活动时,此处必填。ticketId和activityId有且仅有一个上送
commissionDate String 码开启日期 0:当日生效,1:次日生效,-1:暂不激活,未激活状态。validDays填写时该字段必填
validDays Number 相对有效天数 除制码当天开始相应天数结束。validStart、validEnd组合与validDay、commissionDate组合可选其一,若全部填写以相对有效期优先;若全部不填写,码的有效期以后台配置券有效期为准
validStart Number(14) 码有效开始时间 该字段填写时,validEnd必填格式:yyyyMMddHHmmss
validEnd Number(14) 码有效结束时间 该字段填写时,validStart必填格式:yyyyMMddHHmmss
codeNum Number 该券制码数量 最小值:1,最大值:100
makeFundsChannels Array<fundsChannel> 资金渠道

仅针对阶梯价场景(commissionDate 不为-1)

makeFundsChannel Object<makeFundsChannel> 资金渠道

取码方是零售模式时必填

 

业务参数对象

批量制码订单明细返回数据

字段 类型 是否必填 字段意义 备注
returnCode String 请求返回码  
returnMsg String 请求返回信息  
channelOrderId String 取码方订单号  
createDate String 创建日期 yyyyMMdd
createTime String 创建时间 yyyyMMddHHmmss
codeNum int 总制码数量
业务参数对象

制码/制码查询返回数据

业务参数对象

制码/制码查询返回明细

制码订单查询明细返回

字段 类型 是否必填 字段意义 备注
saleChannelItemId String 取码方子订单号  
ticketId String 券id  
ticketName String 券名称  
brandTicketId String 品牌方券id  
thirdSendTicketId String 第三制码方券名称  
ticketUseDescription Object<ticketUseDescription> 码使用描述  
activityId String 活动id  
activityName String 活动名称  
itemResultCode String 子订单返回码  
itemResultMsg String 子订单返回信息  
validStart String 码有效开始时间 yyyyMMddHHmmss
validEnd String 码有效结束时间 yyyyMMddHHmmss
codeDetail List<codeDetail> 码详情
业务参数对象

制码/制码查询返回码明细

订单券码明细返回

字段 类型 是否必填 字段意义 备注
codeURL String(100) 码链接  
code String(100) 串码  
useTimes Integer 码可核销次数  
status String(2) 状态  
statusDesc String(10) 状态描述  
password String 显示codeURL认证密码 此值在某些活动需要,易百会提前告知取码方
业务参数对象

制码撤销返回数据

制码订单返回码数据

字段 类型 是否必填 字段意义 备注
originalChannelOrderId String 取码方订单号  
tradeNo String 易百订单号  
createDate String 撤销日期 yyyyMMdd
createTime String 撤销时间 yyyyMMddHHmmss
totalNum int 本次总撤销券码数量  
tradeStatus String 表示当前订单的所有券是否都撤销成功 A:表示全部成功;P:表示部分成功
voidDetails List<makeVoidResponseVoidDetail> 撤销信息
业务参数对象

制码撤销返回明细

制码订单返回码

字段 类型 是否必填 字段意义 备注
ticketId String 券id  
originalChannelItemId String 原制码子订单号  
voidNum int 子订单中撤销码数量
业务参数对象

码状态更新返回数据

字段 类型 是否必填 字段意义 备注
tradeNo String 易百交易号  
requestId String 请求流水号  
currentStatus String 当前码状态  
statusDesc String 状态说明  
updateDate String 更新日期  
updateTime String 更新时间
业务参数对象

批量码激活同步返回数据

字段 类型 是否必填 字段意义 备注
tradeNo String 系统内部编号  
requestId String 请求流水号  
saleChannelId String 取码方ID  
createDate Number(8) 创建日期  
createTime Number(14) 创建时间  
codeNum int 激活码数量  
resultCode String 批量码激活初步校验结果 00成功,其他失败
resultMsg String 批量码激活初步校验结果
业务参数对象

门店信息

字段 类型 是否必填 字段意义 备注
swift String pos流水号  
tid String 终端号 小于8个字符,有终端限制时必填
mid String 商户号 15个长度
cityId String 城市id,对接时使用ebuy城市id 有城市限制时必须上传
brandId String 品牌id ebuy分配
shopNo String 门店号  
shopName String 门店名称  
manageCompany String 管理公司名称 线下必填
companyId String 管理公司编号 线下必填
业务参数对象

查询时门店信息

业务参数对象

单码返回数据

字段 类型 是否必填 字段意义 备注
tradeNo String 易百订单号  
resultCode String 制码返回码  
resultMsg String 制码返回信息  
saleChannelOrderId String 取码方订单号  
createDate String 创建日期 yyyyMMdd
createTime String 创建时间 yyyyMMddHHmmss
isNotify String 是否通知到用户,通知形式以sendType为依据,当是要求手机短信通知时0表示短信未通知成功,当是要求微信卡包时0表示推送到微信卡包未成功 0:未通知,1:已通知
ticketId String 券id  
validStart String 码有效开始时间 yyyyMMddHHmmss
validEnd String 码有效结束时间 yyyyMMddHHmmss
codeDetail Object<codeDetail> 码详情
业务参数对象

券码核销返回数据

字段 类型 是否必填 字段意义 备注
cashTotalAmount Number 原样返回
code String 原样返回
ticketId String 券ID
ticketName String 券名称
ticketType String 券类型 cashCoupon(代金券),merchandiseCoupon(商品券),discountCoupon(折扣券),fullReduceCoupon(满减券),buyGetCoupon(买赠券),redeemCoupon(兑换券)
activityNo String 活动编号 在收银一体化时收银POS可以用此值来区别活动入账
activityName String 表示券所属活动
faceValue Number 劵面值 单位分
thirdActivityId String 第三方活动id
returnCashParam JSONObject 扩展字段 目前适用于收银机
printData String 此值仅在易百POS上核销时需要用到
fundsChannel Object<fundsChannel> 资金渠道 仅在收银一体化时用到
goodsDetail Object<goodsDetail> 折抵产品明细 仅在收银一体化时用到
redeemCodeDetail Object<redeemCodeDetail> 兑换码明细 当上送的码为兑换码类型时,核销返回兑换后的真实串码信息
orderRemark JSONString 制码请求上送内容原样下发
orderId String 销售渠道id


业务参数对象

券码核销查询返回数据

字段 类型 是否必填 字段意义 备注
returnCode String 单个串码核销查询结果 00:成功,其他:失败。当查询结果为成功时才会有下列参数返回
returnMsg String 返回结果  
verifyReturnCode String 原核销中该码核销结果 00:成功,其他:失败
verifyReturnMsg String 原核销中该码核销结果  
code String 串码号  
saleChannelOrderId String 制码订单号  
cashTotalAmount String 收音机上送总金额 单位:分
ticketId String 券ID  
ticketName String 券产品名称  
ticketShortName String 券产品短名称  
ebuyActivityProduceId String 易百活动产品id  
ebuyActivityProduceNo String 易百活动产品编号  
activityId String 活动id  
activityName String 表示券所属活动  
faceValue String 劵面值 单位:分
thirdActivityId String 第三方活动id  
returnCashParam JSONObject 扩展字段 目前适用于收银机
printData String 此值仅在易百POS上核销时需要用到  
fundsChannel Object<fundsChannel> 资金渠道 仅在收银一体化时用到
goodsDetail Object<goodsDetail> 折抵产品明细 仅在收银一体化时用到
redeemCodeDetail Object<redeemCodeDetail> 兑换码明细 当上送的码为兑换码类型时,核销返回兑换后的真实串码信息
业务参数对象

预核销返回数据

预核销明细

字段 类型 是否必填 字段意义 备注
code String 劵码  
codeValidStart String 券码有效期开始时间  
codeValidEnd String 劵码有效期结束时间  
saleChannelCode String 取码方编号  
saleChannelName String 取码方名称  
status String 预核销结果 00成功,其他失败
discountAmount String 折抵金额 单位:分
ticketRemark String 券产品备注信息  
ticketType String 券类型 cacheCoupon(代金券),merchandiseCoupon(商品券),discountCoupon(折扣券),fullReduceCoupon(满减券),buyGetCoupon(买赠券),redeemCoupon(兑换券)
fineGrainedLimit Object<fineGrainedLimit> 最细粒度规则限制数量  
ticketUseDescription Object<ticketUseDescription> 券使用描述
业务参数对象

券码批量核销明细

字段 类型 是否必填 字段意义 备注
code String 原样返回  
saleChannelCode String 取码方编号  
saleChannelName String 取码方名称  
ticketId String 券ID  
ticketName String 券名称  
activityNo String 活动编号  
activityName String 表示券所属活动  
status String 核销结果 00成功,其他失败
statusDesc String 核销结果描述 00成功,其他失败
fundsChannel Object<fundsChannel> 金额  
faceValue Number 劵面值 单位分
extendParam Object 扩展字段  
orderRemark JSONString 制码请求上送内容原样下发  
业务参数对象

批量核销撤销明细

券码批量核销撤销明细

字段 类型 是否必填 字段意义 备注
code String 原样返回  
status String 00撤销成功,其他失败  
amount String 金额  
ticketName String 券名称  
statusDesc String 撤销结果描述
业务参数对象

取码方可用券查询返回数据

字段 类型 是否必填 字段意义 备注
ticketId String 券id 组合券活动时,此处非必填
ticketName String 券名称 组合券活动时,此处非必填
thirdActivityId String 第三方活动id  
activityId String 活动id  
activityName int 活动名称  
activityType int 活动类型 0:普通券活动,1:组合券活动
activityValidStart String 活动开始时间 yyyyMMddHHmmss
activityValidEnd String 活动结束时间 yyyyMMddHHmmss
codeValidStart String 券所制码有效开始时间 yyyyMMddHHmmss
codeValidEnd String 券所制码有效结束时间 yyyyMMddHHmmss
commissionDate String 券启用日期 0:当日生效,1:次日生效
codeValidDay int 相对有效天数  
createDate String 券创建日期 yyyyMMdd
createTime String 券创建时间 yyyyMMddHHmmss
serviceProvider String 系统服务提供商  
sendChannelName String 发码方名称  
saleChannelName String 取码方名称  
brandNames List 品牌名称 组合券活动时,可能存在多个品牌
activityUseDescription Object<activityUseDescription> 活动使用说明  
ticketUseDescription Object<ticketUseDescription> 券使用说明
业务参数对象

ESB制码订单明细

字段 类型 是否必填 字段意义 备注
saleChannelItemId String 取码方子订单号 小于32个字符
tradeItemNo String 易百子订单号 小于32个字符
ticketId Long 券id 若制码方可根据易百券id进行制码则上传
thirdProductId Long 制码方产品id 若制码方只能根据制码方产品id进行制码则上传,存于券模板中
codeNum Number 该产品制码数量 最小值:1,最大值:100。同步制码时只能填1
useTimes Number 单码可兑换次数  
validStart Number(14) 码有效开始时间 该字段填写时,validEnd必填格式:yyyyMMddHHmmss
validEnd Number(14) 码有效结束时间 该字段填写时,validStart必填格式:yyyyMMddHHmmss
faceValue Number 面值 券模板中配置的面值
netValue Number 净值 制码资金渠道中的totalAmount,若取码方未上送则取券模板中默认的净值
needThirdQrcode int 是否需要第三方二维码链接 0:否,1:是
needThirdNotify int 是否需要第三方执行制码通知 0:否,1:是
notifyType <notifyType> 通知类型  
itemEncryptKey String 报文加密密钥 3DES加密时为密钥,公私钥对加密时为公钥字符串。部分制码方根据不同活动配置不同加密密钥
业务参数对象

ESB制码订单返回码数据

字段 类型 是否必填 字段意义 备注
saleChannelId String 取码方id 需原样返回
sendChannelId String 制码方id 需原样返回
sendChannelOrderId String(64) 制码方订单号 需原样返回
createDate String 创建日期 yyyyMMdd
createTime String 创建时间 yyyyMMddHHmmss
isNotify String 是否通知到用户,通知形式以sendType为依据,当是要求手机短信通知时0表示短信未通知成功,当是要求微信卡包时0表示推送到微信卡包未成功 0:未通知,1:已通知
codeNum int 总制码数量  
items List<esbMakeOrderResponseCodes> 码信息
业务参数对象

ESB制码返回明细

字段 类型 是否必填 字段意义 备注
saleChannelItemId String 取码方子订单号 需原样返回
tradeItemNo String 易百子订单号 小于32个字符
ticketId Long 券id 若制码方可根据易百券id进行制码则上传
thirdProductId Long 制码方产品id 若制码方只能根据制码方产品id进行制码则上传,存于券模板中
validStart Number(14) 码有效开始时间 该字段填写时,validEnd必填格式:yyyyMMddHHmmss
validEnd Number(14) 码有效结束时间 该字段填写时,validStart必填格式:yyyyMMddHHmmss
itemResultCode String 子订单返回码  
itemResultMsg String 子订单返回信息  
codeDetail List<codeDetail> 码详情
业务参数对象

活动使用说明

字段 类型 是否必填 字段意义 备注
useDescription String 使用说明
业务参数对象

券使用说明

字段 类型 是否必填 字段意义 备注
ticketPicture String 券图片  
useThreshold Long 优惠门槛 消费满*元
discountDescription String 优惠说明  
useDescription String 使用说明  
useRule String 使用规则
业务参数对象

最细粒度规则限制数量

字段 类型 是否必填 字段意义 备注
grainedKey String 粒度key day,week,mouth,year,total
limitMaxValue Number 最大限制值 该粒度下总可使用次数
current Number 当前已使用次数 该粒度下已使用次数,包含本次核销
业务参数对象

根据查询码获取手机号返回数据

字段 类型 是否必填 字段意义 备注
tradeNo String 易百交易编号  
mobilePhone String 用户手机号 tag为01时
jwt String jwt    
dynamicCode String 动态码 tag为02时
业务参数对象

动态码发送手机验证码返回数据

字段 类型 是否必填 字段意义 备注
tradeNo String 易百交易编号
业务参数对象

校验验证码返回数据

字段 类型 是否必填 字段意义 备注
tradeNo String 易百交易编号  
dynamicCode String 动态码  
jwt String jwt  
业务参数对象

获取动态码返回数据

字段 类型 是否必填 字段意义 备注
tradeNo String 易百交易编号  
requestId String 请求流水号原样返回  
dynamicCodeList List 动态码列表  
createDate String 创建日期 yyyyMMdd
createTime String 创建时间 yyyyMMddHHmmss
业务参数对象

码更新回调数据

券码批量更新回调返回明细

字段 类型 是否必填 字段意义 备注
searchCode String 查询码  
codeSecret String 密文码  
codeStatus String 券状态  
statusDesc String 状态描述  
returnCode String 返回状态  
returnMsg String 返回信息  
useTimes int 码可使用次数  
validStart String 码有效期开始时间  
validEnd String 码有效期结束时间  
ticketId String 券id  
activityId String 活动id  
saleChannelId String 取码方id  
sendChannelId String 制码方id  
业务参数对象

批量码更新返回数据

券码批量更新返回明细

字段 类型 是否必填 字段意义 备注
tradeNo String 系统内部编号  
requestId String 请求流水号  
codeTotalNum int 待更新码数量
业务参数对象

批量码更新回调数据

券码批量更新回调返回明细

字段 类型 是否必填 字段意义 备注
tradeNo String 系统内部编号  
requestId String 请求流水号  
totalCodeNum int 总数量  
successCodeNum int 码更新成功数量  
codeUpdateResultArray List<codeUpdateCallbackData> 码更新结果集
业务参数对象

串码通知到用户微信卡包接口同步返回报文

字段 类型 是否必填 字段意义 备注
tradeNo String 易百交易编号  
requestId String 原样下发
业务参数对象

第三方异步制码通知的券码信息

字段 类型 是否必填 字段意义 备注
code String 券码  
codeMask String 电子券掩码  
codeUrl String 短链  
userTimes Integer 使用次数  
codeStatus String 券码状态  
validStart Date 有效期开始时间  
validEnd Date 有效期结束时间  
业务参数对象

激活信息

字段 类型 是否必填 字段意义 备注
purchaseOrderId String 用户购买订单号  
业务参数对象

核销备注描述

字段 类型 是否必填 字段意义 备注
oms String OMS订单号 OMS订单号
业务参数对象

二维码支付或兑换 extendData

字段 类型 是否必填 字段意义 备注
shopNo
String 门店号
voucherNo
String 小票号
posSerialNo
String pos机号  

业务参数对象

券码历史记录扩展字段

字段 类型 是否必填 字段意义 备注
shopNo
String 门店号
voucherNo
String 小票号
posSerialNo
String pos机号  
oms String OMS订单号 OMS订单号

接入说明

本文档展示了如何通过http请求,完成于易百电子凭证系统完成对接。 本文档主要面向的读者为各有需求接入电子凭证的,有一定开发能力的技术人员。

本文档中必填字段仅限于易百自制码,第三方制码可能存在部分字段无法返回。在对接时可与易百技术人员沟通

配置密钥

取码对接方对接时,需跟业务同事沟通后把公钥发送到指定邮箱。易百电子凭证系统会分配app_id, version, saleChannelId, 易百电子凭证系统公钥等信息

开发者调用接口前需自行生成RSA密钥,RSA密钥包含:

RSA私钥与公钥生成方法

1.运行 openssl
CMD> openssl
2.生成明文RSA私钥
OpenSSL> genrsa -out rsa_private_key.pem 2048
3.生成明文RSA公钥
OpenSSL> rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
4.如果是Java语言,私钥需要转成PKCS8格式
OpenSSL> pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -out rsa_private_key.pkcs8 -nocrypt

生成密钥后在电子凭证管理中心进行密钥配置,配置完成后可以获取:

第三步:搭建和配置开发环境

1.调用方法
内容 说明
通讯方式 采用 HTTPS 方式访问
提交方法 POST (application/json)
交互数据格式 JSON
字符编码 UTF-8
签名算法 SHA256WithRSA
签名验证 提交和返回数据都需要验证签名
2.报文结构

请求报文和返回报文都采用如下的报文结构

序号 参数 类型 参考数据 参数说明 备注
1 action String MakeCode 交易类型 具体接口有详细说明
2 app_id String 2014072300007148 应用ID 开放平台分配给开发者的应用ID
3 biz_content String BASE64 报文内容BASE64 具体接口中有详细说明,本域需要采用BASE64编码
4 timestamp String 1483372334 Unix时间戳 单位:秒
5 version String 20171212 版本号 用于兼容不同的报文协议对应后台不同的处理方式
6 sign String 7E65B60DCFA42B04 数据签名 详见:签名算法

注意事项

 

JSON
{
    "traceNo": "99000009100010101732123",
    "originalTraceNo": "99000009100010101732124"
}

 

ewogICAgICAgICAidHJhY2VObyI6ICI5OTAwMDAwOTEwMDAxMDEwMTczMjEyMyIsCiAgICAgICAgICJvcmlnaW5hbFRyYWNlTm8iOiAiOTkwMDAwMDkxMDAwMTAxMDE3MzIxMjQiCiAgICAgfQ==

报文举例

 

JSON
{
     "action" : "efuli.cashvoucher.send",
     "app_id" : "2014072300007148",
     "biz_content" : "ewogICAgICAgICAidHJhY2VObyI6ICI5OTAwMDAwOTEwMDAxMDEwMTczMjEyMyIsCiAgICAgICAgICJvcmlnaW5hbFRyYWNlTm8iOiAiOTkwMDAwMDkxMDAwMTAxMDE3MzIxMjQiCiAgICAgfQ==",
     "timestamp" : "1483372334",
     "version" : "20171212",
     "sign" : "7E65B60DCFA42B04"
 }

 

3.签名算法

a.筛选并排序

获取所有请求参数,不包括字节类型参数,如文件、字节流,剔除sign字段,剔除值为空的参数,并按照第一个字符的键值ASCII码递增排序(字母升序排序),如果遇到相同字符则按照第二个字符的键值ASCII码递增排序,以此类推。

b.拼接

将排序后的参数与其对应值,组合成“参数=参数值”的格式,并且把这些参数用&字符连接起来,此时生成的字符串为待签名字符串。

c.签名值计算

使用各自语言对应的SHA256WithRSA签名函数利用应用私钥(APP_PRIVATE_KEY)对待签名字符串进行签名,并进行Base64编码。

示例报文

 {
     "action" : "efuli.cashvoucher.send",
     "app_id" : "102410000",
     "biz_content" : "ewogICAgICAgICAidHJhY2VObyI6ICI5OTAwMDAwOTEwMDAxMDEwMTczMjEyMyIsCiAgICAgICAgICJvcmlnaW5hbFRyYWNlTm8iOiAiOTkwMDAwMDkxMDAwMTAxMDE3MzIxMjQiCiAgICAgfQ==",
     "timestamp" : "1483372334",
     "version" : "20171212",
     "sign" : "7E65B60DCFA42B04"
 }

应用私钥(APP_PRIVATE_KEY)

-----BEGIN RSA PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCdR0+PdnzkvvaNbSEp5Q8RpaelnrHu4msHAPiw1/DJXFPucoEPqPmDAq4IoaW02/mbvHQGr8d/g/g+cbCqUVctl8ygigTvlOAsoWJWrd76gk9lK+SsQBx3BN1pMbPADAljtFS3oJw10MjCg/wIgmwWaqdCRB1QGwJzw3HnripbHr59BKMv/VYPvgDJx+ohQrfLd9fysbJRcsQKqCs72jxD8U9KHO87upvpZtJT2QYdVrntsWL1UUxfyEIKmZy2Lf3UZvqKC4sahgH6pQhCMIhwBWm06FyktRji1ewNfF6zIpkCla/HvJzfqXaqhouXJm2qgRjJ/crfTjONdd/9iuNlAgMBAAECggEAS4GbwY0p4ouHRFha7okIVfmIZautUrkilscxnXzeHV2U8cnJCiKePvY/ZOdt7UkaKVks/rTO+vn5aMkd/nZ0evAAjiYUvoxjnymPU3u/q9Z5lWGgM83HnKAaR9FTsWRV8ab2cP3LYM6uQywoCFHM4GotiFO5GucMo1T2Tzq/HOUAjMzQASQ0ywaANZvNoZDw6ScMPUgGnYnHWbs34l7F2abyKyDiNo7sPtMtRpFYi+go+S7dygMX0G1IFoCIr4X2HNu/4e3XIFvJjzoUhCF/byDcM992LvcWVgM3Ke/F1oBm+bCFit67hN6mxoi2SEARdQGnBysvVo1FLPHKZ60FVQKBgQDidFk8hq8YKEvcjqPSJSd8Oo30zeyWf0R/QNLQOAIqYKCJAcAiHDcYMx5clQQxjFTYXriY+B1J3he6w3+5NStZqL1o1lcy5w7dhcVFXT1yn2KwUiO6YSJ25KeJHvXtDH66WGIQJMmbg90J2u4HRJxYNODmeVdS1seK5qaL0uxs6wKBgQCxzHbdbkoiJgFd/c7BdTKnZh2h6x7SsX44IcbTqKsx7zA61ogoegHaKB4yq3xaR8Gm9uazo5SCtbjS0bO5iQLrv8oLUDaNm5Ckm2ENk/M+TB0Hq24eFytiwUAS6FmdCncjq4xb2x8mqOQQiGvlyD91Na4HRBwxP16Wqwhz3Nac7wKBgAY1lIDRXJm3+SSKELnhZOzGGkBdKSCTSsiGeYFWF9Ebpys6jg8hYO1b8XguadgF9gmcx0kCfKMa4OGxHJ5yc8bYlqD6R5fQuBqg4WDehqHO9wDIr8wbf7ts158t5yZh0lO/uqigqZqHCheMFjzCx9qvUH9hUmCmHQCVBHoPBYaTAoGBAJcixAPURaYjglQAdOlUE3vivNuvvqLBCBb090tifCvVM71AMbuegsaMBadyyCECECY6iL85FPvLN1HVuh3DzrzRahEV3VmgXGLgRa7CDintj1u+qLthXJr0xN+NrOdmRwIGSCio6iD1vfAj1vwbrX2X5Nf+WKywPlp7BpNerPv3AoGALv4iJpOJVAW3Pmuvmc1a3cAsAvv0DGjiGOXn+IyBdX9tJtKppVPEwElibNAltvvgWX++5ctYD2SXNQLV56rkZCmauXP2gTPG3tCutH4jNiNIBUCfDXlt9DDyQAe0KfRFemzIa5rTWA7wRNsVTCm3n4ZqPlKfMC4HmOGU2hgN3LY=
-----END RSA PRIVATE KEY-----

拼接报文参数

 

String
List
action=efuli.cashvoucher.send&app_id=2014072300007148&biz_content=ewogICAgICAgICAidHJhY2VObyI6ICI5OTAwMDAwOTEwMDAxMDEwMTczMjEyMyIsCiAgICAgICAgICJvcmlnaW5hbFRyYWNlTm8iOiAiOTkwMDAwMDkxMDAwMTAxMDE3MzIxMjQiCiAgICAgfQ==&timestamp=1483372334&version=20171212

 

签名值计算

gUTdEB0lAS/ECkP98weSHf6k31Fmd4hcw0zPG8ewbMTfDFSubKlel/1C16upb2AHzN873HMwUlkcTg7ZuN92KDIkfsbINd2IwVY2tWMvKt5O8gqC2a8XbS25ZObUlLK5zZmU7mQ/DLbyY+EAhkYdGnwskloJkydi2zmLv99xT5G01yXBLSNiTrPBTsc2OhBkA44kknnok0x+hS4HfcgQwGPMG4y+V5aT1bhPDypwdbfAg+EN/5XoSECsIcsvBirdk+BGPjBIuwHHF+Hir/3E3i20ImtlowBc6jwh5qFOVqGN/w2UEPfg6xJxHyW04FBipt6mw7huD4PA4pA4qZRnsg==

签名Demo Java版

点击下载 signdemo.zip

配置参数对象

配置参数对象

券模板配置项

券模板配置

字段 类型 是否必填 字段意义 备注
makeNotifyConf String 制码通知配置 00:不通知,01:通知用户
verifyNotifyConf String 核销通知配置 00:不通知,01:通知取码方,02:通知制码方,03:通知用户(多选时以"&"分隔,如01&02&03)
voidNotifyConf String 撤销通知配置 00:不通知,01:通知取码方,02:通知制码方,03:通知用户(多选时以"&"分隔,如01&02&03)
smsMakeNotifySrc String 制码通知类型 制码短信通道
smsVerifyNotifySrc String 制码通知类型 核销短信通道
makeNotify2UserTemplate String 制码通知用户模板  
verifyNotify2UserTemplate String 核销通知用户模板  
printTemplate String 小票打印模板  
thirdCodeMap String 收银对接方编号  
paymentParam String 收银机支付参数  
needEbuyQrcode String 是否需要易百二维码 0:是,1:否
needThirdQrcode String 是否需要第三方二维码 0:是,1:否
needBarcode String 是否需要条形码 0:是,1:否
connector String 合成码时指定查询码与验证码之间的连接符,默认“-”  
productType String 产品类型 codeType为纸质码时使用
productSize String 产品规格 codeType为纸质码时使用
codeType String 所制码类型 01:原始码,02:合成码,03:纸质码
配置参数对象

券配置项

字段 类型 是否必填 字段意义 备注
batchMakeNotifyConf String 批量制码接口通知配置 00:不通知,01:通知用户
makeNotifyConf String 同步实时制码通知配置 00:不通知,01:通知用户
verifyNotifyConf String 核销通知配置 00:不通知,01:通知取码方,02:通知制码方,03:通知用户(多选时以"&"分隔,如01&02&03)
voidNotifyConf String 撤销通知配置 00:不通知,01:通知取码方,02:通知制码方,03:通知用户(多选时以"&"分隔,如01&02&03)
smsMakeNotifySrc String 制码通知类型 制码短信通道
smsVerifyNotifySrc String 制码通知类型 核销短信通道
makeNotify2UserTemplate String 制码通知用户模板  
verifyNotify2UserTemplate String 核销通知用户模板  
verifyVoidNotify2UserTemplate String 核销撤销通知用户模板  
printTemplate String 小票打印模板  
thirdCodeMap String 收银对接方编号  
paymentParam String 收银机支付参数  
needEbuyQrcode String 是否需要易百二维码 0:否,1:是
needThirdQrcode String 是否需要第三方二维码 0:否,1:是
needBarcode String 是否需要条形码 0:否,1:是
onlyAllowOneVerify String 一笔订单是否只能优惠一次 N:否(默认)Y:是
returnBuyProduct String 是否下发参与活动的买产品 N:否(默认)Y:是
needDynamicCode String 是否需要动态码 N:否(默认)Y:是
配置参数对象

发码方配置项

制码渠道配置

字段 类型 是否必填 字段意义 备注
makeCodeUrl String 第三方制码URL  
needRealTimeVerify String 是否需要第三方接口实时核销 0:是,1:否
forwardLink String 券使用跳转链接
配置参数对象

取码方配置项

销售渠道配置

字段 类型 是否必填 字段意义 备注
messageFormat String 与取码方对接时报文格式 ebuy:易百标准格式,third:取码方报文格式
needRealTimeVerify String 是否需要实时调用核销接口 Y:是,N:否
verifyUrl String 实时调用核销接口URL  
needRealTimeVerifyVoid String 是否需要实时调用核销撤销接口 Y:是,N:否
verifyVoidUrl String 实时调用核销撤销接口URL  
makeCallBackUrl String 异步制码时的回调接口  
verifyCallBackUrl String 核销时的回调接口  
voidVerifyCallBackUrl String 核销撤销时的回调接口  
signKey String 签名key  
shortLinkModel String 取码方短链获取模式 00:默认模式,易百自制短链。01:自定义模式1,将码拼接到指定长链后,转换成短链。自定义模式2:将码做3DES加密,转成BaseString后拼接到指定长链,再转换成短链
longLinkTemplate String 取码方长链模板 短链获取模式01、02时必填
tripleDESKey String 3DES加密key 短链获取模式02时必填
activateOrg String 取码方对应的激活机构 用于对账表等有需要激活机构时
activateShopNo String 取码方对应的激活门店 用于对账表等有需要激活门店时

线上交易类接口


线上交易类接口

同步单品发码(单个&批量发码与激活)

接口用途

接口说明

action

请求参数,CHANNEL===>WHALE

字段 类型 是否必填 字段意义 备注
saleChannelOrderId String 渠道制码订单id 最长32位,当上送相同订单号时返回上一次成功信息,如果上一次请码失败,则本次会重新生成码
requestId String 请求流水号 最长32位,用于标识唯一一笔交易
remark JSONString 订单备注信息 最长200位,订单查询时原样返回
notifyType Object<notifyType> 制码通知类型  
item Object<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===>CHANNEL

字段 类型 是否必填 字段意义 备注
returnCode String 请求返回码  
returnMsg String 请求返回信息  
data Object<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 销售渠道和活动产品权限不匹配
线上交易类接口

发码订单查询

接口用途

接口说明

action

请求参数,CHANNEL===>WHALE

字段 类型 是否必填 字段意义 备注
originalChannelOrderId String 原取码方制码订单id 小于64个字符
requestId String 请求流水号 32个字符,用于标识唯一一笔交易

请求报文举例

{
    "originalChannelOrderId": "20180912162026",
    "requestId":"20180912162026"
}

返回参数,WHALE===>CHANNEL

字段 类型 是否必填 字段意义 备注
returnCode String 请求返回码  
returnMsg String 请求返回信息  
data Object<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

请求参数,CHANNEL===>WHALE

字段 类型 是否必填 字段意义 备注
requestId String 请求流水号 32个字符,用于标识唯一一笔交易
code String 码号 小于22个字符
optTag String(2) 操作分类 01:作废

请求报文举例

{
    "requestId": "20181019112535100000000000000008",
    "code": "1021242013780905000",
    "optTag":"01"
}

返回参数,WHALE===>CHANNEL

字段 类型 是否必填 字段意义 备注
returnCode String 请求返回码
returnMsg String 请求返回信息
data Object<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

请求参数,CHANNEL===>WHALE

字段 类型 是否必填 字段意义 备注
requestId String 请求流水号 32个字符,用于标识唯一一笔交易
code String 码号 小于22个字符
optTag String(2) 操作分类 02:冻结

请求报文举例

{
    "channelOrderId": "20180912162026",
    "requestId": "20181019112535100000000000000008",
    "code": "1021242013780905000",
    "optTag":"02"
}

返回参数,WHALE===>CHANNEL

字段 类型 是否必填 字段意义 备注
returnCode String 请求返回码  
returnMsg String 请求返回信息  
data Object<statusUpdateData> 码状态更新返回数据

返回报文举例

{
    "returnCode": "00",
    "returnMsg": "SUCCESS",
    "data": {
        "tradeNo": "9e22d9a9e532435db77bccdfd8a74ee5",
        "requestId": "20181019112535100000000000000008",
        "currentStatus": "01",
        "statusDesc": "已作废",
        "updateDate":"20181019",
        "updateTime":"20181019112535"
    }
}
线上交易类接口

码解冻接口

接口用途

接口说明

action

请求参数,CHANNEL===>WHALE

字段 类型 是否必填 字段意义 备注
requestId String 请求流水号 32个字符,用于标识唯一一笔交易
code String 码号 小于22个字符
optTag String(2) 操作分类 03:解冻

请求报文举例

{
    "channelOrderId": "20180912162026",
    "requestId": "20181019112535100000000000000008",
    "code": "1021242013780905000",
    "optTag":"03"
}

返回参数,WHALE===>CHANNEL

字段 类型 是否必填 字段意义 备注
returnCode String 请求返回码  
returnMsg String 请求返回信息  
data Object<statusUpdateData> 码状态更新返回数据

返回报文举例

{
    "returnCode": "00",
    "returnMsg": "SUCCESS",
    "data": {
        "tradeNo": "9e22d9a9e532435db77bccdfd8a74ee5",
        "requestId": "20181019112535100000000000000008",
        "currentStatus": "01",
        "statusDesc": "已作废",
        "updateDate":"20181019",
        "updateTime":"20181019112535"
    }
}
线上交易类接口

码激活接口

接口用途

接口说明

action

请求参数,CHANNEL===>WHALE

字段 类型 是否必填 字段意义 备注
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> 激活通知类型
makeFundsChannels Array<fundsChannel> 资金渠道 针对阶梯价场景为必填
makeFundsChannel Object<makeFundsChannel> 资金渠道 当需要在对账报表中体现时必填
optTag String(2) 操作分类 04:激活

请求报文举例

{
    "requestId": "20181019112535100000000000000008",
    "code": "1021242013780905000",
    "codeValidDays":9,
    "purchaseOrderNum":"20191119192700123",
    "optTag":"04"
}

返回参数,WHALE===>CHANNEL

字段 类型 是否必填 字段意义 备注
returnCode String 请求返回码
returnMsg String 请求返回信息
data Object<statusUpdateData> 码状态更新返回数据

返回报文举例

{
    "returnCode": "00",
    "returnMsg": "SUCCESS",
    "data": {
        "tradeNo": "9e22d9a9e532435db77bccdfd8a74ee5",
        "requestId": "20181019112535100000000000000008",
        "currentStatus": "00",
        "statusDesc": "未使用",
        "updateDate":"20181019",
        "updateTime":"20181019112535"
    }
}

失败返回报文举例

{
    "returnCode": "32",
    "returnMsg": "流水号重复,请调用查询接口",
    "data": {}
}
线上交易类接口

同步批量码作废

接口用途

接口说明

action

请求参数,CHANNEL===>WHALE

字段 类型 是否必填 字段意义 备注
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===>CHANNEL

字段 类型 是否必填 字段意义 备注
returnCode String 请求返回码  
returnMsg String 请求返回信息  
data Object<statusUpdateCallbackData> 码状态更新返回数据

回调返回报文举例

{
    "returnCode": "00",
    "returnMsg": "SUCCESS",
    "data": {
        "tradeNo": "9e22d9a9e532435db77bccdfd8a74ee5",
        "requestId": "20181019112535100000000000000008",
        "totalCodeNum": 1,
        "successCodeNum": 1,
        "codeArray": [{
            "codeId": "1212431432",
            "searchCode": "100***1234",
            "codeSecret": "100213321414112234",
            ...
            }],
    }
}

 

 

 

 

 

 

 

线上交易类接口

码信息更新接口

接口用途

接口说明

action

请求参数,CHANNEL===>WHALE

字段 类型 字段意义 备注
requestId String 请求流水号 32个字符,用于标识唯一一笔交易
code String 码号  
updateOpts <updateOpt> 码明细更新操作

请求报文举例

{
    "requestId": "20180912162026",
    "code": "1012123342335432145",
    "updateOpts": {
        "updatePurchaseTime": "20181103105501",
        "updateMakeNotifyType": {
            "mobilePhone": "13510121314"
        },
        "updateMerchantRealAmount": 1200
    }
}

返回参数,WHALE===>CHANNEL

字段 类型 是否必填 字段意义 备注
returnCode String 请求返回码  
returnMsg String 请求返回信息  
data Object<statusUpdateData> 码状态更新返回数据

返回报文举例

{
    "returnCode": "00",
    "returnMsg": "SUCCESS",
    "data": {
        "tradeNo": "9e22d9a9e532435db77bccdfd8a74ee5",
        "requestId": "20180912162026",
        "currentStatus": "00",
        "statusDesc":"未使用",
        "updateDate":"20181019",
        "updateTime":"20181019112535"
    }
}
线上交易类接口

码信息查询

接口用途

接口说明

action

请求参数,CHANNEL===>WHALE

字段 类型 是否必填 字段意义 备注
requestId String 请求流水号 32个字符,用于标识唯一一笔交易
codes List 验码集合 最大不超过20
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 未生效 当制码时选择次日生效,核销时会返回该状态
08 不能退款 仅核销场景-不支持核销撤销(根据业务场景配置是否支持隔日和当日核销撤销)
09 券不存在 券码不存在(券码查询、核销、核销撤销)
21 电子凭证不可用

券码不在有效期

35 码配置异常
51 改码不存在制码方
97 报文错误 接口调用参数校验不通过
C2 商户无权限 券码查询和核销 权限校验不通过
线上交易类接口

批量码核销

接口用途

接口说明

action

请求参数,CHANNEL===>WHALE

字段 类型 是否必填 字段意义 备注
verifyScene String 交易场景.offline线下,online线上 线上也可以传抖音、美团等
codes List 码号数组  
verifyCodes List<codeArr> 指定券码阶梯价序号
isProductCheck String 是否校验订单产品规则 是Y,否N
requestId String 请求流水号确保永久唯一性 32位长度
refNo String 系统参考号 12位长度
cashierTransNo String 收银机流水号 最长64位长度
storeInfo Object<storeInfo> 此信息为线下门店核销时上送 线下核销必填
cashTotalAmount Number 订单总金额 单位:分
goodsDetail List<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"
        }
    ],
    "remark": {
        "oms": "test001"
    }
}

返回参数,WHALE===>CHANNEL

字段 类型 是否必填 字段意义 备注
returnCode String 请求返回码 返回码32时,请调用单码核销查询接口CodeVerifyQuery,确认核销结果
returnMsg String 请求返回信息  
data/checkResult Object<data/checkResult> 券码核销信息明细返回

返回报文举例

{
    "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 其他异常
线上交易类接口

批量码核销查询

接口用途

接口说明

action

请求参数,CHANNEL===>WHALE

字段 类型 是否必填 字段意义 备注
requestId String 请求流水号 32个字符,用于标识唯一一笔交易
originalRequestId String 原核销请求流水号 32个字符
originalDate String 原交易日期 传入需要查询的原交易日期,不传默认为当天格式为yyyyMMdd

请求报文举例

{
    "requestId": "20180905000",
    "originalRequestId":"1021867639235435",
    "originalDate": "20170912"
}

返回参数,WHALE===>CHANNEL

字段 类型 是否必填 字段意义 备注
returnCode String 请求返回码  
returnMsg String 请求返回信息  
requestId String 原样返回  
verifyRemark String 核销备注信息 核销接口上送原样返回
data/verifyQueryResponse Object<data/verifyQueryResponse> 券码核销订单明细返回  

返回报文举例

{
    "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

请求参数,CHANNEL===>WHALE

字段 类型 是否必填 字段意义 备注
requestId String 请求流水号 小于32个字符
originalRequestId String 原核销请求流水号 32个字符,用于标识唯一一笔交易
codes List 原订单中批量核销撤销的码 此字段不填默认整订单撤销
voidDate String 原交易时间,默认当天 格式:YYYYMMDD
isAtomicity String 是否需要支持原子性,原交易中码核销撤销要么全部成功要么全部失败 Y:是,N:否(默认)

请求报文举例

{
    "requestId": "10000000000000000000001",
    "originalRequestId":"10000000000000000000002"
}

返回参数,WHALE===>CHANNEL

字段 类型 是否必填 字段意义 备注
returnCode String 请求返回码 返回码32时,请调用单码核销查询接口CodeVerifyQuery,确认核销结果
returnMsg String 请求返回信息  
verifyRemark String 核销备注信息 核销接口上送原样返回
data/voidResult Object<data/voidResult> 券码核销信息明细返回  

返回报文举例

{
    "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 码配置异常

运营管理类接口


运营管理类接口

创建券产品

[yapi_interface]36408[/yapi_interface]

运营管理类接口

变更券产品

[yapi_interface]36474[/yapi_interface]

运营管理类接口

券产品详情查询

[yapi_interface]36426[/yapi_interface]

运营管理类接口

创建批次

[yapi_interface]36432[/yapi_interface]

运营管理类接口

批次编辑

[yapi_interface]36468[/yapi_interface]

运营管理类接口

批次详情查询

[yapi_interface]36444[/yapi_interface]

运营管理类接口

券码操作记录查询

接口签名参照

文档入口

接口用途

action

请求参数,中间件===>易百后台

字段 类型 是否必填 字段意义 备注
code String 券码 券号code

请求报文举例

{
    "action": "_queryCodeDetailList",
    "appId": "ebuywha102410042",
    "content": "{\"code\":\"1006251009100030079=o6h7zgg4\"}",
    "headers": {
        "paas-version": "1.1.0"
    },
    "lang": "zh-CN",
    "signType": "sha256",
    "timestamp": 1759996455238,
    "uuid": "20251009-302a8467885349caba2dec5ad31bcc8e"
}

返回参数,易百后台===>中件间

参数名称 类型 必填 默认值 备注 其他信息
uuid string   请求序列号 最大长度:50
最小长度:1
Mock:@now('yyyyMMdd')-@string('lower',32)
success boolean   交易成功与否 Mock:@boolean
action string   交易类型 最大长度:50
最小长度:1
Mock:addEcouponProduct
timestamp number   返回时间戳 Mock:@timestamp
errorCode string   错误码 最大长度:50
Mock:@word
errorMessage string   错误描述 最大长度:50
Mock:@csentence
signType string   签名类型 最大长度:20
Mock:sha256
sign string   签名值 最大长度:500
Mock:@natural
content object   返回报文  
  returnData List<voucherPkg>      

返回报文举例(请求中 businessType 值为 12 时)

{
    "success": true,
    "errorMessage": "",
    "sign": "47864d480e95f53e9a6b7de0bd78f18e30eee2428ef04558779660104504a5c7",
    "action": "_queryCodeDetailList",
    "errorCode": "",
    "signType": "sha256",
    "uuid": "20250926-1d9de05de6834682bccba7ab5d704ca1",
    "content": {
        "returnData": [
            {
                "dateTime": "20250926161612",
                "returnCode": "00",
                "returnMsg": "操作成功",
                "code": "1006250926800024350=TdPPn8Bf",
                "mid": "",
                "shopName": "",
                "type": "1",
                "shopNo": "",
                "tid": "",
                "swift": ""
            },
            {
                "dateTime": "20250926161616",
                "returnCode": "00",
                "returnMsg": "SUCCESS",
                "code": "1006250926800024350=TdPPn8Bf",
                "extendData": {
                    "oms": "wv9O0WLS"
                },
                "mid": "",
                "shopName": "",
                "type": "4",
                "shopNo": "",
                "tid": "",
                "swift": ""
            },
            {
                "dateTime": "20250926161628",
                "returnCode": "00",
                "returnMsg": "SUCCESS",
                "code": "1006250926800024350=TdPPn8Bf",
                "extendData": {
                    "oms": "3PYkfBSP"
                },
                "mid": "",
                "shopName": "",
                "type": "4",
                "shopNo": "",
                "tid": "",
                "swift": ""
            },
            {
                "dateTime": "20250926161635",
                "returnCode": "00",
                "returnMsg": "SUCCESS",
                "code": "1006250926800024350=TdPPn8Bf",
                "mid": "",
                "type": "3",
                "tid": "",
                "swift": ""
            }
        ]
    },
    "timestamp": 1758874822508
}

箱本包处理类接口


箱本包处理类接口

激活查询

接口用途

action

请求参数,中间件===>易百后台

字段 类型 是否必填 字段意义 备注
traceNo String 收银机流水号 不允许重复,必须以yyyyMMdd(当天)作为流水号开头+递增序列
qrcode String 二维码内容 券号code
businessType Integer 业务类型 当businessType=12时为新逻辑支持箱的概念,返回的数据中包含箱的结构,该字段不传或者不等于12则为原来的逻辑不做任何变动,返回数据中不包含箱的结构

请求报文举例

{
    "traceNo": "99000009100010101732123",
    "qrcode": "R156A001-0000491-0505,R156A002-0000491-0505",
    "businessType": 12
}

返回参数,易百后台===>中件间

字段 类型 是否必填 字段意义 备注
traceNo String 收银机流水号 不允许重复
transDate String 交易时间 格式为:yyyyMMddHHmmss
returnCode String 返回码 P00表示待激活(可激活);P01表示正在激活中(不可激活);P02表示有部分券处于不可激活状态(不可激活);P03表示已全部激活;P09表示该门店该城市不可激活
returnDesc String 返回信息 交易结果描述或错误原因
voucherPkg List<voucherPkg> 电子券包信息 返回电子券包信息

返回报文举例(请求中 businessType 值为 12 时)

{
  "transDate": "20190107143930",
  "returnDesc": "success",
  "voucherBox": [{
    "boxId":"X22169-3141157-33475",
    "voucherPkg":[
        {
            "pkgId":"B1123-6430582-102F5",
            "voucherReel":[
                {
                    "reelId":"R112102F-0000242-2585",
                    "codeDetail":[
                        {
                            "createTime":"20190107100500",
                            "saleChannelOrderId":"a1c4efb107df46f0ba230de6477bd337",
                            "remainTimes":2,
                            "status":"03",
                            "ticketName":"买N赠M券[望湘园_储值卡]",
                            "code":"1001901070000000258-M4DEDSfV",
                            "activityId":500706,
                            "validEnd":"00000000000000",
                            "sendChannelName":"测试易百制码",
                            "ticketId":500811,
                            "saleChannelName":"望湘园_储值卡",
                            "validStart":"00000000000000",
                            "faceValue":"0.0",
                            "createDate":"20190107",
                            "activityName":"【吉野家】 黏贴板主题-2018第6期",
                            "statusDesc":"未激活"
                        },
                        {
                            "createTime":"20190107100500",
                            "saleChannelOrderId":"a1c4efb107df46f0ba230de6477bd337",
                            "remainTimes":2,
                            "status":"03",
                            "ticketName":"买N赠M券[望湘园_储值卡]",
                            "code":"1001901070000000242-EOHEMM9K",
                            "activityId":500706,
                            "validEnd":"00000000000000",
                            "sendChannelName":"测试易百制码",
                            "ticketId":500811,
                            "saleChannelName":"望湘园_储值卡",
                            "validStart":"00000000000000",
                            "faceValue":"0.0",
                            "createDate":"20190107",
                            "activityName":"【吉野家】 黏贴板主题-2018第6期",
                            "statusDesc":"未激活"
                        }
                    ]
                },
                {
                    "reelId":"R151102F-0000241-2555",
                    "codeDetail":[
                        {
                            "createTime":"20190107100459",
                            "saleChannelOrderId":"044b5ff93e2d491fa364acb154079e05",
                            "remainTimes":2,
                            "status":"03",
                            "ticketName":"买N赠M券[望湘园_储值卡]",
                            "code":"1001901070000000255-e6tdHe8m",
                            "activityId":500706,
                            "validEnd":"00000000000000",
                            "sendChannelName":"测试易百制码",
                            "ticketId":500811,
                            "saleChannelName":"望湘园_储值卡",
                            "validStart":"00000000000000",
                            "faceValue":"0.0",
                            "createDate":"20190107",
                            "activityName":"【吉野家】 黏贴板主题-2018第6期",
                            "statusDesc":"未激活"
                        },
                        {
                            "createTime":"20190107100459",
                            "saleChannelOrderId":"044b5ff93e2d491fa364acb154079e05",
                            "remainTimes":2,
                            "status":"03",
                            "ticketName":"买N赠M券[望湘园_储值卡]",
                            "code":"1001901070000000241-RTxJO2bX",
                            "activityId":500706,
                            "validEnd":"00000000000000",
                            "sendChannelName":"测试易百制码",
                            "ticketId":500811,
                            "saleChannelName":"望湘园_储值卡",
                            "validStart":"00000000000000",
                            "faceValue":"0.0",
                            "createDate":"20190107",
                            "activityName":"【吉野家】 黏贴板主题-2018第6期",
                            "statusDesc":"未激活"
                        }
                    ]
                }
            ]
        },
        {
            "pkgId":"B1123-6430582-102F5",
            "voucherReel":[
                {
                    "reelId":"R112102F-0000242-2585",
                    "codeDetail":[
                        {
                            "createTime":"20190107100500",
                            "saleChannelOrderId":"a1c4efb107df46f0ba230de6477bd337",
                            "remainTimes":2,
                            "status":"03",
                            "ticketName":"买N赠M券[望湘园_储值卡]",
                            "code":"1001901070000000258-M4DEDSfV",
                            "activityId":500706,
                            "validEnd":"00000000000000",
                            "sendChannelName":"测试易百制码",
                            "ticketId":500811,
                            "saleChannelName":"望湘园_储值卡",
                            "validStart":"00000000000000",
                            "faceValue":"0.0",
                            "createDate":"20190107",
                            "activityName":"【吉野家】 黏贴板主题-2018第6期",
                            "statusDesc":"未激活"
                        },
                        {
                            "createTime":"20190107100500",
                            "saleChannelOrderId":"a1c4efb107df46f0ba230de6477bd337",
                            "remainTimes":2,
                            "status":"03",
                            "ticketName":"买N赠M券[望湘园_储值卡]",
                            "code":"1001901070000000242-EOHEMM9K",
                            "activityId":500706,
                            "validEnd":"00000000000000",
                            "sendChannelName":"测试易百制码",
                            "ticketId":500811,
                            "saleChannelName":"望湘园_储值卡",
                            "validStart":"00000000000000",
                            "faceValue":"0.0",
                            "createDate":"20190107",
                            "activityName":"【吉野家】 黏贴板主题-2018第6期",
                            "statusDesc":"未激活"
                        }
                    ]
                },
                {
                    "reelId":"R151102F-0000241-2555",
                    "codeDetail":[
                        {
                            "createTime":"20190107100459",
                            "saleChannelOrderId":"044b5ff93e2d491fa364acb154079e05",
                            "remainTimes":2,
                            "status":"03",
                            "ticketName":"买N赠M券[望湘园_储值卡]",
                            "code":"1001901070000000255-e6tdHe8m",
                            "activityId":500706,
                            "validEnd":"00000000000000",
                            "sendChannelName":"测试易百制码",
                            "ticketId":500811,
                            "saleChannelName":"望湘园_储值卡",
                            "validStart":"00000000000000",
                            "faceValue":"0.0",
                            "createDate":"20190107",
                            "activityName":"【吉野家】 黏贴板主题-2018第6期",
                            "statusDesc":"未激活"
                        },
                        {
                            "createTime":"20190107100459",
                            "saleChannelOrderId":"044b5ff93e2d491fa364acb154079e05",
                            "remainTimes":2,
                            "status":"03",
                            "ticketName":"买N赠M券[望湘园_储值卡]",
                            "code":"1001901070000000241-RTxJO2bX",
                            "activityId":500706,
                            "validEnd":"00000000000000",
                            "sendChannelName":"测试易百制码",
                            "ticketId":500811,
                            "saleChannelName":"望湘园_储值卡",
                            "validStart":"00000000000000",
                            "faceValue":"0.0",
                            "createDate":"20190107",
                            "activityName":"【吉野家】 黏贴板主题-2018第6期",
                            "statusDesc":"未激活"
                        }
                    ]
                }
            ]
        }
    ]
}],
  "paidAmount": 0,
  "invoiceAmount": 0,
  "returnCode": "P00",
  "receiptAmount": 0,
  "printDetail": {
    "content": "00||"
  },
  "orderNo": "179031014530",
  "traceNo": "ccs203781546843174561"
}

返回报文举例(请求中 businessType 值不为 12,或为空,或不传时)

{
    "transDate":"20190107143930",
    "returnDesc":"success",
    "voucherPkg":[
        {
            "pkgId":"B1123-6430582-102F5",
            "voucherReel":[
                {
                    "reelId":"R112102F-0000242-2585",
                    "codeDetail":[
                        {
                            "createTime":"20190107100500",
                            "saleChannelOrderId":"a1c4efb107df46f0ba230de6477bd337",
                            "remainTimes":2,
                            "status":"03",
                            "ticketName":"买N赠M券[望湘园_储值卡]",
                            "code":"1001901070000000258-M4DEDSfV",
                            "activityId":500706,
                            "validEnd":"00000000000000",
                            "sendChannelName":"测试易百制码",
                            "ticketId":500811,
                            "saleChannelName":"望湘园_储值卡",
                            "validStart":"00000000000000",
                            "faceValue":"0.0",
                            "createDate":"20190107",
                            "activityName":"【吉野家】 黏贴板主题-2018第6期",
                            "statusDesc":"未激活"
                        },
                        {
                            "createTime":"20190107100500",
                            "saleChannelOrderId":"a1c4efb107df46f0ba230de6477bd337",
                            "remainTimes":2,
                            "status":"03",
                            "ticketName":"买N赠M券[望湘园_储值卡]",
                            "code":"1001901070000000242-EOHEMM9K",
                            "activityId":500706,
                            "validEnd":"00000000000000",
                            "sendChannelName":"测试易百制码",
                            "ticketId":500811,
                            "saleChannelName":"望湘园_储值卡",
                            "validStart":"00000000000000",
                            "faceValue":"0.0",
                            "createDate":"20190107",
                            "activityName":"【吉野家】 黏贴板主题-2018第6期",
                            "statusDesc":"未激活"
                        }
                    ]
                },
                {
                    "reelId":"R151102F-0000241-2555",
                    "codeDetail":[
                        {
                            "createTime":"20190107100459",
                            "saleChannelOrderId":"044b5ff93e2d491fa364acb154079e05",
                            "remainTimes":2,
                            "status":"03",
                            "ticketName":"买N赠M券[望湘园_储值卡]",
                            "code":"1001901070000000255-e6tdHe8m",
                            "activityId":500706,
                            "validEnd":"00000000000000",
                            "sendChannelName":"测试易百制码",
                            "ticketId":500811,
                            "saleChannelName":"望湘园_储值卡",
                            "validStart":"00000000000000",
                            "faceValue":"0.0",
                            "createDate":"20190107",
                            "activityName":"【吉野家】 黏贴板主题-2018第6期",
                            "statusDesc":"未激活"
                        },
                        {
                            "createTime":"20190107100459",
                            "saleChannelOrderId":"044b5ff93e2d491fa364acb154079e05",
                            "remainTimes":2,
                            "status":"03",
                            "ticketName":"买N赠M券[望湘园_储值卡]",
                            "code":"1001901070000000241-RTxJO2bX",
                            "activityId":500706,
                            "validEnd":"00000000000000",
                            "sendChannelName":"测试易百制码",
                            "ticketId":500811,
                            "saleChannelName":"望湘园_储值卡",
                            "validStart":"00000000000000",
                            "faceValue":"0.0",
                            "createDate":"20190107",
                            "activityName":"【吉野家】 黏贴板主题-2018第6期",
                            "statusDesc":"未激活"
                        }
                    ]
                }
            ]
        }
    ],
    "paidAmount":0,
    "invoiceAmount":0,
    "returnCode":"P00",
    "receiptAmount":0,
    "printDetail":{
        "content":"00||"
    },
    "orderNo":"179031014530",
    "traceNo":"ccs203781546843174561"
}
箱本包处理类接口

券码历史记录查询

接口用途

action

请求参数,中间件===>易百后台

字段 类型 是否必填 字段意义 备注
requestId String 流水号 不允许重复,用于单次请求日志追踪查询
code String 券码 券号code
sign String 签名串

券码查询签名串和顺序

signStr = "requestId=1754036646424&code=1006250730320020870=gHN3981K"

请求报文举例

{
    "code": "1006250730320020870=gHN3981K",
    "requestId": 1754036646424,
    "sign": "k8l22s6PQHhwskkUx4BKD+dqCtCuYVuE5pC9ikbaIUG/K68xqvytLajPumygrF9VqP13vJHe0lWOUm0+9Fqzt17jU+36naYLoXh8o70BH4HIrA3xswmiHkgcoZ+OxQfOxLqLO/QghHKMPJFYu7El72a/HY12Q7QntGiMV2SADTq4VQIMfDjVZ4YmovN231TLD78cyJsdPUXmIRMbB+rqaR6cglTiPoyPOtdcgou1XFth2aC1zJH5WiCe/qwpiFSzLquQSo02theZ1C/A6OVqBKwNBOBxMQ0vnAZYUZ8QMG5ivxj4grGOoCSWcjHI4rRn3SKJNZJonNQgm68VAWPSIA=="
}

返回参数,易百后台===>中件间

字段 类型 是否必填 字段意义 备注
returnCode
String 返回响应码
transTime
String 交易时间
requestId
String 返回请求流水
returnDesc String 返回信息
returnData
List<voucherPkg> 交易记录信息

返回报文举例(请求中 businessType 值为 12 时)

{
    "returnCode": "00",
    "transTime": 1754016597099,
    "requestId": "1754016596841",
    "returnData": [
        {
            "dateTime": "20250730143743",
            "returnCode": "00",
            "returnMsg": "操作成功",
            "code": "1006250730320020870=gHN3981K",
            "mid": "",
            "shopName": "",
            "type": "1",
            "shopNo": "",
            "tid": "",
            "swift": ""
        },
        {
            "dateTime": "20250730153314",
            "returnCode": "00",
            "returnMsg": "SUCCESS",
            "code": "1006250730320020870=gHN3981K",
            "mid": "860020051401034",
            "shopName": "星巴克北京银泰店",
            "type": "2",
            "shopNo": "1490",
            "tid": "54022101",
            "swift": "0"
        },
        {
            "dateTime": "20250730211518",
            "returnCode": "00",
            "returnMsg": "SUCCESS",
            "code": "1006250730320020870=gHN3981K",
            "mid": "860020051401034",
            "shopName": "星巴克北京银泰店",
            "type": "2",
            "shopNo": "1490",
            "tid": "54022101",
            "swift": "0",
            "extendData": {
                "shopNo": "test1",
                "voucherNo": "test1",
                "posSerialNo": "test1",
                "oms": "test1"
            }
        }
    ],
    "returnDesc": "success"
}
箱本包处理类接口

激活

接口用途

action

请求参数,中间件===>易百后台

字段 类型 是否必填 字段意义 备注
traceNo String 收银机流水号 不允许重复,必须以yyyyMMdd(当天)作为流水号开头+递增序列
qrcode String 二维码内容 券号code
totalAmount String 折后金额 激活券的折后金额,多个券则为总折后金额,单位:分
businessType Integer 业务类型 当businessType=12时为新逻辑支持箱的概念,返回的数据中包含箱的结构,该字段不传或者不等于12则为原来的逻辑不做任何变动,返回数据中不包含箱的结构
extendData JSONObject<activeInfo> 扩展信息 特殊场景填值需与易百技术沟通

请求报文举例

{
    "traceNo": "99000009100010101732123",
    "qrcode": "R156A001-0000491-0505",
    "totalAmount": "3000",
    "businessType": 12
}

返回参数,易百后台===>中件间

字段 类型 是否必填 字段意义 备注
traceNo String 收银机流水号 不允许重复
orderNo String 本次激活操作订单号  
transDate String 交易时间 格式为:yyyyMMddHHmmss
returnCode String 返回码 A00表示正在激活中(等待,做结果查询);A02表示有部分券处于不可激活状态(未进行激活);A03表示其他异常(未进行激活)
returnDesc String 返回信息 交易结果描述或错误原因
voucherPkg List<voucherPkg> 电子券包信息 返回电子券包信息

返回报文举例

{
    "traceNo": "99000009100010101732123",
    "orderNo": "99000009100010101732123",
    "transDate": "20161231120533",
    "returnCode": "00",
    "returnDesc": "SUCCESS"
}
箱本包处理类接口

激活结果查询

接口用途

action

请求参数,中间件===>易百后台

字段 类型 是否必填 字段意义 备注
traceNo String 收银机流水号 不允许重复,必须以yyyyMMdd(当天)作为流水号开头+递增序列
originalTraceNo String 激活操作订单号  
businessType Integer 业务类型 当businessType=12时为新逻辑支持箱的概念,返回的数据中包含箱的结构,该字段不传或者不等于12则为原来的逻辑不做任何变动,返回数据中不包含箱的结构

请求报文举例

{
    "traceNo": "99000009100010101732123",
    "originalTraceNo": "99000009100010101732129",
    "businessType": 12
}

返回参数,易百后台===>中件间

字段 类型 是否必填 字段意义 备注
traceNo String 收银机流水号 不允许重复
orderNo String 原激活操作订单号  
transDate String 交易时间 格式为:yyyyMMddHHmmss
returnCode String 返回码 R00表示激活成功;R01表示激活失败;R02表示找不到原订单
returnDesc String 返回信息 交易结果描述或错误原因
voucherPkg List<voucherPkg> 电子券包信息 返回电子券包信息

返回报文举例

{
    "traceNo": "99000009100010101732123",
    "orderNo": "99000009100010101732123",
    "transDate": "20161231120533",
    "returnCode": "00",
    "returnDesc": "SUCCESS"
}
箱本包处理类接口

作废

接口用途

action

请求参数,中间件===>易百后台

字段 类型 是否必填 字段意义 备注
traceNo String 收银机流水号 不允许重复,必须以yyyyMMdd(当天)作为流水号开头+递增序列
qrcode String 二维码内容 券号code

请求报文举例

{
    "traceNo": "9900000910001010920150201",
    "qrcode": "10014030013500006013",
    "businessType": 12
}

返回参数,易百后台===>中件间

字段 类型 是否必填 字段意义 备注
traceNo String 收银机流水号 不允许重复,必须以yyyyMMdd(当天)作为流水号开头+递增序列
orderNo String 本次作废操作订单号  
transDate String 交易时间 格式为:yyyyMMddHHmmss
returnCode String 返回码 V00表示作废成功;V01表示作废失败;V03表示券号错误
returnDesc String 返回信息 交易结果描述或错误原因
voucherPkg List<voucherPkg> 电子券包信息 返回电子券包信息

返回报文举例

{
    "traceNo": "9900000910001011020150201",
    "orderNo": "99000009100010101732123",
    "transDate": "20161231120533",
    "returnCode": "00",
    "returnDesc": "SUCCESS"
}
箱本包处理类接口

核销信息以及城市范围查询

接口用途

action

请求参数,中间件===>易百后台

字段 类型 是否必填 字段意义 备注
traceNo String 收银机流水号 不允许重复,必须以yyyyMMdd(当天)作为流水号开头+递增序列
qrcode String 二维码内容 券号code
businessType Integer 业务类型 当businessType=12时为新逻辑支持箱的概念,返回的数据中包含箱的结构,该字段不传或者不等于12则为原来的逻辑不做任何变动,返回数据中不包含箱的结构

请求报文举例

{
    "traceNo": "9900000910001010720150201",
    "qrcode": "10085748356738476396436",
    "businessType": 12
}

返回参数,易百后台===>中件间

字段 类型 是否必填 字段意义 备注
traceNo String 收银机流水号 不允许重复,必须以yyyyMMdd(当天)作为流水号开头+递增序列
transDate String 交易时间 格式为:yyyyMMddHHmmss
returnCode String 返回码 H00表示可核销;H01表示该券未激活;H02表示该券已核销;H03表示券号有误
returnDesc String 返回信息 交易结果描述或错误原因
voucherPkg List<voucherPkg> 电子券包信息 返回电子券包信息

返回报文举例

{
    "transDate":"20190107143930",
    "returnDesc":"success",
    "voucherBox":[
        {
            "boxId":"X1123-6430582-102F5",
            "voucherPkg":[
                {
                    "pkgId":"B1123-6430582-102F5",
                    "voucherReel":[
                        {
                            "codeDetail":[
                                {
                                    "createTime":"20190107100500",
                                    "saleChannelOrderId":"a1c4efb107df46f0ba230de6477bd337",
                                    "remainTimes":2,
                                    "status":"03",
                                    "ticketName":"买N赠M券[望湘园_储值卡]",
                                    "code":"1001901070000000258-M4DEDSfV",
                                    "activityId":500706,
                                    "validEnd":"00000000000000",
                                    "sendChannelName":"测试易百制码",
                                    "ticketId":500811,
                                    "saleChannelName":"望湘园_储值卡",
                                    "validStart":"00000000000000",
                                    "faceValue":"0.0",
                                    "createDate":"20190107",
                                    "activityName":"【吉野家】 黏贴板主题-2018第6期",
                                    "statusDesc":"未激活"
                                }
                            ],
                            "reelId":"R112102F-0000242-2585"
                        }
                    ]
                }
            ]
        }
    ],
    "paidAmount":0,
    "invoiceAmount":0,
    "returnCode":"P00",
    "receiptAmount":0,
    "printDetail":{
        "content":"00||"
    },
    "orderNo":"179031014530",
    "traceNo":"ccs2037815468431420150201"
}
箱本包处理类接口

B2B饮料券箱本激活

接口用途

action

请求参数,中间件===>易百后台

字段 类型 是否必填 字段意义 备注
traceNo String 收银机流水号 不允许重复,必须以yyyyMMdd(当天)作为流水号开头+递增序列
qrcode String 二维码内容 本号reelId
totalAmount String 折后金额 激活券的折后金额,多个券则为总折后金额,单位:分
businessType Integer 业务类型 当businessType=12时为新逻辑支持箱的概念,返回的数据中包含箱的结构,该字段不传或者不等于12则为原来的逻辑不做任何变动,返回数据中不包含箱的结构

请求报文举例

{
    "traceNo": "99000009100010101732123",
    "qrcode": "R156A001-0000491-0505",
    "totalAmount": "3000",
    "businessType": 12
}

返回参数,易百后台===>中件间

字段 类型 是否必填 字段意义 备注
traceNo String 收银机流水号 不允许重复
orderNo String 本次激活操作订单号  
transDate String 交易时间 格式为:yyyyMMddHHmmss
returnCode String 返回码 A00表示正在激活中(等待,做结果查询);A02表示有部分券处于不可激活状态(未进行激活);A03表示其他异常(未进行激活)
returnDesc String 返回信息 交易结果描述或错误原因
voucherPkg List<voucherPkg> 电子券包信息 返回电子券包信息

返回报文举例

{
    "traceNo": "99000009100010101732123",
    "orderNo": "99000009100010101732123",
    "transDate": "20161231120533",
    "returnCode": "00",
    "returnDesc": "SUCCESS"
}
箱本包处理类接口

B2B饮料券箱本作废

接口用途

action

请求参数,中间件===>易百后台

字段 类型 是否必填 字段意义 备注
traceNo String 收银机流水号 不允许重复,必须以yyyyMMdd(当天)作为流水号开头+递增序列
qrcode String 二维码内容 券号code
businessType Integer 业务类型 当businessType=12时为新逻辑支持箱的概念,返回的数据中包含箱的结构,该字段不传或者不等于12则为原来的逻辑不做任何变动,返回数据中不包含箱的结构

请求报文举例

{
    "traceNo": "9900000910001010920150201",
    "qrcode": "10014030013500006013",
    "businessType": 12
}

返回参数,易百后台===>中件间

字段 类型 是否必填 字段意义 备注
traceNo String 收银机流水号 不允许重复,必须以yyyyMMdd(当天)作为流水号开头+递增序列
orderNo String 本次作废操作订单号  
transDate String 交易时间 格式为:yyyyMMddHHmmss
returnCode String 返回码 V00表示作废成功;V01表示作废失败;V03表示券号错误
returnDesc String 返回信息 交易结果描述或错误原因
voucherPkg List<voucherPkg> 电子券包信息 返回电子券包信息

返回报文举例

{
    "traceNo": "9900000910001011020150201",
    "orderNo": "99000009100010101732123",
    "transDate": "20161231120533",
    "returnCode": "00",
    "returnDesc": "SUCCESS"
}
箱本包处理类接口

卡号段激活实体卡券(B2B定制)

接口用途

action

请求参数,中间件===>易百后台

字段 类型 是否必填 字段意义 备注

ver

int

2

接口版本(固定参数值)

partnerId

int

1504

商户编号(固定参数值)

merchantId

string

10001(星巴克中国)

App商家在非码系统中的编号(固定参数值)

sign

string

 

参考签名举例

partnerOrderId

String

 

激活订单号,商户激活操作唯一,最大28位。(若第一次请求成功的订单号再次请求,则返回此订单号处理进度,与startCardSeendCardSe值无关)

type

int

 

激活对象类型(固定值实体券2)

bin

string

 

bin(实体券:7020)获取券码取前4

codeType

string

 

激活实体券时必填,3

startCardSe

string

 

起始激活卡券号段,含当前号段。(7位)

endCardSe

string

 

终止激活卡券号段,含当前号段。(7位)

number

int

 

激活数量

sellingPrice

int

 

商品成本价 ,单位:分(激活实体券时必传,若没有A,B账户则传sellingPrice=costPrice)。

costPrice

int

 

商品售价。此字段不能大于sellingPrice,单位:分(激活实体券时必传,若没有A,B账户则传sellingPrice=costPrice)(折扣价=成本价-售价)。

validStart

String

 

有效期开始时间,格式:yyyy-MM-dd HH:mm:ss(激活实体券时使用,激活时若validStart 和 validEnd 都不传,默认三年有效期。)

valid_end

string

 

有效期结束时间,格式:yyyy-MM-dd HH:mm:ss(激活实体券时使用,激活时若validStart 和 validEnd 都不传,默认三年有效期。)

请求报文举例

{
	"ver": 2,
	"partnerId": 1504,
	"sign": "skip",
	"merchantId": 10001,
	"partnerOrderId": "2040132213w9181w0q77awwwd8",
	"type": 2,
    "bin": "7020",
    "startCardSe": "0000041",
    "endCardSe": "0000045",
    "sellingPrice": "10000",
    "costPrice": "8888",
    "number": 14
}

返回参数,易百后台===>中件间

字段 类型 是否必填 字段意义 备注

ver

int

2

接口版本

statusCode

int

100:SUCCESS

返回码:100表示创建成功;

        80表示处理中;

        81 表示处理完成。

 

message

string

成功

状态码描述

createTime

string

 

激活订单创建时间(返回100、80、81时,有值)格式:yyyyMMddHHmmss

sign

string

 

参考签名举例

         

返回报文举例

{
    "createTime": "20200212100234",
    "message": "处理中",
    "sign": "EOMRl+jWgjGOTebWPRVqBDR1EPkyd/S7tsb/yEjvBoSfUZCEgVA6RNrjVEmIY15uJI9YV57tOZWy1FiVqJDH0lfEJnuk4DKpwcJMVCGXjQIH/Cd+PCibwBNknDWt9kaiB9JhxW8TrlBLYWq4ZyzffYtsF4qawyBgTLeUuPEOvoLZ2jA5OLtbSYVyI9g3OI4amcL25/GkRUw3ECmziAy9bTdVKmjV5FbWcyk45GM+K7/2a4/E6BihvVC2w6ge6xgDn0s5R9Ixaun5KhqcEJLHW/8vEAHMbx40uvsP91Aw9iiw5aZeGhpYoge89vAVTkC5boB8i+pgcpk0DqK4Jk25mA==",
    "statusCode": 80,
    "ver": 2
}

线下posp接口列表

线下posp接口列表

二维码支付或兑换

接口用途

action

请求参数,中件间===>易百后台

字段 类型 是否必填 字段意义 备注
traceNo String(40) 收银机流水号 不允许重复,必须以yyyyMMdd(当天)作为流水号开头+递增序列
totalAmount Price 交易总金额 单位:元
undiscountAmount Price 不可打折金额 单位:元 如无此金额时可填0
verifyType String 核销类型 请与易百技术确认,枚举值:wechatApp(微信小程序),h5,aliApp(支付宝小程序),pos(线下pos机具)
activityProductNo String 活动产品编号 二次交互时填写
scene String 支付场景 条码:bar_code, 二维码:qr_code
orderSubject String 订单标题 最长256
orderDescription String 订单描述 最长256
qrcode String 二维码内容 串号、一维码或二维码内容
goodsDetail List<goodsDetail> 产品明细 验证产品明细时必填
memberDetail Object<memberDetail> 会员信息 会员支付时必填
extendData JSON 扩展信息 特殊场景填值需与易百技术沟通

请求报文举例

{
    "traceNo": "990000091000101620150201",
    "totalAmount": 40.8,
    "undiscountAmount": 0,
    "activityProductNo": "HDCP00000000001234",
    "qrcode": "280123121234567890",
    "goodsDetail": [{
            "goodsCategory": "001",
            "goodsId": "P00001",
            "goodsName": "牙膏",
            "price": 8,
            "quantity": 2,
            "rebateCode": "000"
        },
        {
            "goodsCategory": "101",
            "goodsId": "P00002",
            "goodsName": "洗发水",
            "price": 24.8,
            "quantity": 1,
            "rebateCode": "000"
        }
    ],
    "memberDetail": {
        "memberId": "M000001545",
        "memberName": "TONY",
        "grade": "1",
        "status": "1",
        "balance": 1000.00,
        "pointBalance": 30000
    },
    "extendData": {
        "rightsDetail": [{
            "snCode": "111111111xxxxxx"
        }],
        "shopNo":"test001",
        "voucherNo":"test001",
        "posSerialNo":"test001"
    }
}

返回参数,易百后台===>中件间

字段 类型 是否必填 字段意义 备注
traceNo String 收银机流水号 不允许重复,必须以yyyyMMdd(当天)作为流水号开头+递增序列
orderNo String 交易订单号 易百生成
transDate String 交易时间 格式为:yyyyMMddHHmmss
returnCode String 返回码 00表示交易成功,其他表示失败
returnDesc String 返回信息 交易结果描述或错误原因
paidAmount Price 支付成功总金额 单位:元
receiptAmount Price 商户实收金额 单位:元
invoiceAmount Price 商户开票金额 单位:元
exchangeRate Number(8,6) 汇率 1外币等于多少人民币
currency String 货币类型 例如:CNY
discountCode String 折扣编码 由收银机分配,用于入账计折扣类型
discountNum Number 固定金额折扣数量 用于入账计折扣类型的数量
tenderCode String 支付方式编码 由收银机分配,用于入账计支付方式
remainTimes Number 券码当前可用次数 如果有限制每天使用多少次,代表当天可使用次数
activityProductNo String 活动产品编号  
activityProductName String 活动产品名称  
goodsDetail List<goodsDetail> 折抵产品明细 返回后台已抵扣成功的产品明细
fundChannel List<fundChannel> 资金渠道  
printDetail Object<printDetail> 打印信息 如需要在收银小票上打印信息时必填
memberDetail Object<memberDetail> 会员信息 返回本次交易的会员信息
voucherDetail List<voucherDetail> 优惠券信息 返回本次交易的优惠券信息
extendsData Object<extendsData> 扩展信息 与ebuy约定

返回报文举例

{
    "traceNo": "9900000910001011720150201",
    "orderNo": "171698602301",
    "transDate": "20161231120533",
    "returnCode": "00",
    "returnDesc": "SUCCESS",
    "paidAmount": 40.8,
    "receiptAmount": 40.8,
    "invoiceAmount": 40.8,
    "exchangeRate": 6.0939,
    "currency": "CNY",
    "discountCode": "0001",
    "discountNum": 20,
    "tenderCode": "8001",
    "activityProductNo": "2016123102",
    "activityProductName": "支付宝支付",
    "goodsDetail": [
        {
            "goodsCategory": "001",
            "goodsId": "P00001",
            "goodsName": "牙膏",
            "price": 8,
            "quantity": 2,
            "rebateCode": "000",
            "activityNo": "2016123101",
            "memo": "100123456789"
        },
        {
            "goodsCategory": "101",
            "goodsId": "P00002",
            "goodsName": "洗发水",
            "price": 24.8,
            "quantity": 1,
            "rebateCode": "000",
            "activityNo": "2016123101",
            "memo": "100123456789"
        }
    ],
    "fundChannel": [
        {
            "channelNo": "001",
            "channelName": "用户实付现金",
            "channelAmount": "20.8"
        },
        {
            "channelNo": "002",
            "channelName": "用户积分支付",
            "channelAmount": "20"
        }
    ],
    "printDetail": {
        "cardNo64": "622562****8888",
        "bank": "中国银行",
        "paymentOrderNo": "201612315689412157458787",
        "paymentUser": "139****@163.com",
        "pointSale": "20000",
        "qrCode1": "htt://www.api-location-url.com/url",
        "qrCode2": "",
        "qrCode3": "",
        "barCode1": "12345679",
        "barCode2": "",
        "barCode3": ""
    },
    "memberDetail": {
        "memberId": "M000001545",
        "memberName": "TONY",
        "grade": "1",
        "status": "1",
        "balance": 1000.00,
        "pointBalance": 30000
    },
    "voucherDetail": [
        {
            "voucherId": "001",
            "voucherName": "现金优惠券",
            "voucherType": "现金",
            "voucherCode": "123456789",
            "channelAmount": "20.8"
        },
        {
            "voucherId": "002",
            "voucherName": "买一赠一优惠券",
            "voucherType": "买赠",
            "voucherCode": "1232136781",
            "channelAmount": "20.8"
        }
    ]
}
线下posp接口列表

当日撤销

接口用途

action

请求参数,中间件===>易百后台

字段 类型 是否必填 字段意义 备注
traceNo String 收银机流水号 不允许重复,必须以yyyyMMdd(当天)作为流水号开头+递增序列
originalTraceNo String 原收银机流水号 传入需要查询的原交易收银机流水号
isRollback Boolean 标识本次请求是否为冲正交易(中间件发起) 冲正发起需要另起线程并且先返回收银机交易失败结果,再异步冲正
acquirer String 收单机构 如:citicCashpay表示中信收单,如果收单撤销是必填的
cardInfo Object<cardInfo> 卡信息 卡支付类交易需要填入原交易卡信息

请求报文举例

{
    "traceNo": "9900000910001013220150201",
    "originalTraceNo": "9900000910001013120150201",
    "isRollback": false,
    "acquirer": "citicCashpay",
    "cardInfo": {
        "cardNo": "",
        "password": "",
        "valid": "",
        "track1": "",
        "track2": "",
        "track3": "",
        "cardSn": "",
        "icData": ""
    }
}

返回参数,易百后台===>中间件

字段 类型 是否必填 字段意义 备注
traceNo String 收银机流水号 不允许重复,必须以yyyyMMdd(当天)作为流水号开头+递增序列
orderNo String 交易订单号  
transDate String 交易时间 格式为:yyyyMMddHHmmss
returnCode String 返回码 00表示交易成功,其他表示失败
returnDesc String 返回信息 交易结果描述或错误原因
fundChannel List<fundChannel> 资金渠道  
printDetail Object<printDetail> 打印信息 如需要在收银小票上打印信息时必填
memberDetail Object<memberDetail> 会员信息 返回本次交易的会员信息
voucherDetail List<voucherDetail> 优惠券信息 返回本次交易的优惠券信息
cashOrderNo String 收单原流水号 收单撤销时返回
cashBank String 收单机构标识 收单撤销时返回
purchaseOrder List<purchaseOrder> 收单签购单信息 签购单信息

返回报文举例

{
    "traceNo": "9900000910001013420150201",
    "orderNo": "171698602301",
    "cashOrderNo": "000025",
    "cashBank": "40",
    "transDate": "20161231120533",
    "returnCode": "00",
    "returnDesc": "SUCCESS",
    "fundChannel": [
        {
            "channelNo": "001",
            "channelName": "用户实付现金",
            "channelAmount": "20.8"
        },
        {
            "channelNo": "002",
            "channelName": "用户积分支付",
            "channelAmount": "20"
        }
    ],
    "printDetail": {
        "cardNo64": "622562****8888",
        "bank": "中信银行",
        "paymentOrderNo": "201612315689412157458787",
        "pointSale": "20000",
        "qrCode1": "htt://www.api-location-url.com/url",
        "qrCode2": "",
        "qrCode3": "",
        "barCode1": "12345679",
        "barCode2": "",
        "barCode3": ""
    },
    "memberDetail": {
        "memberId": "M000001545",
        "memberName": "TONY",
        "grade": "1",
        "status": "1",
        "balance": 1000.00,
        "pointBalance": 30000
    },
    "voucherDetail": [
        {
            "voucherId": "001",
            "voucherName": "现金优惠券",
            "voucherType": "现金",
            "voucherCode": "123456789",
            "channelAmount": "20.8"
        },
        {
            "voucherId": "002",
            "voucherName": "买一赠一优惠券",
            "voucherType": "买赠",
            "voucherCode": "1232136781",
            "channelAmount": "20.8"
        }
    ]
}

支持撤销的交易

线下posp接口列表

电子凭证查询

接口用途

action

请求参数,中间件===>易百后台

字段 类型 是否必填 字段意义 备注
traceNo String 收银机流水号 不允许重复,必须以yyyyMMdd(当天)作为流水号开头+递增序列
qrcode String 电子凭证号 要查询的电子凭证号

请求报文举例

{
    "traceNo": "9900000910001013620150201",
    "qrcode": "HDCP00000000001235"
}

返回参数,易百后台===>中间件

字段 类型 是否必填 字段意义 备注
traceNo String 收银机流水号 不允许重复,必须以yyyyMMdd(当天)作为流水号开头+递增序列
orderNo String 交易订单号 单位:元
transDate String 交易时间 格式为:yyyyMMddHHmmss
returnCode String 返回码 00,C3表示券码可用,其他表示不可用
returnDesc String 返回信息 交易结果描述或错误原因
canPayAmount Price 可抵用的总金额 单位:元
activityProductNo String 活动产品编号 该电子凭证所属的活动产品编号
activityProductName String 活动产品名称 该电子凭证所属的活动产品名称
extendsData Object<extendsData> 扩展信息 与ebuy约定

返回报文举例

{
    "traceNo": "9900000910001013720150201",
    "orderNo": "171698602301",
    "transDate": "20161231120533",
    "returnCode": "00",
    "returnDesc": "SUCCESS",
    "canPayAmount": 40.8,
    "activityProductNo": "2016123101",
    "activityProductName": "中信365权益"
}