购买
API endpoint: {api_domain}/api/lite-pos/v1/sales/purchase
Verb: POST
Signature :需要签名,参考统一签名说明
请求参数:
参数 | 出现 | 类型 | 约束 | 描述 |
---|---|---|---|---|
request_id | 1 | String | 字符串,最大64位 | 请求编号,每次请求必须唯一;表示每一次请求时不同的业务,如果第一次请求业务失败了,再次请求,可以用于区分是哪次请求的业务。 |
brand_code | 1 | String | 数字,最大32位 | 品牌编号,系统对接前由"收钱吧"分配并提供 |
store_sn | 1 | String | 字符串,最大36位 | 商户内部使用的门店编号 |
store_name | 0-1 | String | 字符串,最大255位 | 商户门店名称 |
workstation_sn | 1 | String | 字符串,最大36位 | 门店收银机编号,如果没有请传入"0" |
check_sn | 1 | String | 字符串,最大32位 | 商户订单号,在商户系统中唯一 |
sales_sn | 0-1 | String | 字符串,最大36位 | POS 或 电商等业务系统内的实际销售订单号,不同于check_sn。如果发起支付请求时该订单号已经生成,强烈建议传入,方便后续对账和运营流程使用。本字段不影响交易本身。 |
scene | 1 | String | 数字,2位 | 业务场景值:0-无场景,1-智能终端,2-H5,4-PC,5-微信小程序/插件,7-刷脸终端,8-立即付,10-APP,11-顾客扫码,12-顾客出码 |
sales_time | 1 | String | 字符串,20- 25位 | 商户订单创建时间, 格式详见 1.5时间数据元素定义 |
expire_time | 0-1 | String | 数字,最大12位 | 订单有效时间,传整数。单位为分钟,最小值为1,最大值为43200。默认24小时(即1440)。 expire_time和expired_at二选一,如果都传,优先使用expired_at |
expired_at | 0-1 | String | 数字,20- 25位 | 订单绝对超时时间。不能大于30天。格式详见 1.5时间数据元素定义 expire_time和expired_at二选一,如果都传,优先使用expired_at |
amount | 1 | String | 数字,最大12位 | 订单总金额,精确到分。如果同时传入【订单总金额】,【商品总金额】,【运费】,必须满足【订单总金额】=【商品总金额】+【运费】) |
item_amount | 0-1 | String | 数字,最大 12 位 | 商品总金额,精确到分 |
freight | 0-1 | String | 数字,最大 12 位 | 运费,精确到分 |
currency | 1 | String | 字符串,3位 | 币种,ISO numeric currency code 如:"156"for CNY |
subject | 1 | String | 字符串,最大64位 | 订单简短描述,建议传8个字内,手机账单支付凭证页“商品说明”会展示 |
description | 0-1 | String | 字符串,最大255位 | 订单描述 |
operator | 1 | String | 字符串,最大32位 | 操作员,可以传入收款的收银员或导购员。例如"张三" |
customer | 0-1 | String | 字符串,最大32位 | 可以传入需要备注顾客的信息 |
extension_1 | 0-1 | String | 字符串,最大32位 | 拓展字段1,可以用于做自定义标识,如座号,房间号; 智能终端手动录单功能需要添加此字段请联系收钱吧技术支持 |
extension_2 | 0-1 | String | 字符串,最大32位 | 拓展字段2,可以用于做自定义标识,如座号,房间号; 智能终端手动录单功能需要添加此字段请联系收钱吧技术支持 |
industry_code | 1 | String | 数字,1位 | 行业代码, 0=零售;1:酒店; 2:餐饮; 3:文娱; 4:教育; |
pos_info | 1 | String | 字符串,最大64位 | 传入商户系统的产品名称、系统编号等信息,便于帮助商户调查问题 |
notify_url | 0-1 | String | 字符串,最大255位 | 通知接收地址。总共回调7次,回调时间间隔:4m,10m,10m,1h,2h,6h,15h |
return_url | 0-1 | String | 字符串,最大支持255位 | 支付结果页,H5场景、PC场景和APP场景选填,其余场景不适用 |
back_url | 0-1 | String | 字符串,最大支持255位 | PC场景与手机浏览器(非微信/支付宝)H5场景适用,用于定义收银台返回按钮跳转地址 |
reflect | 0-1 | String | 字符串,最大255位 | 反射参数; 任何开发者希望原样返回的信息,可以用于关联商户ERP系统的订单或记录附加订单内容。 |
enable_sub_tender_types | 0-1 | String | 字符串,最大64位 | 可用的二级支付方式sub_tender_type, 多个sub_tender_type用“|”(竖线符号)隔开。 与disable_sub_tender_types互斥 |
disable_sub_tender_types | 0-1 | String | 字符串,最大64位 | 不可用的二级支付方式sub_tender_type, 多个sub_tender_type用“|”(竖线符号)隔开。 与enable_sub_tender_types互斥 |
specified_payment | 0-1 | JSON | 指定支付方式使用规则,收银台界面展示生效。字段定义见下表specified_payment | |
dynamic_id | 0-1 | String | 字符串,最大32位 | 付款码,scene=12时必填 |
crm_account_option | 0-1 | Object | crm_account_option | 会员账户集成参数。字段定义见下表crm_account_option |
items | 0-n | [item] | item数组 | 订单货物清单。 数组元素为item对象,json格式,其字段定义见下表items |
tenders | 0-n | [tender] | tender数组 | 指定本订单的流水信息。 数组元素为tender对象,json格式,其字段定义见下表tenders 不指定支付方式时可不传该字段,由用户在相应场景的收银台界面内选择支付方式;指定支付方式时下发各支付方式设置;预授权完成必须下发该项目并指定授权时的流水号 |
trail_flag | 0-1 | String | 数字 | 特性标识:1-微信trail, 2-支付宝trail。 传入1过滤除了301-微信、礼品卡支付外的所有支付方式,传入2过滤除了302-支付宝、402-花呗分期外的所有支付方式。 仅应用于小程序发版场景,不作为生产订单控制支付方式使用。 |
activity_tag | 0-1 | String | 字符串,最大32位 | 活动标识,用于匹配营销活动。 |
longitude | 0-1 | String | 字符串,最大32位 | 经度,经纬度必须同时出现 |
latitude | 0-1 | String | 字符串,最大32位 | 纬度,经纬度必须同时出现 |
specified_payment:
参数 | 出现 | 类型 | 约束 | 描述 |
---|---|---|---|---|
installment_tenders | 0-1 | [installmentTenders] | installmentTenders数组 | 分期信息,分期支付时有效。 数组元素为installmentTenders对象,json格式,其字段见下表 |
selected_giftcard | 0-1 | String | 数字 | 礼品卡支付方式下,按默认顺序选中其下足额的礼品卡 0-否,1-是 |
partial_payment | 0-1 | String | 数字 | 是否强制使用分笔支付,是则直接进入分笔收银台 0-否,1-是 目前仅H5和PC场景支持。 |
installmentTenders:
参数 | 出现 | 类型 | 约束 | 描述 |
---|---|---|---|---|
sub_tender_type | 1 | String | 字符串,最大64位 | 分期支付下的二级支付方式sub_tender_type (详见一级支付方式为“分期”的二级支付方式代码) |
installment_options | 1 | [installmentOptions] | installmentOptions数组 | 分期产品具体参数。 数组元素为installmentOptions对象,json格式,其字段见下表 |
installmentOptions:
参数 | 出现 | 类型 | 约束 | 描述 |
---|---|---|---|---|
installment_number | 1 | String | 数字 | 分期数。必填 3-分3期 6-分6期 12-分12期 |
installment_fee_merchant_percent | 0-1 | String | 数字 | 商家是否贴息。 100=商家贴息,0=商家不贴息 不传则执行后台配置品牌默认的贴息方式 |
crm_account_option:
参数 | 出现 | 类型 | 约束 | 描述 |
---|---|---|---|---|
app_type | 1 | String | 数字,1位 | 权益类型, 1:financial_privilege(金融权益), 2:coupon(券,如单品券、优惠券等), 3:card(礼品卡), 4:会员, 5:wallet(礼品卡 & 储值账户) |
member_sn | 0-1 | String | 字符串,最大36位 | 商户会员编号,商户CRM对接唯一标识 app_type=1(金融权益)下,member_sn与member_id至少填一个 |
member_id | 0-1 | String | 字符串,最大36位 | 商户会员id,商户系统会员唯一标识外其它标识 app_type=1(金融权益)下,member_sn与member_id至少填一个 |
mobile | 0-1 | String | 字符串,最大36位 | 手机号,对接app_type=3时选用 |
wx_union_id | 0-1 | String | 字符串,最大36位 | 微信公众平台用户标识,对接app_type为“3”或“5”时默认优先使用 |
preferred_class | 0-1 | String | 字符串,最大36位 | 预先选择权益类型 |
preferred_refer_id | 0-1 | String | 字符串,最大36位 | 预先选择权益编号 |
risk_level | 0-1 | String | 字符串,最大36位 | 账户风险等级。high高风险,mid中风险,low低风险,rel可信 |
items:
参数 | 出现 | 类型 | 约束 | 描述 |
---|---|---|---|---|
item_code | 1 | String | 字符串,最大32位 | 商户系统中的商品编号 |
item_desc | 1 | String | 字符串,最大64位 | 商品描述信息,例"白色短袖" |
category | 0-1 | String | 字符串,最大32位 | 商品所属大类,例"短袖" |
unit | 0-1 | String | 字符串,最大32位 | 商品单位,例"件" |
item_qty | 1 | String | 数字,最大8位 | 商品数量,例"2";当退货时数量为负数,例:"-2" |
item_price | 1 | String | 数字,最大12位 | 商品单价,精确到分 |
sales_price | 1 | String | 数字,最大12位 | 商品成交价格,一般为数量*单价,如有折扣再进行扣减,精确到分;当退货时成交价为负数;目前不校验"数量*单价"结果是否与此字段值相等 |
type | 1 | String | 数字,1位 | 0-销售,1-退货 |
spec | 0-1 | String | 字符串,最大64位 | 商品的规格 |
remark | 0-1 | String | 字符串,最大128位 | 商品的备注 |
extra | 0-1 | String | 字符串,最大128位 | 备用 |
return_store_sn | 0-1 | String | 字符串,最大36位 | 原商品销售门店号,退货时必填 |
return_workstation_sn | 0-1 | String | 字符串,最大36位 | 原商品销售收银机号,退货时必填 |
return_check_sn | 0-1 | String | 字符串,最大32位 | 原商品销售订单号,退货时必填 |
tenders:
参数 | 出现 | 类型 | 约束 | 描述 |
---|---|---|---|---|
tender_type | 1 | String | 数字,1位 | 支付方式类型:0-其他,1-预授权完成,2-银行卡,3-QRCode,4-分期,99-外部 |
sub_tender_type | 0-1 | String | 数字 | 二级支付方式类型(开发者不需要传入具体值): 001-现金,如需在轻POS录入其他支付方式,在对接时与收钱吧沟通配置; 101-银行卡预授权完成, 102-微信预授权完成,103-支付宝预授权完成; 201-银行卡; 301-微信,302-支付宝; 402-花呗分期 |
sub_tender_desc | 0-1 | String | 字符串 | 当tender_type为99时,必填,且传入参数值为收银系统自定义的支付方式 |
amount | 1 | String | 数字,最大12位 | 支付金额,精确到分; |
transaction_sn | 1 | String | 字符串,最大36位 | 商户系统流水号,在商户系统中唯一 |
installment_number | 0-1 | String | 数字 | 指定分期数,分期支付时必填 3-分3期 6-分6期 12-分12期 |
installment_fee_merchant_percent | 0-1 | String | 数字 | 商家贴息比例0~100的整数,跟期数同时出现,指定期数时必传。花呗分期只能传0或者100,商家承担手续费传入100,用户承担手续费传入0。 |
original_tender_sn | 0-1 | String | 字符串,最大32位 | tender_type 为1时必填,内容为预授权订单操作成功后,轻POS返回给商户的预授权流水号 |
pay_status | 0-1 | String | 数字,最大12位 | 标记该tender是否已经支付完成。 0:待操作, 1:已完成(tender_type为99时必须为1:已完成;其他的tender_type必须为0:待操作) |
create_time | 0-1 | String | 字符串,最大32位 | tender创建时间,当pay_status为1时必填, 格式详见 1.5时间数据元素定义 |
返回参数:
以下是共同返回参数
参数 | 出现 | 类型 | 约束 | 描述 |
---|---|---|---|---|
brand_code | 1 | String | 数字,最大32位 | 品牌编号,系统对接前由"收钱吧"分配并提供,返回调用方传入的值 |
store_sn | 1 | String | 字符串,最大36位 | 商户内部使用的门店编号,返回调用方传入的值 |
workstation_sn | 1 | String | 字符串,最大36位 | 门店收银机编号,返回调用方传入的值 |
check_sn | 1 | String | 字符串,最大32位 | 商户订单号,返回调用方传入的值 |
order_sn | 1 | String | 字符串,最大32位 | 本系统为该订单生成的订单序列号 |
sales_sn | 0-1 | String | 字符串,最大36位 | POS 或 电商等业务系统内的实际销售订单号,不同于check_sn。如果发起支付请求时该订单号已经生成,强烈建议传入,方便后续对账和运营流程使用。本字段不影响交易本身。 |
order_token | 1 | String | 字符串,最大 64 位 | 订单凭证,H5、微信小程序、微信小程序插件,刷脸终端的场景 |
order_source | 1 | String | 数字,1 位 | 订单来源:1=商户系统,3=智能终端,4=门店码牌 |
cashier_url | 0-1 | String | 字符串,最大255位 | 终端的场景轻POS收银台地址: - H5/顾客扫码场景下返回收银台链接; - APP场景下返回APP跳转小程序链接。 |
order_image_url | 0-1 | Stirng | 字符串,最大 255 | 轻POS订单图片地址,图片上二维码内容为cashier_url,扫码进入轻POS收银台页面,H5场景下会返回该字段 |
order_landing_url | 0-1 | String | 字符串,最大255位 | 轻POS订单详情页地址,H5场景下需收钱吧配置才会返回该字段,默认不返回 |
order_landing_url_img | 0-1 | String | 字符串,最大255位 | 轻POS订单图片地址,图片上二维码内容为order_landing_url,扫码进入订单详情页,H5场景下需收钱吧配置才会返回该字段,默认不返回 |
reflect | 0-1 | String | 位字符串,最大255位 | 反射参数; 任何开发者希望原样返回的信息,可以用于关联商户ERP系统的订单或记录附加订单内容。 |
以下是“12-顾客出码”场景下的特有返回参数
参数 | 出现 | 类型 | 约束 | 描述 |
---|---|---|---|---|
order_status | 1 | String | 数字,1位 | 订单状态0:已取消,1:待操作,2:操作中,3:等待结果中,4:操作完成,5:部分完成,6:操作失败,7:已终止 |
sales_time | 1 | String | 字符串,20- 25位 | 订单创建时间, 格式详见 1.5时间数据元素定义 |
amount | 1 | String | 数字,最大12位 | 订单总金额,精确到分。 |
currency | 1 | String | 字符串,3位 | 币种,ISO numeric currency code 如:"156"for CNY |
subject | 1 | String | 字符串,最大64位 | 订单简短描述 |
description | 0-1 | String | 字符串,最大255位 | 订单描述 |
operator | 1 | String | 字符串,最大32位 | 操作员,可以传入收款的收银员或导购员。例如“张三” |
customer | 0-1 | String | 字符串,最大32位 | 可以传入需要备注顾客的信息 |
extension_1 | 0-1 | String | 字符串,最大32位 | 拓展字段1,可以用于做自定义标识,如座号,房间号 |
extension_2 | 0-1 | String | 字符串,最大32位 | 拓展字段2,可以用于做自定义标识,如座号,房间号 |
industry_code | 1 | String | 数字,1位 | 行业代码, 0=零售;1:酒店; 2:餐饮; 3:文娱; 4:教育; |
pos_info | 1 | String | 字符串,最大64位 | 传入商户系统的产品名称、系统编号等信息,便于帮助商户调查问题 |
notify_url | 0-1 | String | 字符创,最大255位 | 通知接收地址。总共回调7次,回调时间间隔:4m,10m,10m,1h,2h,6h,15h |
items | 0-n | [Item] | item数组 | 订单货物清单,定义如下表 |
tenders | 0-n | [tender] | tender数组 | 指定本订单的流水信息,定义如下表 |
items:
参数 | 出现 | 类型 | 约束 | 描述 |
---|---|---|---|---|
item_code | 1 | String | 字符串,最大32位 | 商户系统中的商品编号 |
item_desc | 1 | String | 字符串,最大64位 | 商品描述信息,例"白色短袖" |
category | 0-1 | String | 字符串,最大32位 | 商品所属大类,例"短袖" |
spec | 0-1 | String | 字符串,最大 32 位 | 规格 |
unit | 0-1 | String | 字符串,最大32位 | 商品单位,例"件" |
item_qty | 1 | String | 数字,最大8位 | 商品数量,例"2" |
item_price | 1 | String | 数字,最大12位 | 商品单价,精确到分 |
sales_price | 1 | String | 数字,最大12位 | 商品成交价格,一般为数量*单价,如有折扣再进行扣减,精确到分;当退货时成交价为负数;目前不校验"数量*单价"结果是否与此字段值相等 |
type | 1 | String | 数字,1位 | 0-销售,1-退货 |
return_store_sn | 0-1 | String | 字符串,最大36位 | 原商品销售门店号,退货时必填 |
return_workstation_sn | 0-1 | String | 字符串,最大36位 | 原商品销售收银机号,退货时必填 |
return_check_sn | 0-1 | String | 字符串,最大32位 | 原商品销售订单号,退货时必填 |
tenders:
参数 | 出现 | 类型 | 约束 | 描述 |
---|---|---|---|---|
tender_sn | 1 | String | 数字,最大32位 | 支付/退款成功后,轻POS生成的唯一流水号 |
transaction_sn | 1 | String | 数字,最大36位 | 商户系统流水号,在商户系统中唯一 |
original_tender_sn | 0-1 | String | 字符串,最大32位 | tender_type 为1时必填,内容为预授权订单操作成功后,轻POS返回给商户的预授权流水号 |
amount | 1 | String | 数字,最大12位 | 支付金额,精确到分 |
collected_amount | 1 | String | 数字,最大12位 | 商家实收,精确到分 |
paid_amount | 1 | String | 数字,最大12位 | 消费者实付,精确到分 |
pay_status | 1 | String | 数字,1位 | 支付状态, 1:待操作; 2:支付中; 3:支付成功; 4:退款中; 5:退款成功;6:退款失败;7:支付失败;8:未知状态; |
pay_time | 0-1 | String | 字符串,20- 25位 | 支付源交易流水完成时间, 格式详见 1.5时间数据元素定义 |
tender_type | 1 | String | 数字,1位 | 支付方式类型:0-其他,1-预授权完成,2-银行卡,3-QRCode,4-分期,99-外部 |
sub_tender_type | 0-1 | String | 数字 | 二级支付方式类型: 001-现金,如需在轻POS录入其他支付方式,在对接时与收钱吧沟通配置; 101-银行卡预授权完成,102-微信预授权完成,103-支付宝预授权完成; 201-银行卡; 301-微信,302-支付宝; 402-花呗分期 |
sub_tender_desc | 0-1 | String | 字符串 | 二级支付方式描述。如:微信支付 |
internal_transaction_sn | 0-1 | String | 字符串,最大 | 移动支付:收钱吧传入支付宝/微信的out_trade_no; 银行卡支付:交易返回的交易授权码 |
channel_sn | 0-1 | String | 字符串,最大 | 支付渠道流水号,操作成功时存在。 微信支付宝:微信支付宝流水号; 银行卡:银行卡流水号。 |
installment_number | 0-1 | String | 数字 | 分期数,分期支付时返回 |
installment_fee_merchant_percent | 0-1 | String | 数字 | 商家贴息比例,分期支付时返回 |