文档中心 > 开放平台

商户操作行为接口

接口名称:alipay.offline.provider.shopaction.record

接口描述:商户行为信息,传入商户的所有行为,全部使用JSON表达

请求参数

参数名称 参数类型 必填 描述

action_type

String

操作类型

1. insert_table(插入桌位)

2. update_table(更新桌位)

3. insert_dish(插入菜品)

4. delete_dish(删除菜品)

5. soldout_dish(估清菜品)

6. modify_dish(修改菜品)

7. modify_shop_status(店铺状态变更)

后面每一种操作行为具体传入数据都会有详细说明

entity

String

操作实体

实体类型:

1. shop(代表店铺)

2. user(代表用户)

date_time

String

行为发生实际时间,格式:yyyy-mm-dd HH:MM:ss

industry

String

所属行业(后续废弃)

REPAST(餐饮)

action_detail

String

操作详情(根据action_type不同,而数据不同,是操作的具体数据),参数中具体内容见下方各场景action_detail说明

action_outer_id

String

action_outer_id的内容与action_detail强相关,action_detail传入的是一个操作实体,这个操作实体可能有唯一主键,可能没有,如果有,action_outer_id赋值操作实体的主键的value,如果没有随机一个UUID。举例:调用示例代码中提到的上传桌位信息,因为action_detail实体是座位,那么action_outer_id就传入桌位的主键,就是tableId的value,可以参考快速接入里面详细代码说明。

outer_shop_do

JSONObject

被操作的店铺对象

1. *String shop_id 口碑店铺ID

2. *String outer_id 外部isv系统中的店铺唯一主键id,这里用来建立口碑店铺与isv系统店铺的映射关系

3. *String type 合作商户类型,二维火(_2dFire)、美味不用等(mwee)、米客(mike)按照以前的约定传入,其他ISV直接传入公司域名,比如淘宝,就传入taobao.com

接入场景

商户行为大致分为:菜品操作行为、餐桌操作行为、店铺营业状态行为。

1 店铺菜品

菜品涉及四种行为:插入菜品信息、删除菜品信息、修改菜品信息、估清菜品信息。

插入菜品信息

1. 使用说明

  • 首次仍然需要进行foreach进行初始化数据调用
  • 初始化完成后需要每次商户新增加菜品的时候进行调用
  • dishSkuList 使用说明 比如有菜品有个规格:大份10元 、小份5元 然后还可以选择加肉3元或者不加肉: [{Id=XX,property="规格:大份;配料:加肉",price=13},{Id=XX,property="规格:大份;配料:不加",price=10},{Id=XX,property="规格:小份;配料:加肉",price=8},{Id=XX,property="规格:小份;配料:不加",price=5}]

2. action_type:insert_dish

3. entity:shop

4. action_detail说明

参数名称 参数类型 必填 描述

outerDishId

String

外部菜品ID

name

String

菜品名称

price

Long

菜品价格

soldout

Integer

是不是已经售卖完成  0正常,1估清,默认0

quantity

Long

库存数量(不传 代表没有意义)

pict

JSONArray

商品图片(只支持http的图片)

status  

Integer

0 上架(可点) 1 不在线(不可点) 默认0

desc

String

菜品描述

sort

Integer

传入当前菜品在isv平台的顺序,我们会按照值越小越靠前来理解这个值。如果ISV平台菜品没有顺序的概念可以不传入

unit 

String

菜品单位(斤、份)

dishTypeID 

String

菜品分类ID,菜品分类ID是ISV自己的菜品分类ID,如果你们有分类就传入你们的分类ID,如果没有可以不用传入。比如回锅肉挂在川菜分类下面,就可以传入川菜的类目ID

dishTypeName

String

分类名称

dishSkuList

JSONArray

菜品的SKU,有就设置  没有不传入当前key。如果传入了,下面的*都要传入1. *String  id   代表当前skuId  2. *String property 规格对  AB;A1:B1  3. Integer quantity  菜品库存  10 4. *Long price 菜品价格   单个SKU价格

具体设置规则请参考代码demo

修改菜品信息

1. 使用说明

  • 商户对菜品进行任何变更,实时调用通知
  • 修改菜品其他信息、菜品名称、图片等等,传入就更新,不传入不更新

2. action_type:modify_dish

3. entity:shop

4. action_detail说明

参数名称 参数类型 必填 描述

outerDishId

String

