做爲第三方平臺開發小程序筆記

1、整體流程

第三方平臺幫助旗下已受權的小程序進行代碼管理時,需先開發完成小程序模版,再將小程序模版部署到旗下小程序賬號中,具體流程以下:web

1:綁定開發小程序json

(1)第三方平臺的開發人員需先到微信公衆平臺(mp.weixin.qq.com)申請一個普通的小程序並完善小程序的信息、綁定開發者。小程序

(2)進入微信開放平臺,在第三方平臺詳情中,將該小程序添加爲開發小程序。後端

注意:綁定爲開發小程序後,該小程序的在開發工具中上傳,代碼會直接上傳到開放平臺,不會上傳到公衆平臺。bash

2:小程序模版的開發和上傳微信

使用開發小程序的開發者微信號登陸微信web開發者工具(IDE),開發者工具中按照正常的小程序開發流程進行代碼開發和調試。開發完成後,在開發工具中點擊上傳。app

3:添加到小程序模版庫,得到模版ID微信公衆平臺

從開發者工具中上傳的代碼,會先存在草稿箱中,每一個開發小程序只保留最新一份上傳記錄。開發者可將草稿箱中的代碼添加到小程序模版庫中,小程序模版庫中的模版不會被覆蓋。最多能夠有五十個代碼模版,添加後能夠得到模版ID(TemplateID)。異步

4:調用接口,爲旗下受權的小程序部署代碼工具

2、如何開發

一、建立項目

與開發普通小程序一致,第三方平臺開發者填入相關的 3rdMiniProgramAppid ,設定項目名稱和選擇項目目錄便可建立項目。

對於第三方平臺小程序,能夠在項目頁卡查看到相關的 open3rd 信息以及當前的第三方的 3rdMiniProgramAppid ,如若項目配置了相關的 extAppid ,那麼項目頁卡中也會有相關信息。

二、小程序模板開發

與開發普通小程序一致,開發者在開發工具上開發好相關的業務邏輯以後,在項目頁卡中提交預覽便可以在微信中查看小程序的真實表現,

有所不一樣的是,第三方平臺小程序的提交上傳是上傳至該第三方平臺的 open 賬號下的模板草稿箱中,該平臺的管理員須要自行對該模板進行相應的設置

三、extAppid 的開發調試

爲了方便第三方平臺的開發者引入 extAppid 的開發調試工做,須要引入ext.json的概念。

ext.json是一個配置文件,放置在小程序項目的根目錄下。

能夠根據 ext.json 中的配置直接初始化旗下小程序,這對於 不一樣的小程序會有不一樣的配置,能夠減小請求 的同時,加快頁面的渲染,而且不會有閃爍。

ext.json中的配置字段分爲兩種

  • 特有的字段


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

3、微信爲第三方平臺提供哪些受權

1,受權(登錄自助受權,流程與原公衆號代開發同樣)

2,域名配置修改

3,測試賬號修改

4,提交審覈、發佈版本

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)複製代碼


5、小程序第三方平臺返回碼對照表

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' => '小程序綁定的體驗者數量達到上限',//其實我不知道報什麼錯誤
];複製代碼
相關文章
相關標籤/搜索