客户端集成微信登录

1.WXEntryActivity

public class WXEntryActivity extends WeCareActivity implements IWXAPIEventHandler {// IWXAPI 是第三方app和微信通信的openapi接口private static IWXAPI api;public final static String WX_APP_ID = "wx55bdf002ebc4e7d7";public final static String WX_APP_SECRET = "ccd9bd049967d8ff017ae751f8597fb5";@Overrideprotected void onCreate(Bundle bundle) {super.onCreate(bundle);api = WXAPIFactory.createWXAPI(this, WX_APP_ID, false);api.registerApp(WX_APP_ID);api.handleIntent(getIntent(), this);}@Overrideprotected void onStart() {super.onStart();EventBus.getDefault().register(this);}@Overrideprotected void onStop() {super.onStop();EventBus.getDefault().unregister(this);}@Overridepublic void onReq(BaseReq req) {Logger.v("WXEntryActivity onReq", "is work  resp:" + new Gson().toJson(req));switch (req.getType()) {case ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX:break;case ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX:break;default:break;}finish();}@Overridepublic void onResp(BaseResp resp) {Logger.v("WXEntryActivity onResp", "is work  resp:" + new Gson().toJson(resp));int result = 0;switch (resp.errCode) {case BaseResp.ErrCode.ERR_OK://获取成功result = R.string.errcode_success;SendAuth.Resp resp1 = (SendAuth.Resp) resp;//这里做一下转型就是
//                getUserInfo(r.code);EventBus.getDefault().post(resp1);break;case BaseResp.ErrCode.ERR_USER_CANCEL:result = R.string.errcode_cancel;break;case BaseResp.ErrCode.ERR_AUTH_DENIED:result = R.string.errcode_deny;break;case BaseResp.ErrCode.ERR_UNSUPPORT:result = R.string.errcode_unsupported;break;default:result = R.string.errcode_unknown;break;}
//        Toast.makeText(this, result, Toast.LENGTH_LONG).show();finish();}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);api.handleIntent(data, this);}@Overrideprotected void onNewIntent(Intent intent) {super.onNewIntent(intent);setIntent(intent);api.handleIntent(intent, this);finish();}
}
  1. 请求登录

