分享:个人APP(非企业资质)的微信登录方案

目前微信开放平台个人主体类APP不支持开通微信登录,那么个人开发者如何解决微信登录的问题呢?目前有一种替代方案是用微信小程序作为媒介来达到微信登录的目的。

image

微信小程序的登录无需企业资质,同时登录后返回以下信息

  • 用户唯一标识open_id
  • 头像
  • 昵称

==并且微信小程序支持被APP打开,执行操作后再返回数据。==

所以目前的思路是通过APP跳转微信小程序登录再返回来实现微信登录

实现前提条件

  • 微信开放平台账号(个人类)
  • 在开发平台下创建APP并审核通过
  • 已上线一个微信小程序
  • 在开放平台绑定该微信小程序
  • APP和小程序关联

当然没有上线的微信小程序也可以,有小程序id即可,但只能进行测试

以安卓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_id

onLoad(options) {
    if (options.appLogin){
        wx.login({
            success: res => {
            // 发送 res.code 到后台换取 openId, sessionKey, unionId
            }
        })
    }
},

再通过button的open-type="getUserInfo"可弹起登录申请获取用户信息,然后再返回APP客户端即可

image

微信相关文档

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/launchApp.html
https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Launching_a_Mini_Program/Launching_a_Mini_Program.html

顺便推个公众号,不感兴趣的同学可以跳过

image

《IT独立开发者》帮助程序员拓展产品、运营、设计等思维能力,开发独立产品,致力成为自由职业者,实现财富自由

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 谢谢小蘑菇今天和我说了很多,不管是职场上,情感上,或者是我们沟通教育,沟通华德福,沟通心理,都有很多从中受益的话。...
    源源哒阅读 173评论 0 0
  • 尽心尽力,对自己不后悔。推人及己,对他人不强求。 前者是一种自我追求,后者是一种同理心。 有原则,才能懂得如何正确...
    二次希望阅读 460评论 0 0
  • 善良的误会:善良等于理所当然 在上周五下班前,杨姐找到小红,跟小红说要小红替她回来加班,因为自己这周末有事情抽不出...
    洛伊小七阅读 439评论 0 0
  • SNM 493 - #22 Maya as Bald Witch 噢吼吼吼,我一定是脑残才会又买了一场蓝卡。 有幸...
    Aerichsen阅读 374评论 0 0
  • 万法皆生,皆系缘份 茫茫人海,相遇不易,相知更难,走到一起更是再续前缘,但很多人不知道缘分为何?不懂的珍惜今生的相...
    玥垚阅读 677评论 1 0