public classWXEntryActivity extends Activity implements IWXAPIEventHandler {privateIWXAPI api;private BaseResp resp = null;private String WX_APP_ID = "创建应用后得到的APP_ID";//获取第一步的code后,请求以下链接获取access_token

private String GetCodeRequest = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code";//获取用户个人信息

private String GetUserInfo = "https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID";private String WX_APP_SECRET = "创建应用后得到的APP_SECRET";

@Overrideprotected voidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

api= WXAPIFactory.createWXAPI(this, WX_APP_ID, false);

api.handleIntent(getIntent(),this);

}//微信发送请求到第三方应用时,会回调到该方法

@Overridepublic voidonReq(BaseReq req) {

finish();

}//第三方应用发送到微信的请求处理后的响应结果,会回调到该方法

@Overridepublic voidonResp(BaseResp resp) {

String result= "";if (resp != null) {

resp=resp;

}switch(resp.errCode) {caseBaseResp.ErrCode.ERR_OK:

result= "发送成功";

Toast.makeText(this, result, Toast.LENGTH_LONG).show();

String code=((SendAuth.Resp) resp).code;/** 将你前面得到的AppID、AppSecret、code,拼接成URL 获取access_token等等的信息(微信)*/String get_access_token=getCodeRequest(code);

AsyncHttpClient client= newAsyncHttpClient();

client.post(get_access_token,newJsonHttpResponseHandler() {

@Overridepublic void onSuccess(intstatusCode, JSONObject response) {//TODO Auto-generated method stub

super.onSuccess(statusCode, response);try{if (!response.equals("")) {

String access_token=response

.getString("access_token");

String openid= response.getString("openid");

String get_user_info_url=getUserInfo(

access_token, openid);

getUserInfo(get_user_info_url);

}

}catch(Exception e) {//TODO Auto-generated catch block

e.printStackTrace();

}

}

});

finish();break;caseBaseResp.ErrCode.ERR_USER_CANCEL:

result= "发送取消";

Toast.makeText(this, result, Toast.LENGTH_LONG).show();

finish();break;caseBaseResp.ErrCode.ERR_AUTH_DENIED:

result= "发送被拒绝";

Toast.makeText(this, result, Toast.LENGTH_LONG).show();

finish();break;default:

result= "发送返回";

Toast.makeText(this, result, Toast.LENGTH_LONG).show();

finish();break;

}

}/**

* 通过拼接的用户信息url获取用户信息

*

* @param user_info_url*/

private voidgetUserInfo(String user_info_url) {

AsyncHttpClient client= newAsyncHttpClient();

client.get(user_info_url, newJsonHttpResponseHandler() {

@Overridepublic void onSuccess(intstatusCode, JSONObject response) {//TODO Auto-generated method stub

super.onSuccess(statusCode, response);try{

System.out.println("获取用户信息:" +response);if (!response.equals("")) {

String openid= response.getString("openid");

String nickname= response.getString("nickname");

String headimgurl= response.getString("headimgurl");

}

}catch(Exception e) {//TODO Auto-generated catch block

e.printStackTrace();

}

}

});

}

@Overrideprotected voidonNewIntent(Intent intent) {

super.onNewIntent(intent);

setIntent(intent);

api.handleIntent(intent,this);

finish();

}/**

* 获取access_token的URL(微信)

*

* @param code

* 授权时,微信回调给的

* @return URL*/

privateString getCodeRequest(String code) {

String result= null;

GetCodeRequest= GetCodeRequest.replace("APPID",

urlEnodeUTF8(WX_APP_ID));

GetCodeRequest= GetCodeRequest.replace("SECRET",

urlEnodeUTF8(WX_APP_SECRET));

GetCodeRequest= GetCodeRequest.replace("CODE", urlEnodeUTF8(code));

result=GetCodeRequest;returnresult;

}/**

* 获取用户个人信息的URL(微信)

*

* @param access_token

* 获取access_token时给的

* @param openid

* 获取access_token时给的

* @return URL*/

privateString getUserInfo(String access_token, String openid) {

String result= null;

GetUserInfo= GetUserInfo.replace("ACCESS_TOKEN",

urlEnodeUTF8(access_token));

GetUserInfo= GetUserInfo.replace("OPENID", urlEnodeUTF8(openid));

result=GetUserInfo;returnresult;

}privateString urlEnodeUTF8(String str) {

String result=str;try{

result= URLEncoder.encode(str, "UTF-8");

}catch(Exception e) {

e.printStackTrace();

}returnresult;

}

}

