小程序第三方平台管理方案
接收推送授权相关通知
微信文档地址:微信开放平台 步骤5中9
当公众号对第三方平台进行授权、取消授权、更新授权后,微信服务器会向第三方平台方的授权事件接收URL(https://xxx.xxxx.com/index.php/MiniApp/Auth/get_component_verify_ticket)推送相关通知
- 接到授权通知后:
- 获取小程序的基本信息
- 获取小程序码
- 修改小程序服务器地址
- 代码发布并提交审核
- 接收到审核成功的通知后发布
- 接到取消授权通知后:
将该授权小程序状态标为取消授权,前端页面做相应处理,用户可在该页面进行重新授权
获取小程序的基本信息
微信文档地址:微信开放平台 步骤5中6
- 微信平台API:
https://api.weixin.qq.com/cgi-bin/component/api_get_authorizer_info?component_access_token=xxxx(POST) - 美秒平台API:https://xxx.xxxx.com/index.php/H5/Info/getMiniAppS?ip=xx&uid=xx(GET)
获取小程序的小程序码
微信文档地址:获取二维码 · 小程序
- 微信平台API:
https://api.weixin.qq.com/wxa/getwxacode?access_token=Component_Access_Token(POST) - 美秒平台API:https://xxx.xxxx.com/index.php/MiniApp/Code/getwxacode(POST)
参数:appid path
修改小程序服务器地址
微信文档地址:微信开放平台
设置小程序服务器域名
微信平台API:https://api.weixin.qq.com/wxa/modify_domain?access_token=TOKEN(POST)
美秒平台API: https://xxx.xxxx.com/index.php/MiniApp/Code/modify_domain (POST)
参数:appid paramJson
设置小程序业务域名(小程序内web-view域名)
https://api.weixin.qq.com/wxa/setwebviewdomain?access_token=TOKEN(POST)微信平台API:
- 美秒平台API: 未完成
代码发布(暂定)
- 获取代码模版库中的所有小程序代码模版
微信文档地址:微信开放平台微信平台API:https://api.weixin.qq.com/wxa/gettemplatelist?access_token=TOKEN(POST)
- 美秒平台API: https://xxx.xxxx.com/index.php/MiniApp/Code/getTemplateList (GET)
选择模版库中user_desc字段中带有‘release’的template_id,同时user_version为模版版本即小程序版本,该字段可用于前端展示(比如线上版本,版本审核通过、不通过等)::
- 为授权的小程序帐号上传小程序代码
微信文档地址:微信开放平台微信平台API:https://api.weixin.qq.com/wxa/commit?access_token=TOKEN(POST)
- 美秒平台API:https://xxx.xxxx.com//index.php/MiniApp/Code/commitCode(GET)
参数中template_id、user_version、user_desc来自上一步的结果,ext_json应该是实时生成的1
2
3
4
5
6
7
8
9
10
11
12
13const request = require("request");
const options = { method: 'GET',
url: 'https://xxx.xxxx.com/index.php/MiniApp/Code/commitCode',
qs:
{ appid: 'wxb9e8939cd29e8909',
template_id: '17',
user_version: '1.3',
user_desc: 'fix%20info%20page%20list%20bug',
ext_json: 'ewogICAgImV4dEVuYWJsZSI6IHRydWUsCiAgICAiZXh0QXBwaWQiOiAid3hiOWU4OTM5Y2QyOWU4OTA5IiwKICAgICJleHQiOiB7CiAgICAgICAgImFwcGlkIjogInd4YjllODkzOWNkMjllODkwOSIsCiAgICAgICAgImFwcE5hbWUiOiAi576O56eS5LyB5Lia5pyN5YqhIgogICAgfSwKICAgICJ3aW5kb3ciOiB7CiAgICAgICAgIm5hdmlnYXRpb25CYXJUaXRsZVRleHQiOiAi576O56eS5LyB5Lia5pyN5YqhIgogICAgfQp9' } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
}); - ext_json模版
1
2
3
4
5
6
7
8
9
10
11{
"extEnable": true,
"extAppid": "wx5baa0c278fac0916",
"ext": {
"appid": "wx5baa0c278fac0916",
"appName": "礼拜日"
},
"window": {
"navigationBarTitleText": "礼拜日"
}
}
- 获取体验小程序的体验二维码
微信文档地址:微信开放平台
该接口按需求调用,开发用小程序需要,其他小程序看客户是否需要在发布之前体验
- 微信平台API:
https://api.weixin.qq.com/wxa/get_qrcode?access_token=TOKEN&path=page%2Findex%3Faction%3D1 (GET) - 美秒平台API:
https://xxx.xxxx.com/index.php/MiniApp/Code/get_qrcode/appid/wx9193c9463e051965 (GET)
提交审核
微信文档:微信开放平台 3、4、5
- 获取授权小程序帐号的可选类目
- 微信平台API:https://api.weixin.qq.com/wxa/get_category?access_token=TOKEN(GET)
- 美秒平台API:
https://xxx.xxxx.com/index.php/MiniApp/Code/getCategory?appid=xxx(GET)
通过微信API获取到的category_list在提交审核时需要用::
- 获取小程序的第三方提交代码的页面配置(可不调用)
- 微信平台API:
https://api.weixin.qq.com/wxa/get_qrcode?access_token=TOKEN&path=page%2Findex%3Faction%3D1 (GET) - 美秒平台API: 未完成
- 微信平台API:
- 将第三方提交的代码包提交审核
- 微信平台API: https://api.weixin.qq.com/wxa/submit_audit?access_token=TOKEN(POST)
- 美秒平台API:https://xxx.xxxx.com/index.php/MiniApp/Code/submitAudit(POST)
1
2
3
4
5
6
7
8
9
10
11
12
13const request = require("request");
const options = { method: 'POST',
url: 'https://xxx.xxxx.com/index.php/MiniApp/Code/submitAudit',
headers:
{ 'Content-Type': 'application/x-www-form-urlencoded'},
formData:
{ appid: 'wx9193c9463e051965',
item_list: 'W3siYWRkcmVzcyI6InBhZ2VzL2xpc3QiLCJ0YWciOiLnn63op4bpopEg5pWZ6IKyIiwiZmlyc3RfY2xhc3MiOiLmlZnogrIiLCJzZWNvbmRfY2xhc3MiOiLlnKjnur/mlZnogrIiLCJmaXJzdF9pZCI6OCwic2Vjb25kX2lkIjozMiwidGl0bGUiOiLnvo7np5Lnn63op4bpopHlrabpmaIifSx7ImFkZHJlc3MiOiJwYWdlcy9pbmZvIiwidGFnIjoi55+t6KeG6aKRIOi1hOiuryIsImZpcnN0X2NsYXNzIjoi5pWZ6IKyIiwic2Vjb25kX2NsYXNzIjoi5Zyo57q/5pWZ6IKyIiwiZmlyc3RfaWQiOjgsInNlY29uZF9pZCI6MzIsInRpdGxlIjoi576O56eS55+t6KeG6aKR5a2m6ZmiLei1hOiuryJ9XQ==' } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
}); - category_list模版
1
2
3
4
5
6
7
8[
{
"first_class": "教育",
"second_class": "在线教育",
"first_id": 8,
"second_id": 32
}
] - item_list模版
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20[
{
"address":"pages/list",
"tag":"短视频 教育",
"first_class":"教育",
"second_class":"在线教育",
"first_id":8,
"second_id":32,
"title":"美秒短视频学院"
},
{
"address":"pages/info",
"tag":"短视频 资讯",
"first_class":"教育",
"second_class":"在线教育",
"first_id":8,
"second_id":32,
"title":"美秒短视频学院-资讯"
}
]
撤回审核
微信文档:微信开放平台 16
- 微信平台API:https://api.weixin.qq.com/wxa/undocodeaudit?access_token=TOKEN (GET)
- 美秒平台API:https://xxx.xxxx.com/index.php/MiniApp/Code/recallAudit?appid=xxx (GET)
发布
微信文档:微信开放平台 6、7、8、9
当小程序有审核结果后,第三方平台将可以通过开放平台上填写的回调地址(https://xxx.xxxx.com/index.php/MiniApp/Code/dealWxCb/apppid/$APPID$),获得审核结果通知。
审核通过时:直接执行发布
审核失败时:记录失败原因反馈给前端
- 获取审核结果
- 微信平台API:https://api.weixin.qq.com/wxa/get_auditstatus?access_token=TOKEN(POST)
- 美秒平台API:
https://xxx.xxxx.com/index.php/MiniApp/Code/get_auditstatus?appid=xxx&auditid=xxx(GET)
参数auditid为提交审核时获得的审核id
- 发布
开发
成员管理
微信文档:微信开放平台
- 绑定微信用户为小程序体验者
- 解除绑定小程序的体验者
- 获取体验者列表
获取分享小程序码
微信文档:获取二维码 · 小程序
- 微信平台API:
https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN(POST) - 美秒平台API:
https://xxx.xxxx.com/index.php/MiniApp/Code/getwxacodeRt?appid=xxx&scene=encodeURIComponent(xxx)&page=encodeURIComponent(xxx)(GET)
微信用户登录
微信文档:开放接口 · 小程序 微信开放平台
登录流程时序
小程序调用wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。
开发者服务器以code换取 用户唯一标识openid 和 会话密钥session_key。
之后开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份。
客服消息
微信文档:客服消息 · 小程序 转发消息 · 小程序
一种是有程序接管,另一种是转发到网页版客服工具(先选择这一种)
所有客服消息会推送到 https://xxx.xxxx.com/index.php/MiniApp/Code/dealWxCb/apppid/$APPID$
如果小程序设置了消息推送,普通微信用户向小程序客服发消息时,微信服务器会先将消息 POST 到开发者填写的 url 上,如果希望将消息转发到网页版客服工具,则需要开发者在响应包中返回 MsgType 为 transfer_customer_service 的消息,微信服务器收到响应后会把当次发送的消息转发至客服系统。
模版消息
微信文档:模板消息 · 小程序
小程序微信支付
微信文档:【微信支付】微信小程序支付开发者文档 微信支付 · 小程序
业务流程时序图
商户系统和微信支付系统主要交互: