分享:我的APP(非企業資質)的微信登陸方案

目前微信開放平臺我的主體類APP不支持開通微信登陸,那麼我的開發者如何解決微信登陸的問題呢?目前有一種替代方案是用微信小程序做爲媒介來達到微信登陸的目的。html

image

微信小程序的登陸無需企業資質,同時登陸後返回如下信息程序員

  • 用戶惟一標識open_id
  • 頭像
  • 暱稱

==而且微信小程序支持被APP打開,執行操做後再返回數據。==小程序

因此目前的思路是經過APP跳轉微信小程序登陸再返回來實現微信登陸微信小程序

實現前提條件api

  • 微信開放平臺帳號(我的類)
  • 在開發平臺下建立APP並審覈經過
  • 已上線一個微信小程序
  • 在開放平臺綁定該微信小程序
  • APP和小程序關聯

固然沒有上線的微信小程序也能夠,有小程序id便可,但只能進行測試bash

以安卓APP爲例,集成微信SDK初始化後,設置小程序原始id來跳轉小程序,能夠傳遞參數給小程序微信

String appId = "......."; //此處爲AppId
final IWXAPI api = WXAPIFactory.createWXAPI(this, appId);
api.registerApp(appId);
findViewById(R.id.wx_login).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
        req.userName = "gh_f1312c106dff"; // 填小程序原始id
        req.path = "pages/index/index?appLogin=1";  //拉起小程序頁面的可帶參路徑,不填默認拉起小程序首頁,對於小遊戲,能夠只傳入 query 部分,來實現傳參效果,如:傳入 "?foo=bar"。
        req.miniprogramType = WXLaunchMiniProgram.Req.MINIPROGRAM_TYPE_TEST;// 可選打開 開發版,體驗版和正式版,
        api.sendReq(req);
    }
});
複製代碼

小程序被調起後會在onLoad方法接收到參數,再調用wx.login方法獲取js_code,再經過js_code拿open_idsession

onLoad(options) {
    if (options.appLogin){
        wx.login({
            success: res => {
            // 發送 res.code 到後臺換取 openId, sessionKey, unionId
            }
        })
    }
},
複製代碼

再經過button的open-type="getUserInfo"可彈起登陸申請獲取用戶信息,而後再返回APP客戶端便可app

微信相關文檔ide

developers.weixin.qq.com/miniprogram… developers.weixin.qq.com/doc/oplatfo…

順便推個公衆號,不感興趣的同窗能夠跳過

《IT獨立開發者》幫助程序員拓展產品、運營、設計等思惟能力,開發獨立產品,致力成爲自由職業者,實現財富自由

相關文章
相關標籤/搜索