溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何開發(fā)企業(yè)微信小程序

發(fā)布時(shí)間:2021-04-27 10:40:23 來源:億速云 閱讀:199 作者:小新 欄目:移動(dòng)開發(fā)

小編給大家分享一下如何開發(fā)企業(yè)微信小程序,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

背景

為其他公司開發(fā)一個(gè)小程序,這個(gè)小程序要只能在企業(yè)微信里面訪問,不能通過普通微信訪問。

企業(yè)微信里只有授權(quán)的用戶可以使用該小程序。

之所以要整理這樣一個(gè)流程,是因?yàn)槲⑿拍沁叺奈臋n太分散了,亂七八糟的,我也是花了很長時(shí)間才把這個(gè)流程理順。

問題分析

首先,這里面需要解決幾個(gè)問題:

1、只在企業(yè)微信里使用,不能在普通小程序使用

判斷當(dāng)前運(yùn)行環(huán)境

2、只有授權(quán)的用戶可以使用該小程序

權(quán)限校驗(yàn)

1:普通微信,使用賬號(hào)+密碼登陸,審核專用,可限制賬號(hào)權(quán)限

2:企業(yè)微信,校驗(yàn)企業(yè)id,校驗(yàn)用戶id,有權(quán)限的才允許使用

3、控制搜索

在小程序管理后臺(tái)設(shè)置「不允許被搜索」

4、控制分享

小程序里面關(guān)閉分享

OK,做到以上幾點(diǎn),就實(shí)現(xiàn)了只有企業(yè)微信里授權(quán)的用戶,才能夠在企業(yè)微信的 工作臺(tái) 看到該小程序。

處理流程

好,既然問題已經(jīng)明確了,那我們就搞起。

1、小程序基礎(chǔ)功能開發(fā),提交審核

對(duì),沒看錯(cuò),先提交審核,因?yàn)橹挥袑徍送ㄟ^的小程序才能被企業(yè)微信綁定。所以,先把小程序的基礎(chǔ)功能做出來,可以限制一部分功能,總之,就是先讓這個(gè)小程序上架。同時(shí),在小程序的管理后臺(tái)設(shè)置「不允許被搜索」,避免不必要的麻煩。

2、企業(yè)微信關(guān)聯(lián)小程序

進(jìn)入企業(yè)微信后臺(tái) -> 應(yīng)用管理 -> 小程序 -> 關(guān)聯(lián)小程序,然后使用小程序管理員的微信掃碼,按照指引操作即可。

3、獲取關(guān)聯(lián)小程序的 Secret,設(shè)置可見范圍

上一步的小程序頁面會(huì)出現(xiàn)剛才關(guān)聯(lián)的小程序,點(diǎn)擊進(jìn)入,然后就看到 secret 及可見范圍。

這個(gè) secret 相當(dāng)于該小程序訪問該企業(yè)微信數(shù)據(jù)的令牌,請(qǐng)妥善保存。

可見范圍就是授權(quán),哪些用戶能看到這個(gè)小程序,被設(shè)置可見的人將會(huì)在自己企業(yè)微信的工作臺(tái)看到該小程序。

4、修改小程序

好了,到重頭戲了。

4.1、判斷運(yùn)行環(huán)境

小程序需要判斷當(dāng)前的運(yùn)行環(huán)境(普通微信 or 企業(yè)微信),需要判斷使用當(dāng)前小程序的用戶是否有權(quán)限使用。

var isWxWork = false;wx.getSystemInfo({
  success(res) {
    console.log(res.environment);

    isWxWork = res.environment == 'wxwork';
    if (!isWxWork) {
        // 當(dāng)前環(huán)境不是企業(yè)微信,怎么處理你隨便
        return;
    }
    
    // 當(dāng)前環(huán)境是企業(yè)微信,執(zhí)行登陸,獲取用戶 code,用于后面的權(quán)限校驗(yàn)
    wx.qy.login({
      success: function (res) {
        if (res.code) {
            console.log(res.code);
            
            // 這里可以將 res.code 通過請(qǐng)求發(fā)送給后臺(tái),讓后臺(tái)做權(quán)限校驗(yàn)
        } else {
            console.log('登錄失??!' + res.errMsg);
        }
      }
    });
  }})
