初始化 SDK

这一步做什么

小程序启动时调用一次插件的 init。接口地址已经在插件里。用户 JWT 和支付页从 plugin-export.js 读取。初始化之后,可以用组件进入商品列表、单个商品详情,或某个规格的图片上传页。

宿主要提供的方法

属性类型必填说明
getTokenfunction必填在 plugin-export.js 里实现。向接入方后台要 access_token。forceRefresh 的含义见换取用户凭证。
openPaymentfunction要收款时必填在 plugin-export.js 里实现。入参是 { checkoutId }。打开接入方小程序支付页。返回成功只表示页面打开了,不表示用户已付款。
app.jsjavascript
App({
  onLaunch() {
    requirePlugin('yunduo-sdk').init();
  }
});

进入页面

先调用 init,再进入放有 yunduo-workspace 的页面。组件用 entry 决定打开哪一屏。用户退出登录时调用 requirePlugin('yunduo-sdk').reset(),切换账号后重新 init。

宿主页配置 · page.jsonjson
{
  "usingComponents": {
    "yunduo-workspace": "plugin://yunduo-sdk/workspace"
  }
}

商品列表

entry="products" 只显示可售商品。点击一项会抛出 openproduct,详情里带 productId。

商品列表页 · page.wxml
<yunduo-workspace entry="products" bind:openproduct="openProduct" />

商品详情

entry="product" 配 product-id,打开这一件商品的详情图和规格。点击某个规格会抛出 openupload,详情里带 productId 和 skuId。

商品详情页 · page.wxml
<yunduo-workspace entry="product" product-id="{{productId}}" bind:openupload="openUpload" />

指定规格上传

entry="upload" 同时传入 product-id 和 sku-id,打开这一件商品、这一个规格的图片上传页。保存成功后抛出 worksaved。

图片上传页 · page.wxml
<yunduo-workspace entry="upload" product-id="{{productId}}" sku-id="{{skuId}}" bind:worksaved="onWorkSaved" />
页面跳转
openProduct(event) {
  wx.navigateTo({ url: "/pages/product/index?productId=" + event.detail.productId });
}
openUpload(event) {
  wx.navigateTo({
    url: "/pages/upload/index?productId=" + event.detail.productId + "&skuId=" + event.detail.skuId
  });
}

相关接口

getToken 本身不请求小鹅。它向接入方后台要 token,由后台调用下面的接口。

方法路径鉴权说明
POST/open/api/v1/sdk/tokens接入方后台 HMAC用 external_user_id 换 access_token。

继续查看支付流程 →