美文网首页Androidandnroid
android微信第三方登录

android微信第三方登录

作者: tea9 | 来源:发表于2016-09-08 10:50 被阅读4065次

github测试地址 https://github.com/shaomiao/AndroidWechatTest
微信SDK下载地址
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=11_1
微信开放平台
https://open.weixin.qq.com/
微信api
https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=1417751808&token=dcf5c640a7da2e579f50e32e282eb1bc1f384c0b&lang=zh_CN

开始接入微信登录

1.申请你的AppID
注意:

包名正确(重要)
签名正确(重要)

微信提供的签名生成工具
把包名添加上去就可以获取签名
注意:把要获取签名的应用安装在手机上
https://res.wx.qq.com/open/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android2.apk
2.下载开发工具包
https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419319167&lang=zh_CN
3.在项目中引入开发包

在项目中引入开发工具包
4.使用开发工具包
下面代码都是在MainActivity中
[1]注册微信
private static final String APP_ID="你的appid";
private IWXAPI api;
private void regToWx(){
    api= WXAPIFactory.createWXAPI(this,APP_ID,true);
    api.registerApp(APP_ID);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      //注册微信
      regToWx();
}

[2]登录微信

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //注册微信
    regToWx();
    findViewById(R.id.wechat_login).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //登录微信
            final SendAuth.Req req = new SendAuth.Req();
            req.scope = "snsapi_userinfo";
            req.state = "wechat_sdk_demo_test";
            api.sendReq(req);
        }
    });
}

5.下面是最重要的一步。。。。
[1]建包
注意:要在你的包名下新建 wxapi 包
你的包名.wxapi

你的包名.wxapi

[2]建立与微信通讯的activity
在wxapi下新建activity
WXEntryActivity
[3]在AndroidManifest.xml中添加权限

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

[4]在AndroidManifest.xml中添加activity注册

<activity android:name=".wxapi.WXEntryActivity"
    android:label="@string/app_name"
    android:exported="true"
    android:launchMode="singleTop"
    >
</activity>

[5]在WXEntryActivity中继承Activity并实现IWXAPIEventHandler接口

实现IWXAPIEventHandler接口

重写onCreate方法
在onCreate中需要重新注册一下微信
要不微信不执行回掉


重写onCreate方法

实现onReq和onResp方法
使用okhttp获取微信的openid和用户信息
http://www.jianshu.com/p/c92e1134448d

在onResp中可以获取code
通过code参数加上AppID和AppSecret等,通过API换取access_token;
通过access_token进行接口调用,获取用户基本数据资源或帮助用户实现基本操作。
详情请参照
https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317851&token=dcf5c640a7da2e579f50e32e282eb1bc1f384c0b&lang=zh_CN

onReq和onResp方法

相关文章

  • android 微信登录sdk

    微信登录sdk接入方式请见,移动应用微信登录开发指南。 公司官网android国内版sdk,其中第三方登录选择微信...

  • 代码 - 收藏集 - 掘金

    安卓第三方登录之微信登录(图文详解) - Android - 掘金一、创建应用并成为开发者 1、创建应用 1)到微...

  • iOS微信登录的坑

    默认登录返回没有UnionID 用的友盟SDK做的微信第三方登录,Android那边就能获取到UnionID,而i...

  • Swift开发 微信支付

    引言 集成微信SDK就不废话了,在微信第三方登录做了介绍,传送门:微信第三方登录 签名 微信支付个人觉得最难的就是...

  • ApowerMirror——手机投屏电脑/电脑控制手机/大屏吃鸡

    一、登录注册 1、支持手机号、邮箱和第三方登录登录 2、通过第三方绑定支持微信、微博、QQ,所以也是可以通过微信、...

  • iOS 微信第三方登录

    项目中用到微信第三方登录,吐槽下微信登录demo,基本是没看。。。主要参照微信第三方登录文档,不得不说文档确实比d...

  • 第三方分享登录库,比友盟更稳定

    一个轻量、易扩展的第三方登录分享库,比友盟分享登录更稳定,兼容Android7.0,目前集成了微信、QQ、新浪微博...

  • iOS 苹果登录及第三方登录

    应用集成第三方登录,iOS 13之后必须集成苹果登录,否则审核会被拒的。较为常用的第三方登录是微信和QQ,微信不提...

  • iOS-第三方微信登录

    微信第三方登录实现的全过程:iOS微信登录注意事项:1、目前移动应用上微信登录只提供原生的登录方式,需要用户安装微...

  • 友盟第三方登录 qq 获取uid不一致问题

    刚刚做过友盟第三方 qq 微信 登录,发现qq的一个大坑。 android 和 iOS 用一个qq登录 获取到的 ...

网友评论

  • 51b6eb550d85:感谢分享,想问一下测试版本和生产版本的包名和SHA1签名不一样,怎样拿到测试版本的qppsecret呢?
    51b6eb550d85:@一盅清茶 谢谢:smile:
    tea9:写微信登录已经好长时间了我要是没记错的话AppSecret 和AppId是在微信后台获取的把 应该只有一个不分测试版本 我现在也记不太清了 要是微信调用不起来 看一下这个
    希望能帮到你 http://www.jianshu.com/p/13e43351c974
  • 夏沐尧:请问一下,为什么我唤醒的登陆是白屏--
    夏沐尧:@一盅清茶 找到原因了,包名和我当时在微信平台得不一样
    tea9:@尧沐
    检查签名是否正确
    包名是否与微信后台配置的一致
    检查是否添加权限
    检查代码 是否在初始化时注册微信 是否正确发送请求
    微信支付调用起来没有回调:
    查看包名是否正确
    类名是否正确
    在AndroidManifest.xml是否注册activity

    (包名正确签名正确)就重新安装微信客户端 和重新安装 测试项目
  • tea9:如果用微信例子的签名那包名应该也要改成和和例子里一样的
  • 枫灬叶:感谢分享,像问一下如果没有签名,拿微信例子中的那个签名,去微信登录是一点反映都没有,还是有错误提示呀,我的代码是按你写的,不过签名没申请,

本文标题:android微信第三方登录

本文链接:https://www.haomeiwen.com/subject/gissettx.html