微信授权登陆,以及一个WXEntryActivity不回调问题

Android接入微信SDK如何处理WXEntryActivity 如果安装官网这样接入,你的应用包名永远不变化,就不会出什么问题,一旦我们包名变更,那么我们就需要重构WXEntryActivity 的包名路径,这是一件很麻烦的事情,如果我们是做SDK开发,里面集成了微信,把WXEntryActivity 的包名路径写死了的话,接入方就没法使用我们的微信功能了。 阅读详情
写这边博客的主要目的是记录下实现Andriod微信登陆功能过程中遇到的一个问题,特别是之前做过APP微信支付的同学要注意了。另外,简单的讲述下微信授权登陆的步骤。

1、引入微信SDK版本
compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:1.1.6'
2、在主界面或者Application中调用微信支付API,将APP注册到微信
public static IWXAPI api;
@Override
protected void onCreate(Bundle savedInstanceState) {
    ......
    //将该app注册到微信
    api = WXAPIFactory.createWXAPI(this, WechatConstants.APP_ID);
    api.registerApp(WechatConstants.APP_ID);
    ......
}
3、在登陆界面请求微信授权登陆,微信用户确认后微信将拉起开发者移动应用,并带上授权临时票据(code)
private class wxLoginClickListiner implements OnClickListener {
	......
	final SendAuth.Req req = new SendAuth.Req();
	req.scope = "snsapi_userinfo";
	req.state = "snsapi_login_lnint";
	MainActivity.api.sendReq(req);
	......
}
4、定义WXEntryActivity类,接收微信用户授权结果回调,WXEntryActivity.java一定要安装官方文档定义。
首先创建WXEntryActivity.java,package为应用包名.wxapi,加入APP包名为com.wf.lnt,则WXEntryActivity完整路径为com.wf.lnt.wxapi.WXEntryActivity.java。
public class WXEntryActivity extends BaseActivity implements IWXAPIEventHandler {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.wx_pay_result);

        MainActivity.api.handleIntent(getIntent(), this);
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        setIntent(intent);
        MainActivity.api.handleIntent(intent, this);
    }

    @Override
    public void onReq(BaseReq req) {
        Log.i("WXEntryActivity", "BaseReq");
    }

    @Override
    public void onResp(BaseResp resp) {
        Toast.makeText(this, "baseresp.getType = " + resp.getType(), Toast.LENGTH_SHORT).show();
        if(resp.getType() == ConstantsAPI.COMMAND_SENDAUTH) {//微信登陆
            switch (resp.errCode) {
                case BaseResp.ErrCode.ERR_OK:
                    result = R.string.errcode_success;
                    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;
            }
        }
    }
}
然后配置manifests文件:
<activity
            android:name="包名.wxapi.WXEntryActivity"
            android:exported="true"
            android:launchMode="singleTop"/>
至此微信登陆的主要步骤已讲述完毕,至于微信授权登陆成功后的业务处理就不详述了。这里说说我在做Android微信登陆时遇到的一个问题,纯属自以为是造成的。由于之前做过微信支付,所以在写微信登陆回调类时,直接用了原来微信支付的类WXPayEntryActivity,造成登陆授权后怎么也接收不到回调,各种方法处理无效后,最后还是一点点的和官方提供的demo对照,发现官方demo中回调类名为WXEntryActivity,修改后就OK了,这里提醒网友们注意下这点。。。






无障碍集成微信第三方登录,解决WXEntryActivity不回调onResp 无障碍集成微信第三方登录 解决WXEntryActivity不回调onResp 如何拿到微信登录第三方用户信息: 如何拿到微信登录第三方OPENID: 阅读详情

相关推荐

Android 调用微信登陆、支付、分享,出现的白屏、黑屏、闪屏问题。

当我在去调用微信的登录界面,或者其他支付界面, WXEntryActivity又一个界面,这样看起来很不协调 (WXEntryActivity类finish的时候会有闪屏的效果)。 为了让用户感觉只是拉起了一个授权界面,需要加上 android:theme="@android:style/Theme.Translucent" 使WXEntr...

WL-鬼 1万+

Android微信登录WXEntryActivity无响应

Android微信登录 官方文档:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/Android.html 问题 按照文档要求接入,发送一个SendAuth的消息,能够拉起第三方微信,但会返回AppActivity的时候并有回调onResp,并且WXEntryActivity也没有响应 解决 1.在你的包名相应目录下新建一个 wxapi 目录,并在该 wxapi 目录下新增一个 WXEntryActivity 类,

