交易类接口
银行卡收单
交易流程说明
- 该交易发至中间件后,中间件不会直接请求易百后台,而是先点亮MIS-POS,等待刷卡和输入密码,MIS-POS上确认后,中间件收到卡和密码信息再请求易百后台进行处理。
action
请求参数,收银机===>中间件
字段 |
类型 |
是否必填 |
字段意义 |
备注 |
---|
traceNo |
String |
是 |
收银机流水号 |
不允许重复,建议YYYYmmddHHMMSS+10位流水号 |
totalAmount |
Price |
是 |
交易总金额 |
单位:元 |
undiscountAmount |
Price |
是 |
不可打折金额 |
单位:元 |
acquirer |
String |
是 |
收单机构 |
如:citicCashpay表示中信收单 |
goodsDetail |
List<goodsDetail> |
是 |
产品明细 |
验证产品明细时必填 |
memberDetail |
Object<memberDetail> |
否 |
会员信息 |
会员支付时必填 |
请求报文举例
{
"traceNo": "99000009100010101732123",
"totalAmount": 40.8,
"undiscountAmount": 0,
"acquirer": "citicCashpay",
"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
}
}
返回参数,中间件===>收银机
字段 |
类型 |
是否必填 |
字段意义 |
备注 |
---|
traceNo |
String |
是 |
收银机流水号 |
不允许重复 |
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 |
否 |
折扣编码 |
由收银机分配,用于入账计折扣类型,如:2016120102|10.00表示折扣10元 |
discountNum |
Number |
否 |
固定金额折扣数量 |
用于入账计折扣类型的数量 |
tenderCode |
String |
否 |
支付方式编码 |
由收银机分配,用于入账计支付方式,如:2016120101|20.00表示支付20元 |
activityProductNo |
String |
否 |
活动产品编号 |
|
activityProductName |
String |
否 |
活动产品名称 |
|
needSameCard |
Boolean |
否 |
同一张卡支付 |
如满额立减类活动,需要同一张银行卡支付剩余金额 |
goodsDetail |
List<goodsDetail> |
否 |
折抵产品明细 |
返回后台已抵扣成功的产品明细 |
fundChannel |
List<fundChannel> |
否 |
资金渠道 |
|
printDetail |
Object<printDetail> |
否 |
打印信息 |
如需要在收银小票上打印信息时必填 |
memberDetail |
Object<memberDetail> |
否 |
会员信息 |
返回本次交易的会员信息 |
paymentExtra |
Object<paymentDetail> |
否 |
收单信息 |
返回本次交易的收单信息 |
返回报文举例
{
"traceNo": "9900000910001011920150201",
"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": "00000000089349",
"activityProductName": "中信365权益",
"needSameCard": true,
"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",
"pointSale": "20000",
"qrCode1": "htt://www.api-location-url.com/url",
"qrCode2": "",
"qrCode3": "",
"barCode1": "12345679",
"barCode2": "",
"barCode3": ""
},
"cardInfo": {
"cardNo": "",
"password": "",
"valid": "",
"track1": "",
"track2": "",
"track3": "",
"cardSn": "",
"icData": ""
},
"memberDetail": {
"memberId": "M000001545",
"memberName": "TONY",
"grade": "1",
"status": "1",
"balance": 1000,
"pointBalance": 30000
},
"voucherDetail": [
{
"voucherId": "001",
"voucherName": "现金优惠券",
"voucherType": "现金",
"voucherCode": "123456789",
"channelAmount": "20.8"
},
{
"voucherId": "002",
"voucherName": "买一赠一优惠券",
"voucherType": "买赠",
"voucherCode": "1232136781",
"channelAmount": "20.8"
}
],
"paymentExtra": {
"acqId": "0100",
"issuerId": "0200",
"cardType": "0001",
"cardOrgan": false,
"pan": "622562****8888",
"aid": "A000000333010101"
}
}
实体卡权益积分兑换
接口用途
- 银行积分兑换
- 银行积分兑换+现金支付
- 银行权益验证
- 银行权益验证+现金支付
- 预付费卡消费
- 会员卡消费
交易流程说明
- 该交易发至中间件后,中间件不会直接请求易百后台,而是先点亮MIS-POS,等待刷卡和输入密码,MIS-POS上确认后,中间件收到卡和密码信息再请求易百后台进行处理。
action
请求参数,收银机===>中间件
字段 |
类型 |
是否必填 |
字段意义 |
备注 |
---|
traceNo |
String |
是 |
收银机流水号 |
不允许重复,建议YYYYmmddHHMMSS+10位流水号 |
totalAmount |
Price |
是 |
交易总金额 |
单位:元 |
undiscountAmount |
Price |
是 |
不可打折金额 |
单位:元 |
goodsDetail |
List<goodsDetail> |
是 |
产品明细 |
验证产品明细时必填 |
memberDetail |
Object<memberDetail> |
否 |
会员信息 |
会员支付时必填 |
请求报文举例
{
"traceNo": "99000009100010101732123",
"totalAmount": 40.8,
"undiscountAmount": 0,
"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
}
}
返回参数,中间件===>收银机
字段 |
类型 |
是否必填 |
字段意义 |
备注 |
---|
traceNo |
String |
是 |
收银机流水号 |
不允许重复 |
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 |
否 |
折扣编码 |
由收银机分配,用于入账计折扣类型,如:2016120102|10.00表示折扣10元 |
discountNum |
Number |
否 |
固定金额折扣数量 |
用于入账计折扣类型的数量 |
tenderCode |
String |
否 |
支付方式编码 |
由收银机分配,用于入账计支付方式,如:2016120101|20.00表示支付20元 |
activityProductNo |
String |
否 |
活动产品编号 |
|
activityProductName |
String |
否 |
活动产品名称 |
|
needSameCard |
Boolean |
否 |
同一张卡支付 |
如满额立减类活动,需要同一张银行卡支付剩余金额 |
goodsDetail |
List<goodsDetail> |
否 |
折抵产品明细 |
返回后台已抵扣成功的产品明细 |
fundChannel |
List<fundChannel> |
否 |
资金渠道 |
|
printDetail |
Object<printDetail> |
否 |
打印信息 |
如需要在收银小票上打印信息时必填 |
memberDetail |
Object<memberDetail> |
否 |
会员信息 |
返回本次交易的会员信息 |
返回报文举例
{
"traceNo": "99000009100010101732123",
"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": "2016123101",
"activityProductName": "中信365权益",
"needSameCard": true,
"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",
"pointSale": "20000",
"qrCode1": "htt://www.xxx.com/url",
"qrCode2": "",
"qrCode3": "",
"barCode1": "12345679",
"barCode2": "",
"barCode3": ""
},
"memberDetail": {
"memberId": "M000001545",
"memberName": "TONY",
"grade": "1",
"status": "1",
"balance": 1000.00,
"pointBalance": 30000
}
}
二维码支付或兑换
接口用途
- 支付宝支付
- 微信被扫支付
- 银行二维码支付
- 银行二维码积分兑换
- 银联立码付
- 百度支付
- 翼支付
- 其他二维码支付
- 产品券/代金券/折扣券/买N赠M券/立减券
- 外卖或自助点单订单码自动上屏
交易流程说明
- 该交易需要先采集二维码扫描器或键盘输入的二维码信息,再发至中间件,中间件收到请求后,检查包含qrcode内容信息再请求易百后台进行处理。
action
请求参数,收银机===>中间件
字段 |
类型 |
是否必填 |
字段意义 |
备注 |
---|
traceNo |
String |
是 |
收银机流水号 |
不允许重复,建议YYYYmmddHHMMSS+10位流水号 |
totalAmount |
Price |
是 |
交易总金额 |
单位:元 |
undiscountAmount |
Price |
是 |
不可打折金额 |
单位:元 |
qrcode |
String |
是 |
二维码内容 |
串号、一维码或二维码内容 |
goodsDetail |
List<goodsDetail> |
是 |
产品明细 |
验证产品明细时必填 |
memberDetail |
Object<memberDetail> |
否 |
会员信息 |
会员支付时必填 |
请求报文举例
{
"traceNo": "99000009100010101732123",
"totalAmount": 40.8,
"undiscountAmount": 0,
"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
}
}
返回参数,中间件===>收银机
字段 |
类型 |
是否必填 |
字段意义 |
备注 |
---|
traceNo |
String |
是 |
收银机流水号 |
不允许重复 |
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 |
否 |
折扣编码 |
由收银机分配,用于入账计折扣类型,如:2016120102\ |
10.00表示折扣10元 |
discountNum |
Number |
否 |
固定金额折扣数量 |
用于入账计折扣类型的数量 |
tenderCode |
String |
否 |
支付方式编码 |
由收银机分配,用于入账计支付方式,如:2016120101\ |
20.00表示支付20元 |
activityProductNo |
String |
否 |
活动产品编号 |
|
activityProductName |
String |
否 |
活动产品名称 |
|
goodsDetail |
List<goodsDetail> |
否 |
折抵产品明细 |
返回后台已抵扣成功的产品明细 |
fundChannel |
List<fundChannel> |
否 |
资金渠道 |
|
printDetail |
Object<printDetail> |
否 |
打印信息 |
如需在收银小票上打印信息时必填 |
memberDetail |
Object<memberDetail> |
否 |
会员信息 |
返回本次交易的会员信息 |
voucherDetail |
List<voucherDetail> |
否 |
优惠券信息 |
返回本次交易的优惠券信息 |
返回报文举例
{
"traceNo": "99000009100010101732123",
"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.xxx.com/url",
"qrCode2": "",
"qrCode3": "",
"barCode1": "12345679",
"barCode2": "",
"barCode3": ""
},
"memberDetail": {
"memberId": "M000001545",
"memberName": "TONY",
"grade": "1",
"status": "1",
"balance": 1000.00,
"pointBalance": 30000
}
}
交易结果查询
接口用途
- 在收银机未收到后台返回时,可以调用此接口查询原交易的状态。
action
请求参数,收银机===>中间件
字段 |
类型 |
是否必填 |
字段意义 |
备注 |
---|
traceNo |
String |
是 |
收银机流水号 |
不允许重复 |
originalTraceNo |
String |
是 |
原收银机流水号 |
传入需要查询的原交易收银机流水号 |
请求报文举例
{
"traceNo": "99000009100010101732123",
"originalTraceNo": "99000009100010101732124"
}
返回参数,中间件===>收银机
字段 |
类型 |
是否必填 |
字段意义 |
备注 |
---|
traceNo |
String |
是 |
收银机流水号 |
不允许重复 |
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 |
否 |
折扣编码 |
由收银机分配,用于入账计折扣类型,如:2016120102|10.00表示折扣10元 |
discountNum |
Number |
否 |
固定金额折扣数量 |
用于入账计折扣类型的数量 |
tenderCode |
String |
否 |
支付方式编码 |
由收银机分配,用于入账计支付方式,如:2016120101|20.00表示支付20元 |
activityProductNo |
String |
否 |
活动产品编号 |
|
activityProductName |
String |
否 |
活动产品名称 |
|
needSameCard |
Boolean |
否 |
同一张卡支付 |
如满额立减类活动,需要同一张银行卡支付剩余金额 |
goodsDetail |
List<goodsDetail> |
否 |
折抵产品明细 |
返回后台已抵扣成功的产品明细 |
fundChannel |
List<fundChannel> |
否 |
资金渠道 |
|
printDetail |
Object<printDetail> |
否 |
打印信息 |
如需要在收银小票上打印信息时必填 |
memberDetail |
Object<memberDetail> |
否 |
会员信息 |
返回本次交易的会员信息 |
voucherDetail |
List<voucherDetail> |
否 |
优惠券信息 |
返回本次交易的优惠券信息 |
返回报文举例
{
"traceNo": "99000009100010101732123",
"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": "支付宝支付",
"needSameCard": true,
"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",
"pointSale": "20000",
"qrCode1": "htt://www.xxx.com/url",
"qrCode2": "",
"qrCode3": "",
"barCode1": "12345679",
"barCode2": "",
"barCode3": ""
},
"memberDetail": {
"memberId": "M000001545",
"memberName": "TONY",
"grade": "1",
"status": "1",
"balance": 1000.00,
"pointBalance": 30000
}
}
支持查询的交易
当日撤销(实体卡)
接口用途
- 需要对原交易整体撤销时,可以在原交易的同一天调用此接口。
交易流程说明
- 该交易发至中间件后,中间件不会直接请求易百后台,而是先点亮MIS-POS,等待刷卡和输入密码,MIS-POS上确认后,中间件收到卡和密码信息再请求易百后台进行处理。
action
请求参数,收银机===>中间件
字段 |
类型 |
是否必填 |
字段意义 |
备注 |
---|
traceNo |
String |
是 |
收银机流水号 |
不允许重复 |
originalTraceNo |
String |
是 |
原收银机流水号 |
传入需要查询的原交易收银机流水号 |
acquirer |
String |
否 |
收单机构 |
如:citicCashpay表示中信收单,如果收单撤销是必填的 |
请求报文举例
{
"traceNo": "99000009100010101732123",
"originalTraceNo": "99000009100010101732124",
"acquirer": "citicCashpay"
}
返回参数,中间件===>收银机
字段 |
类型 |
是否必填 |
字段意义 |
备注 |
---|
traceNo |
String |
是 |
收银机流水号 |
不允许重复 |
orderNo |
String |
是 |
交易订单号 |
|
transDate |
String |
是 |
交易时间 |
格式为:YYYYmmddHHMMSS |
returnCode |
String |
是 |
返回码 |
00表示交易成功,其他表示失败 |
returnDesc |
String |
是 |
返回信息 |
交易结果描述或错误原因 |
discountCode |
String |
否 |
折扣编码 |
由收银机分配,用于入账计折扣类型,如:2016120102|10.00表示折扣10元 |
tenderCode |
String |
否 |
支付方式编码 |
由收银机分配,用于入账计支付方式,如:2016120101|20.00表示支付20元 |
fundChannel |
List<fundChannel> |
否 |
资金渠道 |
|
printDetail |
Object<printDetail> |
否 |
打印信息 |
如需要在收银小票上打印信息时必填 |
memberDetail |
Object<memberDetail> |
否 |
会员信息 |
返回本次交易的会员信息 |
返回报文举例
{
"traceNo": "99000009100010101732123",
"orderNo": "171698602301",
"transDate": "20161231120533",
"returnCode": "00",
"returnDesc": "SUCCESS",
"discountCode": "0001",
"tenderCode": "8001",
"fundChannel": [
{
"channelNo": "001",
"channelName": "用户实付现金",
"channelAmount": "20.8"
},
{
"channelNo": "002",
"channelName": "用户积分支付",
"channelAmount": "20"
}
],
"printDetail": {
"cardNo64": "622562****8888",
"bank": "中信银行",
"paymentOrderNo": "201612315689412157458787",
"pointSale": "20000",
"qrCode1": "htt://www.xxx.com/url",
"qrCode2": "",
"qrCode3": "",
"barCode1": "12345679",
"barCode2": "",
"barCode3": ""
},
"memberDetail": {
"memberId": "M000001545",
"memberName": "TONY",
"grade": "1",
"status": "1",
"balance": 1000.00,
"pointBalance": 30000
}
}
支持撤销的交易
- cardPayment
- cardRedemption
当日撤销(二维码)
接口用途
- 需要对原交易整体撤销时,可以在原交易的同一天调用此接口。
action
请求参数,收银机===>中间件
字段 |
类型 |
是否必填 |
字段意义 |
备注 |
---|
traceNo |
String |
是 |
收银机流水号 |
不允许重复 |
originalTraceNo |
String |
是 |
原收银机流水号 |
传入需要查询的原交易收银机流水号 |
请求报文举例
{
"traceNo": "99000009100010101732123",
"originalTraceNo": "99000009100010101732124"
}
返回参数,中间件===>收银机
字段 |
类型 |
是否必填 |
字段意义 |
备注 |
---|
traceNo |
String |
是 |
收银机流水号 |
不允许重复 |
orderNo |
String |
是 |
交易订单号 |
|
transDate |
String |
是 |
交易时间 |
格式为:YYYYmmddHHMMSS |
returnCode |
String |
是 |
返回码 |
00表示交易成功,其他表示失败 |
returnDesc |
String |
是 |
返回信息 |
交易结果描述或错误原因 |
discountCode |
String |
否 |
折扣编码 |
由收银机分配,用于入账计折扣类型,如:2016120102|10.00表示折扣10元 |
tenderCode |
String |
否 |
支付方式编码 |
由收银机分配,用于入账计支付方式,如:2016120101|20.00表示支付20元 |
fundChannel |
List<fundChannel> |
否 |
资金渠道 |
|
printDetail |
Object<printDetail> |
否 |
打印信息 |
如需要在收银小票上打印信息时必填 |
memberDetail |
Object<memberDetail> |
否 |
会员信息 |
返回本次交易的会员信息 |
返回报文举例
{
"traceNo": "99000009100010101732123",
"orderNo": "171698602301",
"transDate": "20161231120533",
"returnCode": "00",
"returnDesc": "SUCCESS",
"discountCode": "0001",
"tenderCode": "8001",
"fundChannel": [
{
"channelNo": "001",
"channelName": "用户实付现金",
"channelAmount": "20.8"
},
{
"channelNo": "002",
"channelName": "用户积分支付",
"channelAmount": "20"
}
],
"printDetail": {
"cardNo64": "622562****8888",
"bank": "中信银行",
"paymentOrderNo": "201612315689412157458787",
"pointSale": "20000",
"qrCode1": "htt://www.xxx.com/url",
"qrCode2": "",
"qrCode3": "",
"barCode1": "12345679",
"barCode2": "",
"barCode3": ""
},
"memberDetail": {
"memberId": "M000001545",
"memberName": "TONY",
"grade": "1",
"status": "1",
"balance": 1000.00,
"pointBalance": 30000
}
}
支持撤销的交易
隔日退款(实体卡)
接口用途
- 用户需要退款时,可以调用此接口,支持全额或部分退款(依赖支付机构的接口)。
交易流程说明
- 该交易发至中间件后,中间件不会直接请求易百后台,而是先点亮MIS-POS,等待刷卡和输入密码,MIS-POS上确认后,中间件收到卡和密码信息再请求易百后台进行处理。
action
请求参数,收银机===>中间件
字段 |
类型 |
是否必填 |
字段意义 |
备注 |
---|
traceNo |
String |
是 |
收银机流水号 |
不允许重复 |
originalTraceNo |
String |
是 |
原收银机流水号 |
传入需要退款的原交易收银机流水号 |
refundAmount |
Price |
是 |
本次退款金额 |
单位:元 |
acquirer |
String |
否 |
收单机构 |
如:citicCashpay表示中信收单,如果收单撤销是必填的 |
请求报文举例
{
"traceNo": "99000009100010101732123",
"originalTraceNo": "99000009100010101732124",
"refundAmount": 40.8,
"acquirer": "citicCashpay"
}
返回参数,中间件===>收银机
字段 |
类型 |
是否必填 |
字段意义 |
备注 |
---|
traceNo |
String |
是 |
收银机流水号 |
不允许重复 |
orderNo |
String |
是 |
交易订单号 |
|
transDate |
String |
是 |
交易时间 |
格式为:YYYYmmddHHMMSS |
returnCode |
String |
是 |
返回码 |
00表示交易成功,其他表示失败 |
returnDesc |
String |
是 |
返回信息 |
交易结果描述或错误原因 |
discountCode |
String |
否 |
折扣编码 |
由收银机分配,用于入账计折扣类型,如:2016120102|10.00表示折扣10元 |
tenderCode |
String |
否 |
支付方式编码 |
由收银机分配,用于入账计支付方式,如:2016120101|20.00表示支付20元 |
refundAmount |
Price |
是 |
退款成功总金额 |
单位:元 |
fundChannel |
List<fundChannel> |
否 |
资金渠道 |
|
printDetail |
Object<printDetail> |
否 |
打印信息 |
如需要在收银小票上打印信息时必填 |
memberDetail |
Object<memberDetail> |
否 |
会员信息 |
返回本次交易的会员信息 |
返回报文举例
{
"traceNo": "99000009100010101732123",
"orderNo": "171698602301",
"transDate": "20161231120533",
"returnCode": "00",
"returnDesc": "SUCCESS",
"discountCode": "0001",
"tenderCode": "8001",
"refundAmount": 40.8,
"fundChannel": [
{
"channelNo": "001",
"channelName": "用户实付现金",
"channelAmount": "20.8"
},
{
"channelNo": "002",
"channelName": "用户积分支付",
"channelAmount": "20"
}
],
"printDetail": {
"cardNo64": "622562****8888",
"bank": "中信银行",
"paymentOrderNo": "201612315689412157458787",
"pointSale": "20000",
"qrCode1": "htt://www.xxx.com/url",
"qrCode2": "",
"qrCode3": "",
"barCode1": "12345679",
"barCode2": "",
"barCode3": ""
},
"memberDetail": {
"memberId": "M000001545",
"memberName": "TONY",
"grade": "1",
"status": "1",
"balance": 1000.00,
"pointBalance": 30000
}
}
支持退款的交易
- cardPayment
- CardRedemption
隔日退款(二维码)
接口用途
- 用户需要退款时,可以调用此接口,支持全额或部分退款(依赖支付机构的接口)。
action
请求参数,收银机===>中间件
字段 |
类型 |
是否必填 |
字段意义 |
备注 |
---|
traceNo |
String |
是 |
收银机流水号 |
不允许重复 |
originalTraceNo |
String |
是 |
原收银机流水号 |
传入需要退款的原交易收银机流水号 |
refundAmount |
Price |
是 |
本次退款金额 |
单位:元 |
请求报文举例
{
"traceNo": "99000009100010101732123",
"originalTraceNo": "99000009100010101732124",
"refundAmount": 40.8
}
返回参数,中间件===>收银机
字段 |
类型 |
是否必填 |
字段意义 |
备注 |
---|
traceNo |
String |
是 |
收银机流水号 |
不允许重复 |
orderNo |
String |
是 |
交易订单号 |
|
transDate |
String |
是 |
交易时间 |
格式为:YYYYmmddHHMMSS |
returnCode |
String |
是 |
返回码 |
00表示交易成功,其他表示失败 |
returnDesc |
String |
是 |
返回信息 |
交易结果描述或错误原因 |
refundAmount |
Price |
是 |
退款成功总金额 |
单位:元 |
discountCode |
String |
否 |
折扣编码 |
由收银机分配,用于入账计折扣类型,如:2016120102|10.00表示折扣10元 |
tenderCode |
String |
否 |
支付方式编码 |
由收银机分配,用于入账计支付方式,如:2016120101|20.00表示支付20元 |
fundChannel |
List<fundChannel> |
否 |
资金渠道 |
|
printDetail |
Object<printDetail> |
否 |
打印信息 |
如需要在收银小票上打印信息时必填 |
memberDetail |
Object<memberDetail> |
否 |
会员信息 |
返回本次交易的会员信息 |
返回报文举例
{
"traceNo": "99000009100010101732123",
"orderNo": "171698602301",
"transDate": "20161231120533",
"returnCode": "00",
"returnDesc": "SUCCESS",
"refundAmount": 40.8,
"discountCode": "0001",
"tenderCode": "8001",
"fundChannel": [
{
"channelNo": "001",
"channelName": "用户实付现金",
"channelAmount": "20.8"
},
{
"channelNo": "002",
"channelName": "用户积分支付",
"channelAmount": "20"
}
],
"printDetail": {
"cardNo64": "622562****8888",
"bank": "中信银行",
"paymentOrderNo": "201612315689412157458787",
"pointSale": "20000",
"qrCode1": "htt://www.xxx.com/url",
"qrCode2": "",
"qrCode3": "",
"barCode1": "12345679",
"barCode2": "",
"barCode3": ""
},
"memberDetail": {
"memberId": "M000001545",
"memberName": "TONY",
"grade": "1",
"status": "1",
"balance": 1000.00,
"pointBalance": 30000
}
}
支持退款的交易
卡余额或权益查询
接口用途
- 银行卡积分余额查询
- 银行卡余额查询
- 银行卡权益次数查询
- 预付费卡余额查询
- 会员卡积分或余额查询
交易流程说明
- 该交易发至中间件后,中间件不会直接请求易百后台,而是先点亮MIS-POS,等待刷卡和输入密码,MIS-POS上确认后,中间件收到卡和密码信息再请求易百后台进行处理。
action
请求参数,收银机===>中间件
字段 |
类型 |
是否必填 |
字段意义 |
备注 |
---|
traceNo |
String |
是 |
收银机流水号 |
不允许重复 |
activityProductNo |
String |
否 |
活动产品编号 |
卡BIN不明确时必填,易百分配 |
memberDetail |
Object<memberDetail> |
否 |
会员信息 |
会员交易时必填 |
请求报文举例
{
"traceNo": "99000009100010101732123",
"activityProductNo": "HDCP00000000001236",
"memberDetail": {
"memberId": "M000001545",
"memberName": "TONY",
"grade": "1",
"status": "1",
"balance": 1000.00,
"pointBalance": 30000
}
}
返回参数,中间件===>收银机
字段 |
类型 |
是否必填 |
字段意义 |
备注 |
---|
traceNo |
String |
是 |
收银机流水号 |
不允许重复 |
orderNo |
String |
是 |
交易订单号 |
单位:元 |
transDate |
String |
是 |
交易时间 |
格式为:YYYYmmddHHMMSS |
returnCode |
String |
是 |
返回码 |
00表示交易成功,其他表示失败 |
returnDesc |
String |
是 |
返回信息 |
交易结果描述或错误原因 |
rightsTimes |
Integer |
是 |
权益次数 |
返回可以享受的权益次数 |
moneyBalance |
Price |
是 |
现金余额 |
单位:元 |
pointBalance |
Price |
是 |
积分余额 |
单位:分 |
printDetail |
Object<printDetail> |
否 |
打印信息 |
如需要在收银小票上打印信息时必填 |
memberDetail |
Object<memberDetail> |
否 |
会员信息 |
返回本次交易的会员信息 |
返回报文举例
{
"traceNo": "99000009100010101732123",
"orderNo": "171698602301",
"transDate": "20161231120533",
"returnCode": "00",
"returnDesc": "SUCCESS",
"rightsTimes": 1,
"moneyBalance": 40.8,
"pointBalance": 40000,
"printDetail": {
"cardNo64": "622562****8888",
"bank": "中信银行",
"paymentOrderNo": "201612315689412157458787",
"pointSale": "0",
"qrCode1": "htt://www.xxx.com/url",
"qrCode2": "",
"qrCode3": "",
"barCode1": "12345679",
"barCode2": "",
"barCode3": ""
},
"memberDetail": {
"memberId": "M000001545",
"memberName": "TONY",
"grade": "1",
"status": "1",
"balance": 1000.00,
"pointBalance": 30000
}
}
电子凭证查询
接口用途
- 查询电子凭证的产品信息,可抵用的金额以及所属的活动,支持易百自有电子凭证和第三方电子凭证。
交易流程说明
- 该交易需要先采集二维码扫描器或键盘输入的二维码信息,再发至中间件,中间件收到请求后,检查包含ecoupon内容信息再请求易百后台进行处理。
action
请求参数,收银机===>中间件
字段 |
类型 |
是否必填 |
字段意义 |
备注 |
---|
traceNo |
String |
是 |
收银机流水号 |
不允许重复 |
qrcode |
String |
是 |
电子凭证号 |
要查询的电子凭证号 |
请求报文举例
{
"traceNo": "99000009100010101732123",
"qrcode": "00000001235"
}
返回参数,中间件===>收银机
字段 |
类型 |
是否必填 |
字段意义 |
备注 |
---|
traceNo |
String |
是 |
收银机流水号 |
不允许重复 |
orderNo |
String |
是 |
交易订单号 |
单位:元 |
transDate |
String |
是 |
交易时间 |
格式为:YYYYmmddHHMMSS |
returnCode |
String |
是 |
返回码 |
00表示交易成功,其他表示失败 |
returnDesc |
String |
是 |
返回信息 |
交易结果描述或错误原因 |
canPayAmount |
Price |
是 |
可抵用的总金额 |
单位:元 |
activityProductNo |
String |
否 |
活动产品编号 |
该电子凭证所属的活动产品编号 |
activityProductName |
String |
否 |
活动产品名称 |
该电子凭证所属的活动产品名称 |
返回报文举例
{
"traceNo": "99000009100010101732123",
"orderNo": "171698602301",
"transDate": "20161231120533",
"returnCode": "00",
"returnDesc": "SUCCESS",
"canPayAmount": 40.8,
"activityProductNo": "2016123101",
"activityProductName": "中信365权益"
}
会员集点
接口用途
action
请求参数,收银机===>中间件
字段 |
类型 |
是否必填 |
字段意义 |
备注 |
---|
traceNo |
String |
是 |
收银机流水号 |
不允许重复 |
totalAmount |
Price |
是 |
交易总金额 |
单位:元 |
undiscountAmount |
Price |
否 |
不可打折金额 |
单位:元 |
activityNo |
String |
否 |
集点活动编号 |
收银机集点时填写,后台集点不填 |
points |
Integer |
否 |
集点点数 |
收银机集点时填写,后台集点不填 |
goodsDetail |
List<goodsDetail> |
否 |
产品明细 |
验证产品明细时必填 |
memberDetail |
Object<memberDetail> |
否 |
会员信息 |
会员支付时必填 |
请求报文举例
{
"traceNo": "99000009100010101732123",
"totalAmount": 40.8,
"undiscountAmount": 0,
"activityNo": "2016121901",
"points": 100,
"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
}
}
返回参数,中间件===>收银机
字段 |
类型 |
是否必填 |
字段意义 |
备注 |
---|
traceNo |
String |
是 |
收银机流水号 |
不允许重复 |
orderNo |
String |
是 |
交易订单号 |
易百生成 |
transDate |
String |
是 |
交易时间 |
格式为:YYYYmmddHHMMSS |
returnCode |
String |
是 |
返回码 |
00表示交易成功,其他表示失败 |
returnDesc |
String |
是 |
返回信息 |
交易结果描述或错误原因 |
activityProductNo |
String |
否 |
集点活动产品编号 |
|
activityProductName |
String |
否 |
集点活动产品名称 |
|
printDetail |
Object<printDetail> |
否 |
打印信息 |
如需要在收银小票上打印信息时必填 |
memberDetail |
Object<memberDetail> |
否 |
会员信息 |
返回本次交易的会员信息 |
返回报文举例
{
"traceNo": "99000009100010101732123",
"orderNo": "171698602301",
"transDate": "20161231120533",
"returnCode": "00",
"returnDesc": "SUCCESS",
"activityProductNo": "2016123102",
"activityProductName": "圣诞集点活动",
"printDetail": {
"cardNo64": "622562****8888",
"bank": "中国银行",
"paymentOrderNo": "201612315689412157458787",
"pointSale": "20000",
"qrCode1": "htt://www.xxx.com/url",
"qrCode2": "",
"qrCode3": "",
"barCode1": "12345679",
"barCode2": "",
"barCode3": ""
},
"memberDetail": {
"memberId": "M000001545",
"memberName": "TONY",
"grade": "1",
"status": "1",
"balance": 1000.00,
"pointBalance": 30000
}
}