阅读 350

作为第三方平台开发小程序笔记

一、总体流程

第三方平台帮助旗下已授权的小程序进行代码管理时,需先开发完成小程序模版,再将小程序模版部署到旗下小程序帐号中,具体流程如下:

1:绑定开发小程序

(1)第三方平台的开发人员需先到微信公众平台(mp.weixin.qq.com)申请一个普通的小程序并完善小程序的信息、绑定开发者。

(2)进入微信开放平台,在第三方平台详情中,将该小程序添加为开发小程序。

注意:绑定为开发小程序后,该小程序的在开发工具中上传,代码会直接上传到开放平台,不会上传到公众平台。

2:小程序模版的开发和上传

使用开发小程序的开发者微信号登录微信web开发者工具(IDE),开发者工具中按照正常的小程序开发流程进行代码开发和调试。开发完成后,在开发工具中点击上传。

3:添加到小程序模版库,获得模版ID

从开发者工具中上传的代码,会先存在草稿箱中,每个开发小程序只保留最新一份上传记录。开发者可将草稿箱中的代码添加到小程序模版库中,小程序模版库中的模版不会被覆盖。最多可以有五十个代码模版,添加后可以获得模版ID(TemplateID)。

4:调用接口,为旗下授权的小程序部署代码

二、如何开发

1、创建项目

与开发普通小程序一致,第三方平台开发者填入相关的 3rdMiniProgramAppid ,设定项目名称和选择项目目录即可创建项目。

对于第三方平台小程序,可以在项目页卡查看到相关的 open3rd 信息以及当前的第三方的 3rdMiniProgramAppid ,如若项目配置了相关的 extAppid ,那么项目页卡中也会有相关信息。

2、小程序模板开发

与开发普通小程序一致,开发者在开发工具上开发好相关的业务逻辑之后,在项目页卡中提交预览即可以在微信中查看小程序的真实表现,

有所不同的是,第三方平台小程序的提交上传是上传至该第三方平台的 open 帐号下的模板草稿箱中,该平台的管理员需要自行对该模板进行相应的设置

3、extAppid 的开发调试

为了方便第三方平台的开发者引入 extAppid 的开发调试工作,需要引入ext.json的概念。

ext.json是一个配置文件,放置在小程序项目的根目录下。

可以根据 ext.json 中的配置直接初始化旗下小程序,这对于 不同的小程序会有不同的配置,可以减少请求 的同时,加快页面的渲染,并且不会有闪烁。

ext.json中的配置字段分为两种

  • 特有的字段


if(wx.getExtConfig) {
  wx.getExtConfig({
    success: function (res) {
      console.log(res.extConfig)
    }
  })
}复制代码
  • 同app.json相同的字段

三、微信为第三方平台提供哪些授权

1,授权(登陆自助授权,流程与原公众号代开发一样)

2,域名配置修改

3,测试帐号修改

4,提交审核、发布版本

四、遇到的问题

  • getUserInfo 不支持直接弹窗授权了,需要用到用户信息时可以让用户点击open-type 为userInfo的button来获取
  • <button type="default" size="{{defaultSize}}" loading="{{loading}}" plain="{{plain}}"
            disabled="{{disabled}}" bindtap="default" hover-class="other-button-hover"> default </button>
    <button type="primary" size="{{primarySize}}" loading="{{loading}}" plain="{{plain}}"
            disabled="{{disabled}}" bindtap="primary"> primary </button>
    <button type="warn" size="{{warnSize}}" loading="{{loading}}" plain="{{plain}}"
            disabled="{{disabled}}" bindtap="warn"> warn </button>
    <button bindtap="setDisabled">点击设置以上按钮disabled属性</button>
    <button bindtap="setPlain">点击设置以上按钮plain属性</button>
    <button bindtap="setLoading">点击设置以上按钮loading属性</button>
    <button open-type="contact">进入客服会话</button>
    <button open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="onGotUserInfo">获取用户信息</button>
    <button open-type="openSetting">打开授权设置页</button>
    //获取用户信息
    onGotUserInfo: function(e) {
        console.log(e.detail.errMsg)
        console.log(e.detail.userInfo)
        console.log(e.detail.rawData)
    },
    
    复制代码

  • business_no的问题:business_no需要从后端动态获取,

    //获取ext.json文件中的特定字段
    // 异步获取
    if(wx.getExtConfig) {
      wx.getExtConfig({
        success: function (res) {
          console.log(res.extConfig)
        }
      })
    }
    
    //同步获取: 通过 wx.getExtConfigSync 就可以获得 ext 字段的所有配置
    let extConfig = wx.getExtConfigSync? wx.getExtConfigSync(): {}
    console.log(extConfig)复制代码