路漫漫其修远兮,吾将上下而求索 4061

Android 微信登陆

1.首先我们应该先去微信开放平台(https://open.weixin.qq.com)填写应用信息,提交审核 2.审核完成微信开放平台会生成一个appid,和sercet,拿到之后请妥善保管 按照微信开放平台给的文档,下载相应的sdk以及签名工具,在此强调 必须是用签名打包的正式版的apk才可以调起微信的客户端进行授权登录,必须保证应用的签名(用签名工具可以获取)和开放平台上填写的信息一致。 4.开始代码模块 在app级别的build.gradle里面添加依赖 //微信 .

weixin_50051845的博客 5667

微信授权登陆接入第三方App(步骤总结)Android。

这几天开发要用到微信授权的功能,所以就研究了一下。可是微信开放平台接入指南里有几个地方写的不清不楚。在此总结一下,以便需要的人。 很多微信公众平台的应用如果移植到app上的话就需要微信授权登陆了。       目前移动应用上微信登录只提供原生的登录方式,需要用户安装微信客户端才能配合使用。也就是如果第三方应用需要微信授权登陆的话就必须在本机上安装了微信。而后续授权登陆或调用接口之类的相

22万+

微信开放标签 OpenSDk 无法打开APP或者WXEntryActivity无响应 解决方法

微信开放标签无法打开APP,WXEntryActivity无响应

菜鸟博客 1430

微信分享 留在微信没有回调问题

解决微信分享留在微信页面的时候再返回没有成功回调。

微信授权APP第三方登陆(Android)

微信第三方登录 Android 微信原生登录

一只游泳的熊 5万+

SpringBoot3.X及SpringAi和jdk17以上版本集成MCP协议供大模型调用sse协议

MCP(Model Context Protocol,模型上下文协议)是由 Anthropic 推出的开源协议,旨在实现大型语言模型(LLM)与外部数据源和工具的无缝集成,用来在大模型和数据源之间建立安全双向的链接。目标是成为 AI 领域的“HTTP 协议”,推动 LLM 应用的标准化和去中心化。本文主要讲解SpringBoot3.X版本和jdk17版本如何集成MCP协议 后续还有一个SpringBoot2.7和jdk1.8通过solon来实现@Service。

weixin_47247523的博客 788

android之微信最新版的sdk接入微信授权登陆和数据回调

微信授权登陆和数据回调本人用的是最新版的sdk,开发工具是Eclipse(因为现在很多人都是用的AndroidStudio,所以Eclipse的例子会越来越少。其实两者用法大同小异。)。 首先申请appID,AppSeort等(这个很简单,开发者应该都知道) 接入sdk,先去注册微信 private IWXAPI api; /** *在onCreate()方法里 */ api = WXAPIFa

冷飞的博客 1804

用Python实现斗地主游戏(终端版)

马上就要过年了 大家也都放假了吧 过年必不可少的活动 打牌! 今天带大家来写一份斗地主 (又是好多天没怎么更新,忙成狗啊) 那么实现一个斗地主呢 我们肯定要先完善卡牌系统 from collections import Counter import numpy as np import itertools def cmp_to_key(mycmp): 'Convert a cmp= function into a key= function' class K: def _

Miku_wx的博客 9855

ThinkAdmin后台Getshell

通过文件包含或者图片马的方式Getshell。修改其可允许的文件类型,php不允许,可添加。系统管理->系统参数配置->本地服务器存储。

hot_milk1的博客 1864

微信登陆信息不回调WXEntryActivity-onResp()

现象:用户微信登陆授权成功,但是WXEntryActivity: onResp却不返回打印信息 三元催化项目 原因是这三处包名没有保持统一,导致微信回调找不到方法

zhong8888888800的博客 675

记一次wireshark抓取QQ好友IP和火绒抓取微信IP

事情是这样的,,上个周,手机离奇的被盗,但没有关机,为了找回手机,粗学了一手QQ抓ip的手段。 这里我就直接做个演示,解析关键的点。 三种思路i. wireshark 抓取手机在线IPii 火绒抓取 微信在线接听IPiii 火绒抓取 微信在线不接听IP i. wireshark 抓取手机在线IP wireshark抓好友QQ的ip要求和对方打语音的时候要手机在线。 这里说一下,打语音和视频是直接能和对方建立连接,如果发文件,是直接发给腾讯的,抓不到包。 1.打开wireshark,通过电脑Tim给对方打语音

qq_29437513的博客 1万+

安卓端接入微信登陆流程

安卓端接入微信登陆流程

m0_66843126的博客 3316

ABAP调用启信宝API

方法参数定义如下 源代码如下 method qxb_http_get. data:lv_url type string. "===============初始化=============================================== "获取http实例 cl_http_client=>create_by_destination( exporting destination = space importing

u012232542的博客 1311

ABAP代码使用OAuth2.0 Client Credential调用外部API

ABAP-OAuth2.0-调用外部API

m0_74015269的博客 1956

微信授权登陆接入第三方App(Android)

这几天开发要用到微信授权的功能,所以就研究了一下。可是微信开放平台接入指南里有几个地方写的不清不楚。在此总结一下,以便需要的人。 很多微信公众平台的应用如果移植到app上的话就需要微信授权登陆了。       目前移动应用上微信登录只提供原生的登录方式,需要用户安装微信客户端才能配合使用。也就是如果第三方应用需要微信授权登陆的话就必须在本机上安装了微信。而后续授权登陆或

Cloud_Ling的专栏 2436

1.4 你绝对不能错过的天气查询工具:MCP 标准化接入实战

本文介绍了如何构建一个符合MCP标准的天气查询服务。通过FastMCP框架集成OpenWeatherMap API,实现实时天气、天气预报和历史天气查询功能。文章详细展示了从环境准备、插件设计到控制器实现的完整流程,包括如何定义工具函数、配置路由和中间件。同时讲解了如何将MCP服务封装为LangChain工具并与DeepSeek等大模型集成,还涵盖了缓存、限流等高级特性。该示例演示了如何将任意API标准化为MCP服务,为Agent应用提供统一接口。

yonggeit的博客 3047

微信登录,分享,支付,等的白屏闪屏等问题

首先以微信的第三方登录为例: 微信登录官方文档地址:点击进入 一、准备工作 在进行微信登录之前,首先要在微信开放平台注册开发者账号,并拥有一个已审核通过的移动应用,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程。 微信开放平台接入地址:点击进入 创建移动应用后获得相应的AppID 和 AppSecret 微信登录官方文档地址:点击进入

caojing3231509的专栏 1万+

Cilium动手实验室: 精通之旅---5.Mutual Authentication with Cilium

在Cilium 入门实验室中,您将在受《星球大战》启发的场景中实施高级第 3-7 层网络策略。在实验结束时,您将实施强大的网络策略,并通过微分段保护 Empire 免受来自叛乱的攻击。在本实验中,您将重新部署《星球大战》演示应用程序,但除了网络策略之外,您还将了解如何在工作负载之间实施相互身份验证。

Q先生 1397

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

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

Xamarin.Android 项目接入微信登录授权的SDK。 可以在NuGet下搜Xamarin.Android.WeChatOpenSDK包,目前最新的是5.4.0 引入包很方便。而且是微信官方出的包。 接下就是注册等等。网上代码很多,跟java的代码也都差不多,除了个别方法名需要大些外。基本以Ctr+C 然后Ctr+v了。 只是再编写回调响应类WXEntryActivity的时候,遇...

yore2003的专栏 1179

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

react-native-wechat安卓点击登录没有回调问题

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33714884的博客 189

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

android微信支付回调方法,Android 微信支付,授权,分享回调区分记录

Android 微信支付,授权,分享回调区分记录,我们做项目中避免不了和微信打交道,其中最常用的也就是授权登录与分享和支付了。本篇文章记录这三个功能同时使用的时候,回调怎么来区分。因为每个功能都有自己的回调状态。前期集成与发送,资料很多了就不在这里记录了。接收回调首先要写一个WXEntryActivity,实现IWXAPIEventHandler接口。activity的oncreate方法中实例化...

weixin_33901087的博客 458

android 微信绑定闪屏,Android 调用微信登陆、支付、分享,出现的白屏、黑屏、闪屏问题。...

当我在去调用微信的登录界面,或者其他支付界面,WXEntryActivity又一个界面,这样看起来很不协调(WXEntryActivity类finish的时候会有闪屏的效果)。为了让用户感觉只是拉起了一个授权界面,需要加上android:theme="@android:style/Theme.Translucent"使WXEntryActivity变成透明,这样在跳转的过程中就感觉不到WXEntr...

weixin_39724889的博客 1277
上一篇: AndroidStudio下jniLibs、assets、raw目录说明
下一篇: Android工程中compileSdkVersion、minSdkVersion、targetSdkVersion区别
wangpf2011
博客等级 码龄16年 71粉丝 75原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值