IWXAPI api = WXAPIFactory.createWXAPI(this, WXEntryActivity.WX_APP_ID,false);
if (!api.isWXAppInstalled()) {//提醒用户没有按照微信ToastUtil.show(this,"请先安装微信客户端");return;
}
SendAuth.Req req = new SendAuth.Req();
req.scope = "snsapi_userinfo";
req.state = "wechat_login";
api.sendReq(req);
  1. WXEntryActivity回调

 @Overridepublic void onResp(BaseResp resp) {Logger.v("WXEntryActivity onResp", "is work  resp:" + new Gson().toJson(resp));int result = 0;switch (resp.errCode) {case BaseResp.ErrCode.ERR_OK://获取成功result = R.string.errcode_success;SendAuth.Resp resp1 = (SendAuth.Resp) resp;//这里做一下转型就是
//                getUserInfo(r.code);EventBus.getDefault().post(resp1);//抛出回调结果到登录界面去break;}finish();}

4.请求token并请求用户数据

public void getWXUserInfo(final Context context, String code) {getSSHClient(context).getWXToken(WXEntryActivity.WX_APP_ID, WXEntryActivity.WX_APP_SECRET, code, "authorization_code").flatMap(new Func1<GetWXTokenResp, Observable<GetWxUserInfoResp>>() {@Overridepublic Observable<GetWxUserInfoResp> call(GetWXTokenResp resp) {Logger.v(TAG , "getWXUserInfo is work  resp:" + new Gson().toJson(resp));return getSSHClient(context).getWxUserInfo(resp.getAccess_token(), resp.getOpenid());}}).subscribeOn(Schedulers.newThread()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer<GetWxUserInfoResp>() {@Overridepublic void onCompleted() {}@Overridepublic void onError(Throwable e) {Logger.v(TAG , "getWXUserInfo onError  msg:" + e.getMessage());}@Overridepublic void onNext(GetWxUserInfoResp resp) {Logger.v(TAG , "getWXUserInfo onNext  msg:" + new Gson().toJson(resp));postEvent(resp);}});
}
  1. LoginActivity回调得到用户数据

@Override
public void onEventMainThread(Object event) {super.onEventMainThread(event);if(event instanceof SendAuth.Resp){SendAuth.Resp resp = (SendAuth.Resp) event;//根据请求WXEntryActivity回调结果请求用户数据HttpImpl.getInstance().getWXUserInfo(this, resp.code);}if(event instanceof GetWxUserInfoResp){GetWxUserInfoResp resp = (GetWxUserInfoResp) event;if(!TextUtils.isEmpty(resp.getOpenid())){//如果openid不为空,则表示登录成功ToastUtil.showShort(this,"微信登录成功!");platForm = AppConstants.PLATFORM_WX;secret_msg = resp.getUnionid();aliasName =  resp.getNickname();isBindAccount(secret_msg,platForm);}}
}

android客户端集成微信登录相关推荐

  1. Android之集成微信登录

    转载请标明出处:  http://blog.csdn.net/hai_qing_xu_kong/article/details/44041241 本文出自:[顾林海的博客] 前言 这篇微信登录的文章是 ...

  2. Android集成微信登录

    Android集成微信登录是比较常见的了,此次我把自己集成的过程总结出来,供大家学习参考. 1.首先需要你去微信开放平台申请对应的APPID,地址https://open.weixin.qq.com/ ...

  3. android 第三方登录界面,Android App集成第三方登录与换肤指南

    Android App集成第三方登录与换肤指南 文档编辑 概述 本文主要是介绍了如何通过开源框架快速支持QQ和微信登录,并介绍了如何实现app快速换肤 QQ登录接入 APP要支持QQ登录,需要先到腾讯 ...

  4. Android app集成微信支付

    Android app集成微信支付 鉴于微信支付的文档入口不太容易找到.以及文档中有些逻辑不通或者容易产生歧义或者缺失一些信息的情况,记录下此次接入的流程和需要关注的一些点. 使用的是app支付-&g ...

  5. Android应用实现微信登录与分享

    Android应用实现微信登录与分享 1. 闲话(可直接无视 项目慢慢的推进,逐渐的做到了微信第三方登录的功能模块了.其实我想说Orz,我等这一天等了好久了,想做个微信验证登录都等了两个多星期咧(其实 ...

  6. 利用WxJava实现PC网站集成微信登录功能,核心代码竟然不超过10行

    最近网站PC端集成微信扫码登录,踩了不少坑,在此记录下实现过程和注意事项. 本文目录 一.微信开放平台操作步骤1.创建"网站应用"2.获取AppID和AppSecret二.开发指南 ...

  7. Android客户端实现注册/登录详解(一)

    前言 我们在开发安卓App时难免要与服务器打交道,尤其是对于用户账号信息的注册与登录更是每个android开发人员必须掌握的技能,本文将对客户端的注册/登录功能的实现进行分析,不到之处还请指出. 在这 ...

  8. php asp.net core,ASP.NET Core集成微信登录的实例图解

    这篇文章主要介绍了ASP.NET Core集成微信登录的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 工具: Visual Studio 2015 update 3 Asp.Net Co ...

  9. android 微信登陆功能,Android集成微信登录

    现在的项目中几乎都会用到微信登录分享支付之类的,我现在做的这个项目正好用到了微信登录功能,再次记录下我的使用过程: 1.第一步  先去微信开放平台注册账号,填写应用信息,提交审核,大概需要三到五天的时 ...

最新文章

  1. python爬虫案例-Python爬虫案例集合
  2. POJ 2135 简单费用流
  3. 将服务器置于最终用户附近可解决性能问题?—Vecloud微云
  4. 深度学习技术在机器阅读理解应用的研究进展
  5. c# mysql存储过程 输出参数值_MySQL 存储过程参数用法 in, out, inout
  6. bzoj1036 树的统计Count 树链剖分
  7. java 交互式 shell_Java9 Shell工具(JShell)
  8. C++ HOOK实现全局键盘钩子的详细过程
  9. AD14.3绘制PCB教程
  10. pageadmin CMS网站建设教程:模板中如何实现信息数据共享
  11. 让我十二点催她睡觉,我用 Python 轻松解决
  12. 264.高德地图的使用---驾车出行路线规划(4)
  13. 怎么把html5做成动态壁纸,在电脑上怎样把小视频做成动态壁纸
  14. GetLastError()函数返回的值及含义
  15. 2020-10-18Go语言接口
  16. Kendo ui 使用总结----Kendo UI 模板
  17. python基础:模块的使用——time使用——时间记录器实现
  18. fabric 国密改造
  19. 防灌水php,自己借鉴写了个防灌水的函数
  20. TPAMI 2022 | 金字塔池化的骨干网络,各大任务都涨点!南开达摩院联合推出P2T

热门文章

  1. Chrome 将 http 域名自动跳转 https 的解决方案
  2. 抖音python广告用的什么音乐_抖音上那些魔性洗脑神曲音乐,我用Python教你一次性下载...
  3. 微信小程序主页面排版
  4. 西南交大计算机绘图大作业,西南交大计算机绘图a第一次离线作业.doc
  5. 阿里云携手达内教育培养大数据技术人才
  6. 【VC ++ 2010】 C语言 计算机二级编译器 Visual C ++ 2010 Express(中文学习版)的安装与使用
  7. android培训第一天
  8. 机房环境监控系统规范设计的重要性!
  9. 机房动环监控系统的优点,机房环境监控系统作用
  10. matlab lsa,omlsa cohen大神的OM-LSA仿真代码 MATLAB soft 联合开发网 - pudn.com