接入准备
这一步做什么
在宿主小程序里声明小鹅插件。不需要安装 npm 包,也不需要在微信开发者工具里构建 npm。AK/SK 不要放进小程序,只留在接入方后台。
添加插件
在微信公众平台的小程序管理后台添加插件,AppID 为 wxd8d176525a5b4e85。宿主 app.json 填写已发布的正式版版本号,当前是 0.2.4。
宿主 app.jsonjson
{
"plugins": {
"yunduo-sdk": {
"version": "0.2.4",
"provider": "wxd8d176525a5b4e85",
"export": "plugin-export.js"
}
}
}新建小程序的首页是「欢迎使用微信开发者工具」。那是开发者工具自带的默认页,不是插件。把首页换成下面的文件,再点编译,才会进入商品列表。版本 0.2.4 需要先在公众平台发布,开发者工具才能下载;还没发布时,模拟器也会停在这个默认页。
pages/index/index.jsonjson
{
"usingComponents": {
"yunduo-workspace": "plugin://yunduo-sdk/workspace"
}
}pages/index/index.wxml
<yunduo-workspace entry="{{entry}}" product-id="{{productId}}" sku-id="{{skuId}}" />pages/index/index.jsjavascript
Page({
data: { entry: "products", productId: 0, skuId: 0 },
onLoad(options) {
this.setData({
entry: options.entry || "products",
productId: Number(options.productId) || 0,
skuId: Number(options.skuId) || 0
});
}
});plugin-export.js 放在小程序根目录,把换票和打开支付页交给插件。接口地址已经写在插件里。
plugin-export.jsjavascript
module.exports = {
getToken({ forceRefresh }) {
// 向接入方后台换 access_token,只返回字符串。
return obtainSDKTokenFromYourBackend({ forceRefresh });
},
openPayment({ checkoutId }) {
return new Promise((resolve, reject) => {
wx.navigateTo({
url: '/pages/cashier/index?checkoutId=' + encodeURIComponent(checkoutId),
success: resolve,
fail: reject
});
});
}
};在接入配置签发 AK/SK,只放在接入方后台,用来换用户凭证。
开发者工具可以临时关闭域名校验。体验版和正式版仍会校验下面的域名。
小程序要配置的域名
配置位置在微信公众平台的开发管理、开发设置、服务器域名。漏配时,接口、上传或图片会直接失败。
- request 合法域名
https://api.channel.suiinn.com:商品、作品、结算、订单接口,以及换取小程序登录态。 - request 合法域名
https://api.suiinn.com:商品详情、上传图片和图片编辑页。 - request 合法域名
https://yunduo-1334189972.cos.ap-guangzhou.myqcloud.com:上传成品图。上传使用wx.requestPUT,配在 request,不要配到 uploadFile。 - downloadFile 合法域名
https://suiinn.com:展示商品图和作品图。 - 业务域名
https://suiinn.com:展示商品图,以及页面里用到的静态资源。