Android接入微信登陆
首先添加工具包,名字为libammsdk.jar(微信有相应的包下载)
然后在src.main.java.com.****新建一个wxapi的包并存放这两个activity(名字不能更改)
WXEntryActivity(登陆)
public class WXEntryActivity extends Activity implements IWXAPIEventHandler {private IWXAPI wxAPI;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);wxAPI = WXAPIFactory.createWXAPI(this, ApiConstant.WECHATE_APP_ID, true);wxAPI.registerApp(ApiConstant.WECHATE_APP_ID);wxAPI.handleIntent(getIntent(), this);}@Overridepublic void onReq(BaseReq baseReq) {}@Overridepublic void onResp(BaseResp baseResp) {if (baseResp.getType() == ConstantsAPI.COMMAND_SENDAUTH) {SendAuth.Resp r = (SendAuth.Resp) baseResp;if (baseResp.errCode == BaseResp.ErrCode.ERR_OK) {Log.e("TAG_WECHAT_CODE", r.code);//登陆成功的结果,可以跳转到某个页面finish();} else if (baseResp.errCode == BaseResp.ErrCode.ERR_AUTH_DENIED) {String result = "用户取消微信授权登录";Log.e("ERROR", result);finish();} else if (baseResp.errCode == BaseResp.ErrCode.ERR_USER_CANCEL) {String result = "用户拒绝微信授权登录";Log.e("ERROR", result);finish();} else {String result = "微信授权登录失败";Log.e("ERROR", result);finish();}} else if (baseResp.getType() == ConstantsAPI.COMMAND_SENDMESSAGE_TO_WX) {if (baseResp.errCode == BaseResp.ErrCode.ERR_OK) {} else if (baseResp.errCode == BaseResp.ErrCode.ERR_USER_CANCEL) {} else {}}}
}
WXPayEntryActivity(支付)
public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {private IWXAPI wxAPI;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);wxAPI = WXAPIFactory.createWXAPI(this, ApiConstant.WECHATE_APP_ID);wxAPI.handleIntent(getIntent(), this);}@Overrideprotected void onNewIntent(Intent intent) {super.onNewIntent(intent);wxAPI.handleIntent(getIntent(), this);}@Overridepublic void onReq(BaseReq baseReq) {}@Overridepublic void onResp(BaseResp baseResp) {Log.e("WXPayEntryActivity", "code=" + baseResp.errCode);if (baseResp.errCode == 0) {//支付成功} else if (baseResp.errCode == BaseResp.ErrCode.ERR_USER_CANCEL) {//取消支付Log.e("WXPayEntryActivity", "取消支付");} else {//支付失败Log.e("WXPayEntryActivity", "支付失败");}finish();}
}
在Manifest.xml中添加
<activityandroid:name=".wxapi.WXEntryActivity"android:exported="true"android:label="@string/app_name"android:launchMode="singleTask"android:taskAffinity="com.***.*****"android:theme="@android:style/Theme.Translucent.NoTitleBar" /><activityandroid:name=".wxapi.WXPayEntryActivity"android:exported="true"android:label="@string/app_name"android:launchMode="singleTask"android:taskAffinity="com.***.*****"android:theme="@android:style/Theme.Translucent.NoTitleBar" />
然后在你需要登陆的页面里添加
private IWXAPI iwxapi = null;
@Overridepublic void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);iwxapi = WXAPIFactory.createWXAPI(context, 微信返回的id, true);// 将应用的appId注册到微信iwxapi.registerApp(微信返回的id);//动态监听微信启动广播进行注册到微信context.registerReceiver(new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {// 将该app注册到微信iwxapi.registerApp(微信返回的id);}}, new IntentFilter(ConstantsAPI.ACTION_REFRESH_WXAPP));}public void loginWeChat() {SendAuth.Req req = new SendAuth.Req();req.scope = "snsapi_userinfo";req.state = "wechat_sdk_demo_test";iwxapi.sendReq(req);}
然后直接调用loginWeChat()就可以了,返回的数据在WXEntryActivity中,找一下就能看到
微信支付这一块可以下载官方demo进行查看
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=11_1
Android接入微信登陆相关推荐
- cocos creator接入微信登陆sdk android篇
cocos creator接入微信登陆sdk 背景 项目引擎使用cocos creator,使用android studio集成开发工具,在开发之前先做好准备工作 在微信开放平台上创建好移动应用,拿到 ...
- cocos creator接入微信登陆sdk ios篇
cocos creator接入微信登陆sdk ios篇 背景已经在Android篇里面交代过了,有兴趣的朋友可以再看看Android篇 步骤 去微信开放平台下载ios平台所需要的sdk 在" ...
- 2021年PC电脑网站接入微信登陆支付精讲--1小时自已就可动手接入功能,--所有流程一目了然
2021年了,你还要疲于拼命吗,2001年初,遇到BUG就是躲,放下,去吃最好吃的,吃好喝好,睡一觉,再来解决, 现在是喜欢上BUG了,出现BUG,就发自内心的想搞清楚,是什么源因导致的,呵呵呵 PC ...
- 微信支付android白屏,android 解决微信登陆白屏样式问题
咱们在作微信登陆或者支付的时候,会用到SDK自带的两个页面android WXEntryActivity.WXPayEntryActivityapi 可是总会由于这两个页面的样式问题,出现白屏啊抖动啊 ...
- Android 集成微信登陆不走回调onResp
上代码 <activityandroid:exported="true"android:launchMode="singleTop"android:nam ...
- android接入微信API相关细节
细节1 想要接入微信,如接入分享微信功能.跳转小程序功能等:首先需要到微信开放平台申请AppId,如何申请在开放平台上的流程很清楚,就不赘述了 但有个细节就是应用包名签名,这个应用包名签名记得是以ap ...
- Android 接入微信扫码库,实现堪比微信的扫码效果
对于Android的扫码库,我们平时都会使用ZXing或者ZBar来实现. 但是实际情况是,对于一些环境恶劣的情况下,比如 眩光.昏暗.有污渍等情况下,很难被识别. 即使是在普通情况下,扫码的识别速度 ...
- Android 调用微信登陆、支付、分享,出现的白屏、黑屏、闪屏问题。
当我在去调用微信的登录界面,或者其他支付界面, WXEntryActivity又一个界面,这样看起来很不协调 (WXEntryActivity类finish的时候会有闪屏的效果). 为了让用户感觉只是 ...
- 关于android接入微信分享(以及app签名 the apk for your currently selected variant(app-release)
接入微信分享 在微信开放平台按需接入即可. 查看app签名 微信开放平台里资源下载,下载查看app签名工具:Gen_Signature_Android2.apk the apk for your cu ...
最新文章
- R语言使用ggplot2包的快速可视化函数qplot绘制基础直方图实战
- 学习一下rails hash 的方法
- Linux之自动化部署
- python3反转字符串的3种方法
- 你只知道JVM栈,知不知道栈帧、局部变量表、slot、操作数栈?
- 在Linux系统下防火墙开放所需要访问的端口号
- IntelliJ IDEA修改项目的包名_修改包名
- 飞秋局域网聊天是一种技术工作
- apache开源项目--Lens
- 放纵的感觉其实没有想象的那么好!
- bzoj1965 [AHOI2005]洗牌 结论
- STC51-A/D和D/A
- 解决编译.spec:rpm build with: fg: no job control报错
- mac android 找不到设备管理器,Android Studio找不到连接设备解决方案
- 4.7 合成复用原则
- CHtmlView当前浏览器打开新窗口
- Android手机平板根目录详解
- 使用IBM SPSS快速对数据进行分组
- Android手机GPS卫星定位与通过WLAN与移动网络定位的区别?
- 服务器宕机原因有哪些?服务器宕机解决方案