用户涉及三种行为:上传用户点菜的菜单、上传用户排号订单、上传用户预订订单行为。
1、使用说明
用户点菜后,每个状态都上传全量的用户的菜品订单信息。
用户点菜后的状态如下:
用户下单,等待商家确认;商家已经确认;商家确认,等待支付;支付完成,结账成功;点菜关闭;
detailUrl使用说明:传入的URL必须与开放平台后台,应用APPID配置的授权URL的域名相同,保证后续网页授权可以跳转过去。例如:上传的detailUrl=http://XXXXX.com?orderId=1234 会在当前URL上面追加上&openAppId=X&shopId=口碑店铺ID&bizScenario=XX。网页授权成功后跳转到ISV平台,URL会是:http://XXXXX.com?orderId=1234&openAppId=X&shopId=口碑店铺ID&bizScenario=XX&app_id=XXX&source=alipay_wallet&scope=auth_base&auth_code=ca34ea491e7146cc87d25fca24c4cD11 ,后面ISV就可以做自己的业务逻辑,比如解析orderId、auth_token参数 。然后ISV通过接口alipay.system.oauth.token根据auth_code查询支付宝会员信息。详见网页授权文档。
source说明:从第三方平台进入开发者应用,后产生的数据,传入第三方平台域名,比如当前数据是支付宝扫码后产生,传入支付宝域名alipay.com,是在微信打开后产生的数据,传入微信域名weixin.qq.com,如果数据不是从第三方平台进入后产生的数据,设置自己的域名即可,字段内容不做强制校验。
2、action_type:order_dishes
3、entity:user
4、action_detail说明
参数名称 | 参数类型 | 必填 | 描述 |
---|---|---|---|
totalPrice | Long | 是 | 总价(单位分,定义类型是long,金额单位都是分) |
discountPrice | Long | 是 | 优惠金额(单位分,定义类型是long,金额单位都是分) |
realPrice | Long | 是 | 实际支付(单位分,定义类型是long,金额单位都是分) |
source | String | 否 | 菜单来源 、参考上面说明 |
status | String | 是 | 11 用户下单、等待商家确认 12 商家已经确认 13 商家确认,等待支付 14 支付完成,结账成功 15 点菜关闭 |
payTime | Long | 否 | 支付时间(到毫秒,参考demo) |
channel | String | 否 | 支付来源渠道推荐使用值:alipay(支付宝支付) 、weixin(微信支付)、other(其他支付渠道)。如果是支付宝支付传入alipay,如果是微信传入:weixin 其他的支付都传入:other |
payOrderNo | String | 否 | 交易流水号,在创建支付宝交易的时候,会拿到一个流水号,一般是以当前年开始,比如:2017XXXXX,如果是支付宝订单请传入,如果不是请不要设置。 |
outOrderId | String | 是 | 外部订单号 |
tableCode | String | 是 | 座位号如果有推荐填写 |
people | Integer | 否 | 消费人数 |
description | String | 否 | 备注(长度500) |
detailUrl | String | 是 | 跳转的原始URL |
dish | JSONArray | 是 | 菜品列表 1. *String goodsId 菜品ID 2. String skuId 规格ID 3. *String goodsName 菜品名称 4.*long price 价格 单位分 5. *int num 点菜数量 |
hasClosed | int | 否 | 代表是否清桌 1:清桌,代表桌位可以被他人使用效 0:占用,代表座位正在被人使用(比如点菜中、订单没有完结,都认为是被占用中,其他人员无法再次下单) 默认0 按照isv实际场景设置 |
statusDesc | String | 是 | 状态文案说明 |
actionUrlList | JSONArray | 否 | 行动点对象列表,每次更新全量覆盖,字段key说明如下 String name 行动名称(比如,买单、加菜) String actionUrl 跳转URL,建议ISV自行对该url进行加签验签,以避免被恶意程序拦截篡改 String type URL类型(官方常量 addDish(加菜) pay (去买单),官方会根据类型做业务逻辑,如果不在官方说明,请设置为空) |
realtionUserList | JSONArray | 否 | 与当前订单有关系的用户,传入json数组,如果不是支付宝用户不需要传入,如果order_channel是alipay,强制校验,必须要传入。 对象字段key如下: String userId (支付宝用户ID) String type (用户ID行为类型),type 可以选择设置字符串value:pay,pushOrder,normal type各value值含义说明: pay:支付者 pushOrder:推送订单到厨房的用户 normal:普通用户,没有做特殊说明的都是普通用户 |
json串举例:
{ "is_test_user":"0", "date_time":"2017-04-13 20:27:21", "action_type":"order_dishes", "user_id":"2088202884883674", "mobile":"1836881XXXX", "outer_shop_do":{"shop_id":"2016041600077000000003126147","type":"xxx.com","outer_id":"2016041600077000000003126147"}, "industry":"REPAST", "action_detail": { "hasClosed":0, "actionUrlList":[{"name":"点菜","actionUrl":"https://baidu.com/order/callback/","type ":"addDish"},{"name":"详情","actionUrl":"https://baidu.com/order/callback/","type":""},{"name":"买单","actionUrl":"https://baidu.com/order/callback/","type":"pay"}], "statusDesc":"已下单", "payOrderNo":"XXXX", "totalPrice":111, "payTime":1492086442041, "discountPrice":11, "channel":"alipay", "description":"描述", "tableCode":"AO2", "people":"22", "realtionUserList":[ {"type":"pay","userId":"2088XXXX"}, {"type":"pushOrder","userId":"2088XXXX"} ], "dish":[ {"goodsId":"goodsId0","price":"9","num":22,"goodsName":"秦艽肉丝0","skuId":"skuIdXXX"}, {"goodsId":"goodsId1","price":"9","num":22,"goodsName":"秦艽肉丝1","skuId":"skuIdXXX"}, {"goodsId":"goodsId2","price":"9","num":22,"goodsName":"秦艽肉丝2","skuId":"skuIdXXX"}, {"goodsId":"goodsId3","price":"9","num":22,"goodsName":"秦艽肉丝3","skuId":"skuIdXXX"}, {"goodsId":"goodsId4","price":"9","num":22,"goodsName":"秦艽肉丝4","skuId":"skuIdXXX"}, {"goodsId":"goodsId5","price":"9","num":22,"goodsName":"秦艽肉丝5","skuId":"skuIdXXX"}, {"goodsId":"goodsId6","price":"9","num":22,"goodsName":"秦艽肉丝6","skuId":"skuIdXXX"}, {"goodsId":"goodsId7","price":"9","num":22,"goodsName":"秦艽肉丝7","skuId":"skuIdXXX"}, {"goodsId":"goodsId8","price":"9","num":22,"goodsName":"秦艽肉丝8","skuId":"skuIdXXX"}, {"goodsId":"goodsId9","price":"9","num":22,"goodsName":"秦艽肉丝9","skuId":"skuIdXXX"}, {"goodsId":"goodsId10","price":"9","num":22,"goodsName":"秦艽肉丝10","skuId":"skuIdXXX"}, {"goodsId":"goodsId11","price":"9","num":22,"goodsName":"秦艽肉丝11","skuId":"skuIdXXX"}, {"goodsId":"goodsId12","price":"9","num":22,"goodsName":"秦艽肉丝12","skuId":"skuIdXXX"}, {"goodsId":"goodsId13","price":"9","num":22,"goodsName":"秦艽肉丝13","skuId":"skuIdXXX"}, {"goodsId":"goodsId14","price":"9","num":22,"goodsName":"秦艽肉丝14","skuId":"skuIdXXX"}, {"goodsId":"goodsId15","price":"9","num":22,"goodsName":"秦艽肉丝15","skuId":"skuIdXXX"} ], "outOrderId":"XXXX你的订单号", "detailUrl":"https://baidu.com/order/callback/00034086/000340865678a466015687c08ac56fff/koubei/45bee43ec2e1ef90d4064873d0af3e94","realPrice":100,"status":11},"source":"alipay", "action_outer_id":"XXXX你的订单号", "order_channel":"alipay", "entity":"user" }
1、使用说明
取号成功后开始上传。
detailUrl使用说明:传入的URL必须与开放平台后台,应用APPID配置的授权URL的域名相同,保证后续网页授权可以跳转过去。例如:上传的detailUrl=http://XXXXX.com?orderId=1234 会在当前URL上面追加上&openAppId=X&shopId=口碑店铺ID&bizScenario=XX。网页授权成功后跳转到ISV平台,URL会是:http://XXXXX.com?orderId=1234&openAppId=X&shopId=口碑店铺ID&bizScenario=XX&app_id=XXX&source=alipay_wallet&scope=auth_base&auth_code=ca34ea491e7146cc87d25fca24c4cD11 ,后面ISV就可以做自己的业务逻辑,比如解析orderId、auth_token参数 。然后ISV通过接口alipay.system.oauth.token根据auth_code查询支付宝会员信息。详见网页授权文档。
2、action_type:order_num
3、entity:user
4、action_detail说明
参数名称 | 参数类型 | 必填 | 描述 |
---|---|---|---|
outOrderId | String | 是 | 外部订单号(美味订单号) |
mobile | String | 否 | 用户手机号码 |
shopName | String | 否 | 商户店铺名称 |
num | String | 否 | 领取号码(领取失败可以不上传) |
qname | String | 否 | 队列名称(小桌、中桌)领号失败可能没有 |
detailUrl | String | 是 | 跳转的原始URL |
qattr | String | 是 | 队列属性(1-2人) |
people | String | 是 | 领取的人数 |
credit | Integer | 否 | 用户信誉值 (1-10)不存在不传 |
status | Integer | 是 | 排号单状态 2 取号成功 4 叫号 5 就餐 6 过号 7 取消 |
desc | String | 是 | 变更提示(取号成功) |
wait | Integer | 是 | 等待人数(5) |
waitTime | String | 否 | 具体分钟,比如30分 |
passNumType | Integer | 是 | 过号怎么处理 (-1:不可知 0 顺延 1:不可顺延) |
passNumDesc | String | 是 | 过号顺延不顺延文案 |
json串举例:
{ "is_test_user":"0", "date_time":"2017-04-13 20:27:22", "action_type":"order_num", "user_id":"2088202884883674", "mobile":"1836881XXXX", "outer_shop_do": { "shop_id":"2016041600077000000003126147", "type":"xxx.com", "outer_id":"2016041600077000000003126147" }, "industry":"REPAST", "action_detail":{ "wait":5, "qattr":"1-2人", "num":"A0001", "mobile":"1565715XXXX", "shopName":"店铺名称", "type":"0,1,2", "people":6, "passNumDesc":"过号顺延", "passNumType":1, "outOrderId":"XXXX你的订单号", "qname":"小桌", "detailUrl":"https://baidu.com/order/callback/00034086/000340865678a466015687c08ac56fff/koubei/45bee43ec2e1ef90d4064873d0af3e94", "credit":10, "waitTime":"30分", "status":"2", "desc":"变更内容" }, "source":"alipay", "action_outer_id":"XXXX你的订单号", "order_channel":"alipay", "entity":"user" }
1、使用说明
replace的概念,无论用户是上传还是更新都调用当前接口,必填字段每次都需要,无论是更新还是插入,系统会做覆盖操作。
2、action_type:order_book_create
3、industry:order_dishes(上传用户菜单)、order_num(餐厅排号)时,设置的类型都是REPAST;order_book_create(餐厅预定)时,设置的类型是book
4、entity:user
5、action_detail说明
参数名称 | 参数类型 | 必填 | 描述 |
---|---|---|---|
outOrderId | String(50) | 是 | 外部订单号 |
tableName | String(50) | 是 | 包厢、小桌、等ISV名称 |
reserveTime | Long | 是 | 预约时间,到毫秒 |
people | Int | 否 | 提交的预约人数 |
telephone | String(15) | 是 | 预约人联系号码 |
contactsName | String(50) | 是 | 联系人(会与性别一起在平台联合展示) |
sex | String(2) | 否 | 联系人性别,只有F与M两个值,不清楚可以不填入。 F:男 M: 女 |
status | String(5) | 是 | 订单状态 31待商家确认 32 预定成功 33 预定失败,商家拒绝 34 已经取消 35 已经就坐 |
detailUrl | String(200) | 是 | 详情跳转 |
closeReason | String(200) | 否 | 更新的原因(比如关闭为什么关闭) |
json串举例:
{ "is_test_user":"0", "action_type":"order_book_create", "mobile":"1836881XXXX", "outer_shop_do":{ "shop_id":"2016041600077000000003126147", "type":"xxx.com", "outer_id":"2016041600077000000003126147" }, "industry":"REPAST", "source":"alipay", "date_time":"2017-04-13 20:27:22", "user_id":"2088202884883674", "alipay_app_id":"在口碑服务市场,包装的服务ID", "action_detail":{ "reserveTime":1492086442825, "outOrderId":"XXXX你的订单号", "sex":"F", "telephone":"1565715XXXX", "detailUrl":"https://baidu.com/order/callback/00034086/000340865678a466015687c08ac56fff/koubei/45bee43ec2e1ef90d4064873d0af3e94", "closeReason":"用户取消", "people":2, "contactsName":"龙门飞甲", "tableName":"大桌", "status":31 }, "action_outer_id":"XXXX你的订单号", "order_channel":"alipay", "entity":"user" }