4.2、權(quán)限校驗(yàn)

后臺(tái)需要調(diào)用以下幾個(gè)接口來進(jìn)行權(quán)限校驗(yàn)。

1、獲取 access_token

https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=xxxx&corpsecret=xxxx

請(qǐng)求方式:GET

這個(gè)接口和普通微信獲取 token 的方法類似。

其中,corpid 在企業(yè)微信管理后臺(tái)->我的企業(yè)->企業(yè)信息->企業(yè)ID;corpsecret 就是我們上一步關(guān)聯(lián)小程序后獲取的 secret。

返回內(nèi)容如下:

{
    "errcode": 0,
    "errmsg": "ok",
    "access_token": "xxxxxx",
    "expires_in": 7200}

2、獲取 userid

https://qyapi.weixin.qq.com/cgi-bin/miniprogram/jscode2session?access_token=xxx&js_code=xxx&grant_type=authorization_code

請(qǐng)求方式:GET

其中,access_token 是我們前一步 gettoken 獲取到的;js_code 是前面判斷運(yùn)行環(huán)境時(shí)獲取到的 res.code;grant_type 固定傳 authorization_code

返回內(nèi)容如下:

{
    "userid": "bottle",
    "session_key": "xxxxx",
    "corpid": "xxxxxx",
    "deviceid": "xxxxxx",
    "errcode": 0,
    "errmsg": "ok"}

這里的 corpid 可以用來初步校驗(yàn)當(dāng)前用戶是否有權(quán)限,因?yàn)闊o論哪個(gè)公司的人,只要他用企業(yè)微信,使用這個(gè)小程序,都會(huì)返回這樣的結(jié)果,你需要根據(jù) corpid 是否是你授權(quán)的企業(yè)的ID來校驗(yàn),如果不是,直接返回?zé)o權(quán)限就可以,不用進(jìn)行下一步。

當(dāng)然 corpid 也可以用于處理一個(gè)小程序關(guān)聯(lián)多家公司的情況,不過這是另一個(gè)問題了。這里簡(jiǎn)單提一嘴,因?yàn)槭墙o其他公司開發(fā)的小程序,所以我們這個(gè)小程序也關(guān)聯(lián)了兩個(gè)企業(yè),一個(gè)我們公司,一個(gè)對(duì)方公司,這樣也方便我們測(cè)試,只需要給我們自己的測(cè)試人員授權(quán)就可以讓他們使用完全相同的環(huán)境進(jìn)行測(cè)試了。

3、獲取用戶信息(判斷權(quán)限)

https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=xxx&userid=xxx

請(qǐng)求方式:GET

其中,access_token 是我們前一步 gettoken 獲取到的;userid 就是我們上一步獲取到的 userid。

返回內(nèi)容如下:

  • 有權(quán)限

{
    "errcode": 0,
    "errmsg": "ok",
    "userid": "xxx",
    "name": "xxx",
    "department": [],
    "position": "",
    "mobile": "xxx",
    "gender": "2",
    "email": "",
    "avatar": "http://p.qlogo.cn/bizmail/xxx/0",
    "status": 1,
    "isleader": 0,
    "extattr": {
        "attrs": []
    },
    "telephone": "",
    "enable": 1,
    "hide_mobile": 0,
    "order": [],
    "qr_code": "https://open.work.weixin.qq.com/wwopen/userQRCode?vcode=xxx",
    "alias": "",
    "is_leader_in_dept": []}
  • 無權(quán)限

{
    "errcode": 60011,
    "errmsg": "no privilege to access/modify contact/party/agent , hint: [1564556097_7_8d45297bd21be3702ff430560e1f0652], from ip: 118.113.1.217, more info at https://open.work.weixin.qq.com/devtool/query?e=60011",
    "department": [],
    "order": [],
    "is_leader_in_dept": []}

OK,后面根據(jù)有權(quán)限還是無權(quán)限,執(zhí)行不同的操作就可以了,這里不再贅述。

以上是“如何開發(fā)企業(yè)微信小程序”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI