/1、首先你得到微信.开放平台申请开发权限:https://open.weixin.qq.com/

申请通过效果如下即可

2、其次,阅读开发文档:

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317851&token=5e2b1bed1e22d52b73509b9def8c200bf130fb3f&lang=zh_CN

3、接下来就是Android开发代码。分三步获取微信信息,用以登录

3/1常量类

public class Constants {// appidpublic static final String APP_ID = "wx1201a018fdcec6";public static final String SECRET = "fc866ba851439dead6a09a480de179";// 商户号public static final String MCH_ID = "15171351";/*** 微信开放平台和商户约定的支付密钥** 注意:不能hardcode在客户端,建议genSign这个过程由服务器端完成*/public static final String APP_KEY = "01b2e2bd220db0c3765609ebc9b59f";}

3/2起调微信登录

//微信登录private void wxlogin(){String  strState = getPackageName() + String.valueOf(System.currentTimeMillis());String SCOPE = "snsapi_userinfo";IWXAPI api;api = WXAPIFactory.createWXAPI(LiteActivity.this, Constants.APP_ID, false);api.registerApp(Constants.APP_ID);if (!api.isWXAppInstalled()) {Toast.makeText(LiteActivity.this,"请先安装微信客户端!",Toast.LENGTH_LONG).show();return;}final SendAuth.Req req = new SendAuth.Req();req.scope = SCOPE;req.state = strState;api.sendReq(req);}

3/3获取微信回调结果,微信开发必要activity

/*** 微信分享回调*/
public class WXEntryActivity extends Activity implements IWXAPIEventHandler {private IWXAPI wxAPI;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);wxAPI = WXAPIFactory.createWXAPI(this, Constants.APP_ID,true);wxAPI.registerApp(Constants.APP_ID);wxAPI.handleIntent(getIntent(), this);}@Overrideprotected void onNewIntent(Intent intent){super.onNewIntent(intent);wxAPI.handleIntent(getIntent(),this);Log.i("ansen","WXEntryActivity onNewIntent");}@Overridepublic void onReq(BaseReq arg0) {Log.i("ansen","WXEntryActivity onReq:"+arg0);}@Overridepublic void onResp(BaseResp resp){if(resp.getType()== ConstantsAPI.COMMAND_SENDMESSAGE_TO_WX){//分享Log.i("ansen","微信分享操作.....");}else if(resp.getType()==ConstantsAPI.COMMAND_SENDAUTH){//登陆SendAuth.Resp authResp = (SendAuth.Resp) resp;String code = authResp.code;TestObServernotice.getInstance().notifyObserver(111, 2, code);Log.i("ansen", "微信登录操作.....");}finish();}
}

配置微信activity

<activityandroid:name=".wxapi.WXEntryActivity"android:configChanges="orientation|keyboardHidden"android:exported="true"android:screenOrientation="portrait"android:windowSoftInputMode="stateHidden|adjustPan"/>

3/4  resp结果如下。

请求微信接口

public static final String wxlogurl = "https://api.weixin.qq.com/sns/userinfo";
public static final String wxlogurl2 = "https://api.weixin.qq.com/sns/oauth2/access_token";

3/5通过观察者模式,回到activity中,根据code获取token

请求如下:,这里是asyncHttp框架。你可以使用其他请求网络类

private void getUserInfo(final String access_token, final String openid) {String url = Url.wxlogurl2;RequestParams params = new RequestParams();params.put("appid", openid);params.put("secret", Constants.SECRET);params.put("code", access_token);params.put("grant_type", "authorization_code");more_loadDialog.setloadtext("登录中...");more_loadDialog.show();AsyncHttpClient client = new AsyncHttpClient();client.post(url, params, new TextHttpResponseHandler() {@Overridepublic void onFailure(int i, Header[] headers, String s, Throwable throwable) {more_loadDialog.dismiss();Toast.makeText(LiteActivity.this, "网络连接异常", Toast.LENGTH_SHORT).show();}@Overridepublic void onSuccess(int i, Header[] headers, String s) {try {more_loadDialog.dismiss();JSONObject object = new JSONObject(s);String at = object.getString("access_token");getUserInfoend(at,Constants.APP_ID);Log.i("lgq", "re==logtest=====" + s);} catch (JSONException e) {e.printStackTrace();}}});
}

结果如下

3/6根据token获取微信账号详情

请求如下

private void getUserInfoend(final String access_token, final String openid) {String url = Url.wxlogurl;RequestParams params = new RequestParams();params.put("openid", openid);params.put("access_token", access_token);more_loadDialog.setloadtext("登录中...");more_loadDialog.show();AsyncHttpClient client = new AsyncHttpClient();client.post(url, params, new TextHttpResponseHandler() {@Overridepublic void onFailure(int i, Header[] headers, String s, Throwable throwable) {more_loadDialog.dismiss();Toast.makeText(LiteActivity.this, "网络连接异常", Toast.LENGTH_SHORT).show();}@Overridepublic void onSuccess(int i, Header[] headers, String s) {try {more_loadDialog.dismiss();JSONObject object = new JSONObject(s);Log.i("lgq", "re==logtest=====" + s);} catch (JSONException e) {e.printStackTrace();}}});
}

结果如下:

4、所有微信信息已经请求得到了。接下来就是。需要什么参数登录,就使用什么参数登录了 !!!!!!

观察者模式类TestObServernotice:https://blog.csdn.net/meixi_android/article/details/81016359

在线回复解决bug:qq1085220040

Android 微信登录相关推荐

