接口介绍
四码合一的条码支付接口, 本接口会根据条码自动选择支付方式并完成支付。
参数简介
公共参数
参数名 |
参数类型 |
参数介绍 |
是否必填 |
command |
String(32) |
接口名,固定为:open.api.barcode |
是 |
app |
String(32) |
接入商标识 |
是 |
operator_id |
String(32) |
收银员的id,用于标识收款账户 |
是 |
version |
String(16) |
调用的接口版本,固定为:2.0 |
是 |
sign_type |
String(32) |
签名类型 MD5、RSA,默认MD5 |
否 |
request_id |
String(64) |
请求报文ID,唯一定位一次报文请求,由发起方生成,应答方原样返回,uuid生成,全局唯一 |
是 |
request_time |
String(32) |
请求发起时间,格式:yyyyMMddHHmmss,请求发起时间,应答方原样返回 |
是 |
sign |
String(32) |
签名,详见MD5签名、RSA256签名 |
是 |
参数简介
参数名 |
参数类型 |
参数介绍 |
是否必填 |
local_order_no |
String(64) |
接入方的本地订单号,接入方请保证这个订单号的唯一性, 采宝不进行唯一性校验,如果订单号不唯一,会影响查询结果 |
是 |
barcode |
String(32) |
用户微信或支付宝的付款码 |
是 |
amount |
Long |
订单总额,以分为单位 |
是 |
un_discount_amount |
Long |
不参与优惠金额,以分为单位 |
否 |
subject |
String(128) |
订单描述,在渠道方订单详情中展示,小于128个字符 |
否 |
remark |
String(128) |
订单备注,小于128个字符 |
否 |
goods_list |
String(4096) |
商品列表 |
否 |
alipay_body |
String(4096) |
针对支付宝官方渠道, 该字段会放到支付宝相应接口的body中 |
否 |
wx_hospital_scene |
String(64) |
微信医疗场景 |
否 |
notify_url |
String(256) |
支付成功之后的回调地址,具体请参照:支付完成之后的通知 |
否 |
goods_list 介绍
goods_list是商品列表信息, 传入此值后会自动统计商品的销量等信息,并且会被放入订单中。 格式为json格式, 举例如下:
[
{
"goods_id":"", ## 商品id,可空
"goods_num":"", ## 商品编号,这个值用于传入到微信、支付宝等, 用于支持单品券的核销,可空
"goods_name":"", ## 商品名称,可空
"sell_amount":"", ## 卖出数量,不可为空
"goods_price":"", ## 商品单价,不可为空
"goods_sku_id":"" ## 卖出的sku的id,可空
},
{
"goods_id":"", ## 商品id,可空
"goods_num":"", ## 商品编号,这个值用于传入到微信、支付宝等, 用于支持单品券的核销,可空
"goods_name":"", ## 商品名称,可空
"sell_amount":"", ## 卖出数量,不可为空
"goods_price":"", ## 商品单价,不可为空
"goods_sku_id":"" ## 卖出的sku的id,可空
},
{
"goods_id":"", ## 商品id,可空
"goods_num":"", ## 商品编号,这个值用于传入到微信、支付宝等, 用于支持单品券的核销,可空
"goods_name":"", ## 商品名称,可空
"sell_amount":"", ## 卖出数量,不可为空
"goods_price":"", ## 商品单价,不可为空
"goods_sku_id":"" ## 卖出的sku的id,可空
}
......
]
返回值说明
公共返回值
参数名 |
所属结构 |
返回值类型 |
返回值说明 |
特殊备注 |
success |
result |
boolean |
标识这次请求是否成功 |
请不要用这个值来判断收银是否成功,订单的结果以返回的order_status为准。 |
error_code |
result |
String(64) |
错误码 |
|
error_msg |
result |
String(16) |
错误码的详细说明 |
|
request_id |
data |
String(64) |
请求报文ID |
|
request_time |
data |
String(32) |
请求发起时间,格式:yyyyMMddHHmmss |
|
response_time |
data |
String(32) |
请求返回时间,格式:yyyyMMddHHmmss |
|
sign |
sign |
String |
签名值 |
具体参照: 接口验签规则 |
数据返回值
参数名 |
所属结构 |
返回值类型 |
返回值说明 |
特殊备注 |
local_order_no |
data |
String(64) |
本地订单号 |
|
cb_order_no |
data |
String(64) |
采宝的订单号,最长64位 |
|
out_order_no |
data |
String(64) |
支付宝、微信等的订单号id,最长64位 |
|
order_status |
data |
String(64) |
订单状态 |
该状态用于判断收银是否成功,具体取值请参照:名词解释 |
total_amount |
data |
long |
订单金额(分为单位) |
|
receive_amount |
data |
long |
收款金额(分为单位) |
|
pay_channel |
data |
String(64) |
支付渠道 |
具体取值请参照:名词解释 |
subject |
data |
String(128) |
订单描述 |
|
remark |
data |
String(128) |
订单备注 |
|
discount_amount |
data |
long |
优惠金额(分为单位) |
|
payment_way |
data |
String(64) |
付款方式 |
具体取值参照:名词解释 |
pay_time |
data |
String(32) |
支付时间,格式:yyyy-MM-dd HH:mm:ss |
|
buyer_id |
data |
String(64) |
消费者ID,支付宝支付全局唯一,微信支付并不是唯一的(同一个商户,汇付微信、乐刷微信、官方微信,同一个消费者在每个通道下都会有一个ID)请注意微信订单这个buyer_id是消费者在平台通道公众号下的openId |
返回值示例
{
"result": {
"success": false,
"error_code":"10",
"error_msg": "command参数为空"
},"data":{
"cb_order_no": "TCAP1809261638005776347450",
"discount_amount": 0,
"local_order_no": "OPENAPI201809261637391813348",
"order_status": "PAY_SUC",
"pay_time": "2018-09-26 16:38:33",
"pay_channel": "ALIPAY",
"payment_way": "BARCODE",
"receive_amount": 1,
"request_id": "15a12198-230c-4290-ba44-8d7064f06e70",
"request_time": "20180926163739",
"response_time": "20180926163836",
"total_amount": 1
},"sign":"NH/qBDrbyn3ZQYe535dO74sZuw7JeZo6ht8hWRyEASeshIc2KE11bxhG5Qd4QdvlodZYBRunaclEOMM19ZCUWmu5lFGprMR5KjcXSlZ7ErPTn82V5y8j7DuuAH/3UnxV/E6ZWlu788ooQ3xTncNNDs3WivSKwOgJsnDLZbVrFaxUzK+RnMr2p5myLY4Qo4D9AV9afPbJJTBszpAybcu0GBPeilBe4TZX/iLgSYb1SRryhnwlf94cgTREWa8u/0tBV8XJmzlAxmmCZHJtjDJqSJ8aAktdj2Y3QrzunQ3a4I07D+UaXU+csQAxJsCILQi8ye2ke4N+xQPvjdDo+cb8yw=="
}
Js Demo
http://openapi.caibaopay.com/test/api/v2/barcode.htm