外部菜品ID

name

String

菜品名称

price

Long

菜品价格

soldout

Integer

是不是已经售卖完成  0正常,1估清,默认0

quantity

Long

库存数量(不传 代表没有意义)

pict

JSONArray

商品图片(只支持http的图片)

status  

Integer

0 上架(可点) 1 不在线(不可点) 默认0

desc

String

菜品描述

sort

Integer

传入当前菜品在isv平台的顺序,我们会按照值越小越靠前来理解这个值。如果ISV平台菜品没有顺序的概念可以不传入

unit 

String

菜品单位(斤、份)

dishTypeID 

String

菜品分类ID,菜品分类ID是ISV自己的菜品分类ID,如果你们有分类就传入你们的分类ID,如果没有可以不用传入。比如回锅肉挂在川菜分类下面,就可以传入川菜的类目ID

dishTypeName

String

分类名称

dishSkuList

JSONArray

菜品的SKU,有就设置  没有不传入当前key。如果传入了,下面的*都要传入

1. *String  id   代表当前skuId

2. *String property 规格对  A:B;A1:B1

3. Integer quantity  菜品库存  10

4. *Long price 菜品价格   单个SKU价格

删除菜品信息

1. 使用说明:商户不在经营当前菜品的时候进行调用,做物理删除

2. action_type:delete_dish

3. entity:shop

4. action_detail说明

参数名称 参数类型 必填 描述

outerDishId

String

外部菜品ID

估清菜品信息

1. 使用说明:菜品估清的时候调用,系统会更新菜品的soldout字段。

2. action_type:soldout_dish

3. entity:shop

4. action_detail说明

参数名称 参数类型 必填 描述

outerDishId

String

外部菜品ID

2 店铺桌位

桌位涉及两种行为:插入桌位行为、修改桌位行为。 

插入桌位信息

1. 使用说明

  • 合作商首次需要进行全量插入数据,请进行foreach调用。
  • 增量需要合作商每次新增餐桌的时候调用。
  • 多次调用插入同一个餐桌,后续插入会执行更新。

2. action_type:insert_table

3. entity:shop

4. action_detail说明

参数名称 参数类型 必填 描述

tableId

String

座位ID,后面通过他更新

max

Integer

最大容量

min

Integer

最小容量

tableName

String

餐桌名称

tableNum

String

桌位编号

tableType

String

餐桌类型(0:普通桌 1:包厢)

status

Integer

0空闲 1 占用 2 不可知 -1 删除 默认空闲

修改桌位信息

1. 使用说明

  • 在座位变更的时候,比如开桌、名字变更、等进行适时调用
  • 不传入不更新,如果为null或者该字段没有更新,不用传入当前key

2. action_type:update_table

3. entity:shop

4. action_detail说明

参数名称 参数类型 必填 描述

tableId

String

座位ID,后面通过他更新

max

Integer

最大容量

min

Integer

最小容量

tableName

String

餐桌名称

tableNum

String

桌位编号

tableType

String

餐桌类型(0:普通桌 1:包厢)

status

Integer

0空闲 1 占用 2 不可知 -1 删除 默认空闲

3 店铺营业状态

使用店铺操作行为接口(alipay.offline.provider.shopaction.record)传输店铺的营业状态。

更新店铺营业状态

1. 使用说明

  • 上传商户的营业状态。status进行初步判断、后面list是初步判断的来源
  • 每隔一段时间(1-10分钟)上传一次商户的状态。
  • type说明:【营业时间: businessHours,同比营业时间 historyBusinessHours,上一笔订单时间:lastOrderTime,交接班状态:handover,收银机状态:cashStatus 】
  • type=businessHours feature=[{"startTime";"08:00","endTime":"23:00"},{"startTime";"23:30","endTime":"03:00"}] 数组 一个开始时间一个结束时间。可以跨天 10%参与计算
  • type=historyBusinessHours 与businessHours一样 60%参与计算
  • type=lastOrderTime feature={time:2313123131} unix时间戳到毫秒 最后一笔订单在30分钟内,30%
  • type=handover feature={handover:1} 1:已经交接班。 0:未发生交接班
  • type=cashStatus feature={cashStatus:1} 1:收银机在线。 0:收银机不在线

2. action_type:modify_shop_status

3. entity:shop

4. action_detail说明

参数名称 参数类型 必填 描述

status  

Integer

