支付寶小程序門店插件 協(xié)議·概述

2020-09-18 14:24 更新

概念說明

一個(gè)門店插件的定義包含插件類型、UI 規(guī)范、協(xié)議規(guī)范三個(gè)屬性。

  • 插件類型

插件類型定義了插件的業(yè)務(wù)屬性,比如 秒殺插件、拼團(tuán)插件、預(yù)約插件等。每種類型的插件會(huì)由一或多個(gè)協(xié)議組成。門店主體小程序在喚起插件的時(shí)候會(huì)根據(jù)協(xié)議規(guī)范逐個(gè)調(diào)用協(xié)議 API。

  • UI 規(guī)范

指插件需要遵循的 UI 標(biāo)準(zhǔn),標(biāo)準(zhǔn)由門店平臺(tái)定義。

  • 協(xié)議規(guī)范

協(xié)議規(guī)范是指插件實(shí)現(xiàn)時(shí)需要遵照的規(guī)范。

協(xié)議說明

協(xié)議實(shí)現(xiàn)

協(xié)議實(shí)現(xiàn)依賴插件的接口導(dǎo)出能力,插件可以在接口文件(在 plugin.json 配置文件中指定,詳情請(qǐng)參見 插件配置文件)中導(dǎo)出 js 接口,供插件的使用者調(diào)用,例如:

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

對(duì)于門店小程序來(lái)說,平臺(tái)定義了唯一的協(xié)議調(diào)用 this.props.onEmit。

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

因此插件實(shí)現(xiàn)者需要導(dǎo)出如下接口:

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

入?yún)⒄f明

  • storeCtx (按照規(guī)范自動(dòng)注入,直接使用即可)

平臺(tái)自動(dòng)注入門店上下文信息,包含如下屬性,插件開發(fā)者可以按需獲取。

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

主體小程序 APPID,插件開發(fā)者可以通過 my.getParentAppIdSync() 進(jìn)行獲取。

  • param

調(diào)用參數(shù),協(xié)議調(diào)用需要其他參數(shù)(業(yè)務(wù)參數(shù))放在這個(gè)對(duì)象里面,由主體小程序調(diào)用時(shí)傳入。

調(diào)用示例

調(diào)用示例(官方門店小程序協(xié)議調(diào)用)

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

實(shí)現(xiàn)示例(三方開發(fā)者協(xié)議實(shí)現(xiàn))

  1. export default {
  2. events: {
  3. onInit: function(storeCtx) {
  4. // 插件初始化回調(diào)
  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. }
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)