用户在搜索景点门票时,搜索会展现“景点门票“卡片,提供景点图片、地址、门票价格信息,满足用户的需求。
示意图
根据 intent 对应的景点实体数量不同,自动切换样式。
intent 上传接口
当前资源 intent 意图参数
key | 类型 | 含义 | 示例/说明 |
---|---|---|---|
scenic_spot | string | 景点名 | “北京故宫” |
通过平台上传 txt 文件
资源方需要将自己小程序能够覆盖的所有 intent 参数组合通过 txt 文件上传到平台上,txt 文件的具体要求参见接入流程-上传 Intent 数据。
当前资源分类 txt 上传文件内容示例如下:
1 | { "scenic_spot": "故宫" } |
通过开放 API 上传
详细接入方式参见 API 上传方式
Webhook API
发送给 webhook 的请求
公共字段
key | 类型 | 含义 | 示例/说明 |
---|---|---|---|
type | string | 请求类型 | 在小程序阿拉丁下永远为 “sp_ala” |
surface | string | 搜索场景 | mobile: 支持小程序的移动搜索,web_h5: 支持 H5 的移动搜索 |
srcid | string | 资源编号 | 每个资源分类不同 |
intent | object | 搜索意图参数 | JSON 对象,每个资源分类不同 |
当前资源 srcid 资源编号
key | 类型 | 含义 | 设定 |
---|---|---|---|
srcid | string | 资源编号 | 5524 |
当前资源的 intent 参数参考上节 “intent 上传接口“。
举例:发送给 webhook 的 JSON (解密后)
1 | { |
从 webhook 返回的结果
外层通用数据字段
key | 类型 | 含义 | 示例/说明 |
---|---|---|---|
status | integer | 结果状态码,0 代表正确,1 代表无结果, 2 代表请求参数错误,3 代表内部服务错误 |
0 |
msg | string | 出错消息,当非 0 时提供 | “” |
data | object | 要返回的资源数据内容 | JSON 对象,每个资源分类不同 |
当前资源分类的 data
object 字段内容
key | 类型 | 要求 | 说明 |
---|---|---|---|
jump_url | string | 必选 | 点击卡片的跳转路径,若 intent 对应 1 个景点实体,则点击卡片标题跳转至该景点详情页;若 intent 对应 2-3 个景点,则跳转至景点列表页。 |
item_list | array | 必选 | intent 对应的景点实体列表,最少 1 个,最多 3 个 |
item_list.image | string | 必选 | 景点实体的图片,像素 364*364 |
item_list.url | string | 必选 | 景点实体详情页跳转路径,例如:/page/of/target |
item_list.title | string | 必选 | 景点实体名称,例如:故宫博物院 |
item_list.address | string | 必选 | 景点实体地址,例如:东城区南大红路 2 号 |
item_list.score | number | 可选 | 景点实体的评分,需要与落地页一致 |
item_list.score_total | integer | 可选 | 景点评分的总分(总分默认为 5 分) |
item_list.price_cent | integer | 必选 | S 或 A(内容分级见下文,优先 S 级)级内容价格门票价格(单位分),该价格必须出现在落地页中 |
item_list.sold_info | string | 可选,选后不可为空 | 门票销售信息,例如:月售 678 |
item_list.button_text | string | 必选 | 『详情』按钮,文字:”详情” |
item_list.button_url | string | 必选 | 按钮跳转链接,例如:/page/of/target |
item_list.open_time | string | 可选,选后不可为空 | 开放时间,例如:开放时间:10:00-11:00 |
item_list.ticket_list | array | 必选 | 实体对应的票型详情列表,最少 1 个,最多 3 个 |
item_list.ticket_list.title | string | 必选 | 票型标题,例如:故宫上午成人票(淡季) |
item_list.ticket_list.right_text | string | 必选 | 票型价格,例如:40 元 |
item_list.ticket_list.url | string | 必选 | 跳转链接,例如:/page/of/target |
举例:从 webhook 返回的 JSON (加密前)
1 | { |
开发者 intent 提交要求
总体:全流程满足用户在对应 intent 下的购票服务需求
这里有三个必需注意的问题:
- 有购票需求的景点实体的的概念
景点,与景区、旅游景点、风景区等名词所针对的概括内容是一样(仅描述不同),是指以旅游及其相关活动为主要功能或主要功能之一的区域场所,能够满足游客参观游览、休闲度假、康乐健身等旅游需求,具备相应的旅游设施并提供相应的旅游服务的独立管理区。
需要注意的是:城市(如上海、舟山等)、知名地点(前门大街、钓鱼台银杏大道、大学校园等)均不算景点。只有购买门票才能入园游玩的景点(如故宫、颐和园等)具有购票需求,景点中需单独购买门票才能入园游玩的子景点(如故宫中的钟表馆、同里古镇的退思园)具有购票需求。除此以外,免费景点(如奥林匹克森林公园等)、景点中无需单独购买门票的子景点(如故宫中的御花园等)均视为无购票需求。
对开发者提交景点实体的内容限制:
首先明确一下景点实体对应的内容的分级
内容等级 | 类型 1 | 类型 2 |
---|---|---|
S | 纯门票 | 纯门票+服务(导览/交通) |
A | 联票/子景点/项目门票 | 联票/子景点/项目门票+服务 |
B | 其它售卖内容/周边/文创 | 除以 A/S 外的其他票务 |
C | 与实体强相关的一日游/酒+景/团队游/周边产品 | |
D | 其他推荐内容 | 与实体不相关的一日游/酒+景/团队游/周边产品 |
item_list.price_cent 门票价格:S 级或 A 级内容的价格,优先 S 级
item_list.ticket_list 票型列表:S 级或 A 级内容的价格,有 S 级的情况下,至少出一条 S 级内容票型。
提交数据的时候,所有跳转链接应提供 H5 和小程序两种。
对开发者服务能力要求:
开发者应保证外露票型的价格信息与落地页一致,不能误导用户;无论是小程序还是 H5 落地页都应该保证用户在商品选择、付款、获取门票的全流程体验。
审核常见问题
intent 的编写
景点门票的 intent 应该是与景点门票类目相关的、有购票需求、且开发者能提供购票服务的具体景点名称,开发者可对 intent 进行适当泛化,但 intent 须与卡片提供的购票服务高度契合。
开发者应清晰了解 intent 泛化边界,举例如下:
类目 | intent | 卡片内容 | 是否通过 | 说明 |
---|---|---|---|---|
景点门票 |
{“scenic_spot”:”黄果树景区”}{“scenic_spot”:”黄果树风景名胜区”}{“scenic_spot”:”黄果树”}{“scenic_spot”:”黄果树瀑布”} | 黄果树瀑布景区门票购买 | 通过 | |
景点门票 | {“scenic_spot”:”喀斯特地貌公园”}{“scenic_spot”:”瀑布”}{“scenic_spot”:”大瀑布”} |
黄果树瀑布景区门票购买 | 不通过 | 不通过 intent 过度泛化,卡片提供的服务范畴小于 intent 体现的用户需求 |
卡片内容与 intent 不相关
景点门票的卡片内容及提供的购票服务必须与对应的 intent 高度相关,能满足 intent 所体现的用户主需求。
部分景点门票类目开发者提供的卡片展示内容、落地页内容并不能满足用户主需求,举例如下:
- 卡片提供的服务与 intent 不相关
类目 | intent | 卡片内容 | 是否通过 | 说明 |
---|---|---|---|---|
景点门票 | {“scenic_spot”:”北京欢乐谷”} | 卡片展现上海欢乐谷门票购买 | 不通过 | 卡片提供购票服务与 intent 不符 |
景点门票 | {“scenic_spot”:”黄山”} | 落地页仅能购买黄山索道票,不能购买黄山门票 | 不通过 | 卡片提供购票服务与 intent 不符 |
- intent 涵盖范围大于卡片需提供的景点门票购买服务
类目 | intent | 卡片内容 | 是否通过 | 说明 |
---|---|---|---|---|
景点门票 | {“scenic_spot”:”长隆”} | 广州长隆欢乐世界门票购买 | 不通过 | 卡片提供的购票服务范围小于 intent |
景点门票 | {“scenic_spot”:”长隆”} | 广州长隆欢乐世界、长隆野生动物世界、珠海长隆海洋王国、广州长隆水上乐园门票购买 | 通过 | |
景点门票 | {“scenic_spot”:”故宫”} | 沈阳故宫门票购买 | 不通过 | 卡片提供的购票服务不能覆盖用户主需求 |
景点门票 | {“scenic_spot”:”故宫”} | 北京故宫、沈阳故宫、台北故宫、故宫钟表馆、故宫钟表馆、故宫珍宝馆门票购买 | 通过 | |
景点门票 | {“scenic_spot”:”故宫”} | 北京故宫门票购买 | 通过 |
- 卡片包含具有推荐意图的景点门票购买服务
类目 | intent | 卡片内容 | 是否通过 | 说明 |
---|---|---|---|---|
景点门票 | {“scenic_spot”:”寒山寺”} | 寒山寺、拙政园、留园等门票购买 | 不通过 | 卡片展现内容包含相关推荐意图 |
卡片展现内容与落地页不一致
卡片中展现的景点评分、地址等内容必须与落地页一致,卡片中展现的景点门票价格必须在落地页有商品价格与之对应,且该商品包含景点门票。常见错误示例如下:
类目 | intent | 卡片内容 | 落地页内容 | 是否通过 | 说明 |
---|---|---|---|---|---|
景点门票 | {“scenic_spot”:”平遥古城”} | 景点评分 4.5 分 | 景点评分 4.9 分 | 不通过 | 卡片展现景点评分与落地页不一致 |
景点门票 | {“scenic_spot”:”平遥古城”} | 门票价格 22 元 | 22 元为讲解机器租赁价格,非门票价格 | 不通过 | 卡片展现价格不包含门票 |
景点门票 | {“scenic_spot”:”南京总统府”} | 门票价格 37 元 | 落地页无 37 元门票价格 | 不通过 | 卡片展现价格与落地页价格不一致 |