1 在线0 不在线  -1 不可知

accuracy

Double

结果准确度  100代表绝对正确

list

JSONArray

判断原因对象

1、*string type   收银状态、最后的订单 见上面说明

2、*String  feature(json结构,根据type不同而不同,参考上面说明)

3、String  desc 简单描述(可以空)

用户操作行为接口

接口名称:alipay.offline.provider.useraction.record

接口描述:商户行为信息,传入商户的所有行为,全部使用JSON表达

请求参数

参数名称 参数类型 必填 描述

action_type

String

操作类型

order_dishes(上传用户菜单)

entity

String

操作实体

实体类型:

1. shop(代表店铺)

2. user(代表用户)

user_id

String

支付宝用户ID

order_channel

String   是

值定义:alipay、weixin、other、isv

     值意义说明:alipay:支付宝  weixin:微信  isv:isv自己的系统未通过第三方点菜, other:其他  

     标示当前订单的创建来源,比如是支付宝扫码后创建订单或者微信扫码创建订单或者通过自己的系统用户点菜后创建,都传入对应英文。

 

platform_user_id

String

Source平台对应的ID,如果是美团就是美团的ID,如果是二维火就是二维火ID,如果是微信就是微信ID

mobile

String

用户手机号

source

String

来源平台域名(以前传入在detail中,detail仍然传入,这里也传入)

alipay_app_id

String

开发者发布到服务市场的服务ID。多个服务场景下用于区分是哪个服务的订单,如没有发布服务,则不用填写此参数。

date_time

String

行为发生时间实际时间,格式:yyyy-mm-dd HH:MM:ss

industry

String

所属行业(后续废弃)

REPAST(餐饮)

action_detail

String

操作详情(根据action_type不同,而数据不同,是操作的具体数据),参数中具体内容见下方各场景action_detail说明

action_outer_id

String

本次唯一键(操作实体action_detail主键)

outer_shop_do

JSONObject

被操作的店铺对象

1. *String shop_id 口碑店铺ID

2. *String outer_id 外部isv系统中的店铺唯一主键id,这里用来建立口碑店铺与isv系统店铺的映射关系

3. *String type 合作商户类型,二维火(_2dFire)、美味不用等(mwee)、米客(mike)按照以前的约定传入,其他ISV直接传入公司域名,比如淘宝,就传入taobao.com

接入场景

用户涉及两种行为:用户点菜订单、用户餐厅线上排队行为。

1 上传用户点菜的菜单

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

0用户下单1 服务员确认下2撤单 3结账

(需改:)

1. 11 用户下单、等待商家确认

2. 12 商家已经确认

3. 13商家确认,等待支付

4. 14支付完成,结账成功

5. 15点菜关闭 

payTime

Long

支付时间

channel

String

支付来源渠道推荐使用值:alipay(支付宝支付) 、weixin(微信支付)、other(其他支付渠道)。如果是支付宝支付传入alipay,如果是微信传入:weixin  其他的支付都传入:other

payOrderNo

String

交易流水号,在创建支付宝交易的时候,会拿到一个流水号,一般是以当前年开始,比如:2017XXXXX,如果是支付宝订单请传入,如果不是请不要设置。

outOrderId

String

外部订单号

tableCode 

String

座位号

people 

Integer

消费人数

description

String

备注(长度500)

detailUrl

String

跳转详情URL

跳转的原始URL

dish

JSONArray

菜品列表

1. *String goodsId 菜品ID

2. String skuId 规格ID

3. *String goodsName 菜品名称

4.  *long price 价格

5.  *int num 点菜数量

2. 上传用户排号订单

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

跳转的原始URL

qattr

String

队列属性(1-2人)

type

String

队列类型 0,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

过号顺延不顺眼文案

3. 上传用户预定订单

上传预定订单

使用用户操作行为接口(alipay.offline.provider.useraction.record)传输用户预定订单的数据,预定订单也是用户的操作行为的一种。

上传用户预定信息

1. 使用说明

replace的概念,无论用户是上传还是更新都调用当前接口,必填字段每次都需要,无论是更新还是插入,系统会做覆盖操作。

2. action_type:order_book_create

3. industry:book

4. entity:user

5. action_detail说明

参数名称 参数类型 必填 最大长度(String) 描述

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

更新的原因(比如关闭为什么关闭)

 

FAQ

关于此文档暂时还没有FAQ
返回
顶部