android apk 微信登入_Android集成第三方微信登录相关推荐

  1. [Android]-SDK QQ微信登入

    在Unity中接入大量SDK,对一个零Android开发基础的人来说还是比较蛋疼的.在网上搜了一大堆资料,总算折腾出一个能用的QQ&微信登入SDK. 在QQ互联和微信开放平台注册,并申请相关权 ...

  2. 微信小程序之微信登入

    以下代码基于uni-app编写 如果没有appid,那么uni-login是受限制的 https://open.weixin.qq.com/ 认证商户() 微信登入 不同的应用对于微信登入会做不同的处 ...

  3. 4.微信登入小程序与后端实现

    微信登入小程序与后端实现 **需求:**实现小程序端实现登入以后,后端实现登入状态 小程序端 app.js App({onLaunch: function () {// 展示本地存储能力001bHJ2 ...

  4. python代码练习,微信登入并生成头像大图

    import itchat import os from math import sqrt from PIL import Image import shutilpwd = os.getcwd() # ...

  5. 帝国cms插件支持7.0/7.2 7.5/UTF-8 微信登入插件 一键登入

    简介: 这款微信登入插件,快快拿去用吧,非常方便,傻瓜式设置. 安装非常简单!新手也能懂! 网盘下载地址: http://kekewangLuo.cc/okQMSxm8a8m0 图片: 安装使用方法: ...

  6. 手把手教你Android集成第三方微信登录

    最近公司要求集成第三方的微信登录功能,以前没做过,现在做完梳理下思路. 1.首先要在微信开放平台注册你的APP.获取APP的id和APPSecret. 2.然后要集成微信的sdk jar包 3.创建一 ...

  7. Day212.OAuth2、微信二维码登入注册功能、用户登录信息前后端供、讲师列表前后端 -谷粒学院

    谷粒学院 OAuth2的使用场景 一.OAuth2解决什么问题 1.OAuth2提出的背景 照片拥有者想要在云冲印服务上打印照片,云冲印服务需要访问云存储服务上的资源 2.图例 资源拥有者:照片拥有者 ...

  8. iOS开发集成第三方微信支付和分享问题

    前言 直入主题 有关微信支付问题 在这里就不再介绍有关微信支付申请的流程了,小白可以参看微信开放平台和微信服务号也可申请微信支付接口.这里是微信官方给的微信支付接入指南(然而并没有太大用处) 1. A ...

  9. android apk u盘升级_Android应用的自动升级、更新模块的实现

    我们看到很多Android应用都具有自动更新功能,用户一键就可以完成软件的升级更新.得益于Android系统的软件包管理和安装机制,这一功能实现起来相当简单,下面我们就来实践一下.首先给出界面效果: ...

最新文章

  1. 3.Linux文件与目录管理
  2. 【对讲机的那点事】带你玩转灵通LT33公网集群对讲机
  3. 用 nginx 代理 MailChimp API 并支持跨域
  4. java拷贝文件权限_boto3 copy vs copy_object关于s3中的文件权限ACL
  5. python的数组属性_[Python]numpy use array属性,pythonnumpy,使用,数组
  6. JVM学习笔记:Java运行时数据区域
  7. 【C++深度剖析教程29】C++对象模型分析下
  8. 【程序员薪资】2021年04月新鲜出炉,看看你拖后腿了吗?
  9. c语言存储大范围整形,C语言整形数值范围问题
  10. 预告 | 4月22日,CVPR 2021论文分享会详细介绍,学术新星云集!
  11. 学会这6个强大的CSS选择器,将真正帮你写出干净的CSS代码!
  12. input只改变光标的颜色 不改变字的颜色
  13. 关于group by 两个或以上条件的分析
  14. mysql数据库学习心得之一
  15. 跪了,腾讯数据工程师用Python可视化绘制的中国GDP数据地图,大佬就是不一样
  16. pci串口驱动安装失败_PCI并口卡驱动安装不上
  17. 父级fixed_position:fixed相对父级元素定位而不是浏览器
  18. mysql 求订单总金额,MySQL查询 每年 每月 每日 订单数和订单金额
  19. 东原地产的女性视角——对话罗韶颖
  20. apicloud菜鸟教程_APICloud 对象之 Method

热门文章

  1. 关于反爬虫,看这一篇就够了
  2. [家里蹲大学数学杂志]第427期与反对称矩阵有关的一个行列式
  3. java设计模——反射的应用 (利用反射来去除if判断语句)
  4. 【转载】MongoDB安装并随windows开机自启
  5. 联络中心的发展方向是SOA
  6. 如何选择WinPE版本?-日常IT维护必备工具WinPE
  7. 视频监控/存储系统设计要点
  8. 解决XManager连接到HP-UX时出现乱码的问题
  9. linux内核启动时报错ubi0 error: validate_ec_hdr: bad data offset 256, expected 128
  10. word count(小组)