五、小程序第三方平台返回码对照表

return [

    '-1' => '系统繁忙',

    // '61003'=>'',//component is not authorized by this account hin

    '61004' => '当前客户端ip未在开放平台白名单',

    '61007' => '当前公众号或者小程序已在公众平台解绑',

    '61023' => '授权已过期,请重新授权',// "refresh_token is invalid hint: [xmQn1a08981466]"


    '85001' => '微信号不存在或微信号设置为不可搜索',

    '85002' => '小程序绑定的体验者数量达到上限',

    '85003' => '微信号绑定的小程序体验者达到上限',

    '85004' => '微信号已经绑定',

    '85006' => '标签格式错误',

    '85007' => '页面路径错误',

    '85008' => '类目填写错误',

    // '85009'=>'已经有正在审核的版本',

    '85010' => 'item_list有项目为空',

    '85011' => '标题填写错误',

    '85012' => '无效的审核id',

    '85013' => '无效的自定义配置',

    '85014' => '无效的模版编号',

    '85015' => '版本输入错误',


    '85019' => '没有审核版本',

    '85020' => '审核状态未满足发布',

    '85021' => '状态不可变-5以内',

    '85022' => 'action非法',

    '85023' => '审核列表填写的项目数不在1-5以内',


    '85043' => '模版错误',

    '85044' => '代码包超过大小限制',

    '85045' => '导航设置错误,请重置导航再试,编号85045',//'ext_json有不存在的路径',

    '85046' => 'tabBar中缺少path',

    '85047' => 'pages字段为空',

    '85048' => '导航设置错误,请重置导航再试,编号85048',//'ext_json解析失败',


    '85066' => '链接错误',

    '85068' => '测试链接不是子链接',

    '85069' => '校验文件失败',

    '85070' => '链接为黑名单',

    '85071' => '已添加该链接,请勿重复添加',

    '85072' => '该链接已被占用',

    '85073' => '二维码规则已满',

    '85074' => '小程序未发布, 小程序必须先发布代码才可以发布二维码跳转规则',

    '85075' => '个人类型小程序无法设置二维码规则',

    '85076' => '链接没有ICP备案',

    '85077' => '小程序类目信息失效(类目中含有官方下架的类目,请重新选择类目)',

    '85079' => '小程序没有线上版本,不能进行灰度',

    '85080' => '小程序提交的审核未审核通过',

    '85081' => '无效的发布比例',

    '85082' => '当前的发布比例需要比之前设置的高',


    '85085' => '当前平台近7天提交审核的小程序数量过多,请耐心等待审核完毕后再次提交',


    '86000' => '不是由第三方代小程序进行调用',

    '86001' => '不存在第三方的已经提交的代码',

    '86002' => '小程序还未设置昵称、头像、简介。请先设置完后再重新提交',


    '87011' => '现网已经在灰度发布,不能进行版本回退',

    '87012' => '该版本不能回退,可能的原因:1:无上一个线上版用于回退 2:此版本为已回退版本,不能回退 3:此版本为回退功能上线之前的版本,不能回退',

    '87013' => '撤回次数达到上限(每天一次,每个月10次)',


    '89031' => '小程序绑定的体验者数量达到上限',//其实我不知道报什么错误
];复制代码


关注下面的标签,发现更多相似文章
评论