支付宝小程序门店插件 协议·概述

2020-09-18 14:24 更新

概念说明

一个门店插件的定义包含插件类型、UI 规范、协议规范三个属性。

  • 插件类型

插件类型定义了插件的业务属性,比如 秒杀插件拼团插件、预约插件等。每种类型的插件会由一或多个协议组成。门店主体小程序在唤起插件的时候会根据协议规范逐个调用协议 API。

  • UI 规范

指插件需要遵循的 UI 标准,标准由门店平台定义。

  • 协议规范

协议规范是指插件实现时需要遵照的规范。

协议说明

协议实现

协议实现依赖插件的接口导出能力,插件可以在接口文件(在 plugin.json 配置文件中指定,详情请参见 插件配置文件)中导出 js 接口,供插件的使用者调用,例如:

  1. export default {
  2. events: {
  3. onInit: funciont(storeCtx) {
  4. // 插件初始化回调
  5. // todo
  6. }
  7. },
  8. methods: {
  9. attrApi: function() {
  10. // 获取插件属性api
  11. // todo
  12. }
  13. }
  14. }

对于门店小程序来说,平台定义了唯一的协议调用 this.props.onEmit

  1. this.props.onEmit(this, apiName, param)

因此插件实现者需要导出如下接口:

  1. export default {
  2. methods: {
  3. apiName: function(storeCtx, param) {
  4. console.log('invoke api success!')
  5. }
  6. }
  7. }

入参说明

  • storeCtx (按照规范自动注入,直接使用即可)

平台自动注入门店上下文信息,包含如下属性,插件开发者可以按需获取。

  1. {
  2. "pid": "2088xxxxxxxx",
  3. "storeId": "1000",
  4. "storeName": "同乐坊Z空间店"
  5. }

主体小程序 APPID,插件开发者可以通过 my.getParentAppIdSync() 进行获取。

  • param

调用参数,协议调用需要其他参数(业务参数)放在这个对象里面,由主体小程序调用时传入。

调用示例

调用示例(官方门店小程序协议调用)

  1. this.props.onEmit(this, "selectItems", { "size": 3 })

实现示例(三方开发者协议实现)

  1. export default {
  2. events: {
  3. onInit: function(storeCtx) {
  4. // 插件初始化回调
  5. // todo
  6. }
  7. },
  8. methods: {
  9. // 组装用户选择的商品
  10. selectItems: function(storeCtx, param) {
  11. const { pid } = storeCtx;
  12. const { size } = param;
  13. console.log('select items success!')
  14. return new Promise(resolve => {
  15. asyncAction((result) => {
  16. resolve(result);
  17. });
  18. });
  19. },
  20. // 删除商品
  21. deleteItem: function(storeCtx, param) {
  22. console.log('delete item success!')
  23. }
  24. }
  25. }
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号