混合应用 微信登录授权 微信登录认证失败 ios PGWXAPI错误-1 code:-100 / 安卓 message:invalid appsecret innerCode:40125
最近项目需要做微信登录,于是利用HTML5+ API Reference的OAuth模块管理客户端的用户登录授权验证功能,允许应用访问第三方平台的资源。
(链接:https://www.dcloud.io/docs/api/zh_cn/oauth.html)
通过HBuilder真机预览,可以调起微信登录并获取到信息,但是在线打包后虽然可以调起微信,但是授权后拿不到成功的返回信息。
ios上报错图如下

安卓上报错图如下

去论坛上搜索解决方法,大多是说需要重置appsecret就可以解决,于是去微信平台重置appsecret后,发现ios上确实可以,但是
安卓上还是继续报上图中的错误,再去论坛上找答案,有说微信分享和微信登录的appsecret存在被覆盖的现象,所以将两个appsecret值同步后
解决问题。(这里发现微信分享里的appsecret值随便填都可以分享成功,但如果需要微信分享和微信登录同时存在的话,那最好还是保证两个值相同)
附代码:(如果需要做登录测试,那么在下次登录前先注销登录一次,否则会直接拿登录信息,有时换了账号拿的信息还是上一用户的)
$scope.wxLoginFn = function(){
getService()
}
// 微信授权登录对象
var aweixin = null;
// 当前环境支持的所有授权登录对象
var auths = null;
// 获取登录授权认证服务列表,单独保存微信登录授权对象
// 5+APP在plusready事件中调用,uni-app在vue页面的onLoad中调用
function getService(){
plus.oauth.getServices(function(services){
plus.nativeUI.alert("services:"+JSON.stringify(services));
auths = services;
authLogin()
}, function(e){
plus.nativeUI.alert("获取登录授权服务列表失败:"+JSON.stringify(e));
} );
}
// 通常登录前需要先调用authorize方法进行授权
// 获取微信登录授权对象后可进行登录认证操作
function authLogin(){
plus.nativeUI.alert('auths:'+JSON.stringify(auths))
for(let i = 0; i < auths.length; i++){
if(auths[i].id == 'weixin'){
aweixin = auths[i];
break;
}
}
plus.nativeUI.alert('aweixin:'+JSON.stringify(aweixin))
if(!aweixin){
plus.nativeUI.alert("当前环境不支持微信登录");
return;
}
if(!aweixin.authResult){
aweixin.login(function(e){
plus.nativeUI.alert("登录认证成功!"+JSON.stringify(e));
authUserInfo()
}, function(e){
plus.nativeUI.alert("登录认证失败: "+JSON.stringify(e));
} );
}else{
plus.nativeUI.alert("已经登录认证!");
}
}
// 调用authorize、login先授权登录认证
// 注销登录认证
function authLogout(){
console.log('注销登录'+JSON.stringify(aweixin));
if(!aweixin){
plus.nativeUI.alert("当前环境不支持微信登录");
return;
}
aweixin.logout(function(e){
plus.nativeUI.alert("注销登录认证成功!"+JSON.stringify(e));
}, function(e){
plus.nativeUI.alert("注销登录认证失败: "+JSON.stringify(e));
});
}
// 通常登录前需要先调用authorize方法进行授权,调用login方法进行登录认证
// 获取微信登录授权对象后获取用户信息操作
function authUserInfo(){
if(!aweixin){
plus.nativeUI.alert("当前环境不支持微信登录");
return;
}
if(aweixin.authResult){
aweixin.getUserInfo( function(e){
plus.nativeUI.alert("获取用户信息成功:"+JSON.stringify(aweixin.userInfo));
}, function(e){
plus.nativeUI.alert("获取用户信息失败: "+JSON.stringify(e));
} );
}else{
plus.nativeUI.alert("未登录认证!");
}
}
// 注销微信登录
$scope.exitWxLoginFn = function(){
authLogout();
}
ps:不要随便重置appsecret,最好先确认项目中是否有用到,否则重置后可能会影响到支付分享。
混合应用 微信登录授权 微信登录认证失败 ios PGWXAPI错误-1 code:-100 / 安卓 message:invalid appsecret innerCode:40125的更多相关文章
- 【WEB开发】微信网页授权第三方登录接口(WEB登录)
随着手机微信的崛起,腾讯发布的微信联登确实很诱惑pc端的伙伴们,现在就说说在pc端用微信扫一扫实现微信第三方登陆的方式.(具体代码U盘) 本文链接至:http://blog.csdn.net/hxke ...
- iOS 使用百度的人脸识别登录验证,解决认证失败不跳转界面连续认证,认证相似度对比
在使用百度人脸识别出现的问题:小米6调用摄像机是黑白的一个情况,iOS上会出现识别准确性上的问题(多次代开认证,会通过) 人脸识别(活体验证): 1.芝麻认证 : 0.4元/次,需要企业企业认证.不能 ...
- 微信网页授权,微信登录,oauth2
微信官方文档: http://mp.weixin.qq.com/wiki 微信公众平台OAuth2.0授权详细步骤如下: 1. 用户关注微信公众账号.2. 微信公众账号提供用户请求授权页面URL.3. ...
- VueJs单页应用实现微信网页授权及微信分享功能
在实际开发中,无论是做PC端.WebApp端还是微信公众号等类型的项目的时候,或多或少都会涉及到微信相关的开发,最近公司项目要求实现微信网页授权,并获取微信用户基本信息的功能及微信分享的功能,现在总算 ...
- 06_NoSQL数据库之Redis数据库:Redis的高级应用之登录授权和主从复制
Redis高级实用特征 安全性(登录授权和登录后使用auth授权) 设置客户端连接后进行任何其他指定前需要使用的密码. 警告:因为redis速度相当快,所以在一台比较好的服务器下,一个外部的用户 ...
- 网站微信登录授权 ASP.NET
最新做一些项目都有微信登录注册什么的,今天就把自己整理的demo提供给大家 微信认证流程(我自己简称三次握手): 1.用户同意授权,获取code 2.通过code换取网页授权access_token, ...
- [转] Android:微信授权登录与微信分享全解析
https://wohugb.gitbooks.io/wechat/content/qrconnent/refresh_token.html http://blog.csdn.net/xiong_it ...
- 微信授权登录mock(在没有真实微信账号的情况下测试大量微信账户授权登录的情况)
场景介绍 对于构建在微信公众号的系统,帐号体系往往使用微信授权登录(如各类微信商城应用系统). 这样操作不仅可以实现静默注册,对用户几乎是无感的,同时也达到了区分用户,获取用户基本信息(头像,昵称等) ...
- 无需公众号PHP微信登录微信授权微信第三方登录微信开发php开发
无论是个人还是公司,无需申请公众号,无需申请微信开放平台,即可实现手机网站和PC网站的微 信登录!!! 正常的微信登录是这样的: 1.手机版网站做微信登录,需要申请一个认证公众号,认证不仅需要公司营 ...
随机推荐
- 使用mysql连接django时,需要的步骤以及错误解决办法
django默认使用的sqlite3,更改为SQL时需要按照如下操作进行 1.在settings.py中的78行进行更改 DATABASES = { 'default': { 'ENGINE': 'd ...
- PHP被忽略的基础知识
目录 下列PHP配置项中,哪一个和安全最不相关:() 字符串比较函数 格林时间 在PHP面向对象中,下面关于final修饰符描述错误的是( ) getdate()函数返回的值的数据类型是:( ) 关于 ...
- Go语言学习笔记(9)——接口类型
接口 Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口. /* 定义接口 */ type interface_name in ...
- 去除echarts饼状图的引导线
series: { name: "流量占比分布", type: "pie", radius: ["40%", "60%" ...
- Echarts设置y轴值间隔 以及设置 barWidth : 30,//柱图宽度
需求:如图,y轴之间的距离太小,这样就太过于拥挤了,现在要修改echarts里面的属性,设置y轴值间隔让图表看上去舒服一些. 其实很多问题,真的只是因为自己没有好好的看文档,很多文档上面都写的 ...
- Spring AOP日志实现(一)
前置通知:获取访问的类,访问的方法,带参数和不带参数的 日志表信息描述字段: 获取访问时长:
- An unavoidable detour for home CodeForces - 814E (dp)
大意: 给定一棵树每个点的度数, 求所有满足条件的树的个数 每个点到$1$的最短路唯一 假设$l_i$为点$i$到$1$的最短距离, 那么$l_i\ge l_{i-1}$ 每个点度数范围$2\le d ...
- 微信小程序使用 iconfont
小程序中使用 iconfont 在 iconfont.cn 中下载图标库, 直接将其中的 iconfont.css 复制到小程序目录中,并将扩展名改为 wxss: 在使用时在对应的样式文件 wxss ...
- C#中using的用途
using System; --主命名空间,包含所有.net基础类型和通用类型,比如Object, ...
- 一、Windows docker入门篇
win7.win8 等需要利用 docker toolbox 来安装,国内可以使用阿里云的镜像来下载,下载地址:http://mirrors.aliyun.com/docker-toolbox/win ...