  1. Android微信登录在华为手机上无法调起授权界面的问题

    Android微信登录在华为手机上无法调起授权界面的问题 App集成了微信登录,在其他手机上微信登录都可以正常调起微信授权页面,并且登录成功,但是 在华为手机上调用微信登录,没报异常,也无法调起微信授 ...

  2. android 微信登录与分享集成

    android 微信登录与分享 android微信登录与分享这两个功能是很常用的,尤其是现在微信用户日益剧增,qq虽然很经典但是感觉大多数用来办公 每个写android的小伙伴估计都会写到这个功能,我 ...

  3. android 微信登录不回调,Anroid 进阶之旅 | 微信登录没有回调的问题

    Android微信登录,分享后没有回调 (创建wxapi包的时候,一定要和开放平台填写的路径一致) Android实现微信第三方登录的情况非常多,今天在做微信登录的时候,始终无法回调WXEntryAc ...

  4. android 微信登录返回 -6

    android 微信登录返回 -6 场景: 使用Android studio运行debug版程序,微信登录返回errocode = -6 .无法正常登录 原因: 网上查阅下:是签名与微信开放平台上注册 ...

  5. android微信登录的app签名 和 项目正式签名替换默认签名

    之前微信登录的时候需要应用的签名,然后就直接用android studio自带的工具Build–>Generate Signed APK 获取了签名,给微信弄上就以为ok了,运行一下还是调不起微 ...

  6. Android 微信登录详细流程

    流程讲解: 第一步:先去微信平台注册账号,填写应用信息,提交审核,大概需要三到五天的时间审核完成: 第二步:审核完成微信开放平台会生成一个appid,和sercet 这两个是唯一的id 需要妥善保管: ...

  7. Xamarin.Android 微信登录回调没有反应问题的解决办法

    Xamarin.Android 项目接入微信登录授权的SDK. 可以在NuGet下搜Xamarin.Android.WeChatOpenSDK包,目前最新的是5.4.0 引入包很方便.而且是微信官方出 ...

  8. android 微信绑定闪屏,Android微信登录后黑屏闪屏问题

    本文链接:http://blog..net/dreamsever/article/details/53118864 最近项目要加一个微信登录的功能,由于以前其他项目使用过微信登录,而且该在的东西都在, ...

  9. Android微信登录页面实现

    利用Android实现微信手机端的登录页面,对于登录的输入做了一些的条件限制诸如,非空,长度限制等: 效果图如下: xml文件代码: <?xml version="1.0" ...

最新文章

  1. 关于“VCL已死、RAD已死”答读者问
  2. LeetCode 198, 213 House Robber
  3. 思科路由器的基本配置1
  4. 电子设计从零开始(第2版)pdf
  5. Linux 内核 SMP 代码追踪 --- cpumask
  6. 员工提出离职时,再挽留已经迟了
  7. dual mysql 获取序列_如何获取 MySQL 插入数据的自增 ID
  8. Linux的程序安装和包管理
  9. git学习笔记-(14-远程协作基本流程)
  10. windows键被禁用_如何在Windows 10上禁用插入键
  11. css多媒体竖屏,css3 媒体查询方向:横屏竖屏教程
  12. 如何处理httpclient的ssl错误
  13. 鸿蒙系统功能,华为HarmonyOS2.0系统功能都有哪些呢-华为鸿蒙系统HarmonyOS2.0功能介绍[图文]_咖绿茵手游站...
  14. 女装网 www.nzw.com.cn
  15. solidworks钣金学习分享
  16. AndroidManifest基本定义
  17. CF1375E Inversion SwapSort
  18. java计算机毕业设计计算机office课程平台MyBatis+系统+LW文档+源码+调试部署
  19. 使用sqlyog导入数据表到MySql中
  20. 全球及中国BT筒夹行业投资建议与前景策略分析报告2022版

热门文章

  1. [jQuery] jQuery是如何链式调用的?
  2. [vue] 移动端ui你用的是哪个ui库?有遇到过什么问题吗?
  3. [css] 你知道的等高布局有多少种?写出来
  4. 前端学习(1809):前端调试之微博头部开发
  5. 前端学习(736):函数的返回值return
  6. 前端学习(570):margin负值下的等高布局
  7. html:(24):内联式css和嵌入式css
  8. 实例16:python
  9. oracle数据倾斜优化,Hive数据倾斜优化 - ericquan8的个人页面 - OSCHINA - 中文开源技术交流社区...
  10. PyTorch | 保存和加载模型教程