文档
测试

input(扫描输入)

POST
http://localhost:9090/api/v1/order/input

接口描述

用于在销售主界面和结算界面这两个场景中,对用户输入的值进行解析(这些值可以是商品/数量/重量/现金金额/移动支付码/会员信息等),并根据其输入的值的含义进行后继操作。注:调用方需要根据operate的返回值确定后续要调用的接口

请求参数

参数名
类型
描述
必填
token
string
身份验证
必填
scene
string
调用场景(具体描述可参考文档后面<说明示例>部分的内容)
必填
code
string
输入值(具体描述可参考文档后面<说明示例>部分的内容)
必填
way
string
输入模式(具体描述可参考文档后面<说明示例>部分的内容)
必填

响应参数

参数名
类型
描述
必填
code
string
状态码(0:成功/其它:错误)
必填
message
string
错误信息(仅在发生错误时有意义)
必填
data
json
json对象
必填
operate
string
(具体描述可参考文档后面<说明示例>部分的内容)
必填
assist
string
(具体描述可参考文档后面<说明示例>部分的内容)
必填

说明 / 示例

### 入口参数 [scene] 定义 > `该参数用来指明调用场景,可取值` `[1]:在销售主界面调用(商品/数量/重量/移动支付码/会员信息)` `[2]:在结算界面调用(现金金额/移动支付码/会员信息)` `[其它值]:参数错误` ### 入口参数 [code] 定义 > `该参数用于指明用户输入的内容,可以是以下任意值:` `商品条码(对于生鲜称重商品支持[条码{#}重量]的格式同时传递条码和重量)` `数量/重量` `移动付款码` `会员信息(手机号/刷卡值/会员电子码)` `现金金额` `[空值]:参数错误` ### 入口参数 [way] 定义 > `该参数用于指明[code]的输入方式,可取值:` `[0]:手动通过键盘逐个字符输入` `[1]:设备输入[包括扫描枪/磁卡读卡器/IC读卡器/点击商品标签等全自动输入的方式]` `[其它值]:参数错误` ### 出口参数 [data.operate] 定义 > `该参数用于返回 [code] 的解析结果(指明用户输入的这个code是什么含义),同时也指明了调用方后续应该要进行什么操作` `可取值:` > `[0]:输入值为商品(销售主界面),在input内部会自动调用operate(0,条码)将该商品加入购物车,前端程序后续需要调用以下接口` `.../order/cart` > `[1]:输入值为数量(销售主界面),在input内部会自动调用operate(1,数量)修改当前商品的数量,前端程序后续需要调用以下接口` `.../order/cart` > `[2]:输入值为移动支付码(销售主界面/结算界面),前端程序后续需要调用以下接口` `.../order/pay(operate=2)` `.../order/cart` > `[3]:输入值为会员信息(销售主界面),前端程序后需要调用以下接口` `.../order/vip` `.../order/cart` > `[4]:输入值为会员信息(结算界面),前端程序后需要调用以下接口` `.../order/pay(operate=4)` `.../order/cart` > `[5]:输入值为现金金额(结算界面),前端程序后需要调用以下接口` `.../order/pay(operate=5)` `.../order/cart` > `[其它值]:忽略,无需后续处理。比如在收银主界面误扫了二维码网址,此种情况下input不会返回错误,但data.operate也不会返回有效值,表示程序无需后继处理,也不需要提示用户,直接忽略即可` ### 出口参数 [data.assist] 定义 > `该参数用于对出口参数 [data.operate] 做进一步的补充说明。` `比如:` `当用户输入的 [code] 是代表商品条码的时候,[data.operate]会返回[0]值,但在有些情况下,程序除了需要知道这个输入是商品条码之外,还需要要知道这个商品条码是什么类型的(是国标码、还是秤码、还是生鲜店内码),这个时候就可以通过这个额外的参数 [data.assist] 来进行判断。` `再比如:` `当用户在结算界面扫描顾客手机上的移动付款码的时候,[data.operate]会返回一个[2]值,表示用户这个输入是移动付款码,此时程序需要继续调用 [pay] 这个接口发起支付,但由于支付是一个耗时的过程,通常需要在前端交互界面上显示进度提示信息(比如显示:支付宝...请稍候),那么调用方如何知道顾客手机上的这个付款码是支付宝而不是微信呢,这时候就需要通过 [data.assist] 来进行判断。` > `可取值:` `[0.1]:商品国标码` `[0.2]:称重商品秤码` `[0.3]:生鲜商品店内码` `[1.1]:数量` `[2.1]:支付宝付款码` `[2.2]:微信付款码` `[2.3]:银联付款码` `[2.4]:数字人民币付款码` `[3.1]:手机号` `[3.2]:微会员编码` `[3.3]:磁卡或IC卡刷卡值`