微信小程序getUserProfile详解,CRMEB系统修复流程

微信小程序getUserProfile详解,CRMEB系统修复流程,第1张

程序所有新进用户的昵称全部变成了“微信昵称”,当时我就

吓得我赶紧爬起来翻文档(需要代码直接往后翻)

原因就像微信所说的,很多开发者在打开小程序时就通过组件方式唤起getUserInfod窗,如果用户点击拒绝,无法使用小程序,这种做法打断了用户正常使用小程序的流程,同时也不利于小程序获取新用户。

这里我会给出Uni-app的适配代码,针对CRMEB系统进行修复,各位同学举一反三(413号之前发布的正式包暂不影响)

1修改pages/users/wechat_login/indexvue中关于微信登录的按钮

<button span=""

class="bg-green btn1">微信登录

<button span=""

class="bg-green btn1">微信登录

2默认data中添加canUseGetUserProfile: false,然后在加载页面调用的方法里面增加unigetUserProfile的判断,是否显示新的按钮。

canUseGetUserProfile: false

if (unigetUserProfile) {

thiscanUseGetUserProfile = true

}

3方法中新增getUserProfile方法用户获取用户信息

//小程序授权api替换 getUserInfo

getUserProfile() {

unishowLoading({

title: '正在登录中'

});

let self = this;

RoutinegetUserProfile()

then(res => {

let userInfo = resuserInfo;

userInfocode = thiscode;

userInfospread_spid = appglobalDataspid; //获取推广人ID

userInfospread_code = appglobalDatacode; //获取推广人分享二维码ID

RoutineauthUserInfo(userInfo)

then(res => {

if (resdatakey !== undefined && resdatakey) {

unihideLoading();

selfauthKey = resdatakey;

selfisPhoneBox = true;

} else {

unihideLoading();

let time = resdataexpires_time - self$Cachetime();

self$storecommit('LOGIN', {

token: resdatatoken,

time: time

});

thisgetUserInfo()

}

})

catch(res => {

unihideLoading();

unishowToast({

title: resmsg,

icon: 'none',

duration: 2000

});

});

})

catch(res => {

unihideLoading();

});

},

4然后在libs/routinejs中增加getUserProfile方法

/

新版小程序获取用户信息 2021 413微信小程序开始正式启用

/

getUserProfile(code) {

return new Promise((resolve, reject) => {

unigetUserProfile({

lang: 'zh_CN',

success(user) {

if (code) usercode = code;

resolve({

userInfo: user,

islogin: false

});

},

fail(res) {

reject(res);

}

})

})

}

这里要注意

if (!isset($userInfoCong['openid'])) {

throw new ValidateException('openid获取失败');

}

if (!isset($userInfoCong['openid'])) {

throw new ValidateException('openid获取失败');

}

userInfo['unionId'] = isset( userInfo [′ unionId ′]= isset (userInfoCong['unionid']) $userInfoCong['unionid'] : '';

userInfo['openId'] = userInfo [′ openId ′]=openid = $userInfoCong['openid'];

修复完成之后重新编译小程序就可以解决授权之后微信用户的问题啦。

小程序获取手机号码,提示 getPhoneNumber :fail:access denied,是设置错误造成的,解决方法如下:

1、首先附上一张小程序获取用户手机号码的流程图。

2、按照上图所示,需要先获取用户的登陆凭证,下面这个代码是使用小程序登录接口以后在获取的,其中wxrequest()是微信官方的API,它的作用是发送网络请求到后端,然后在后端用code换区session_key和openid。

3、现在前端已经将获取的openid和session_key所需的参数传递给后端了,在后端写入相关代码。

4、这时前端success就可以取到openid和session_key了,那么就需要在后端用session_key和openid来获取解密手机号码了;相关代码。

5、最后在小程序的wxml文件中写一个button按钮来获取用户手机号码,就完成了。

1用户点击微信授权,小程序端获取手机号。

2小程序端将手机号和code传给后台,

3后台通过code获取openid

如果openid已经存在,返回用户信息

如果openid不存在,并且该手机号未和openid绑定,那么该openid和手机号均可用户登录,返回用户信息

如果openid不存在,并且该手机号已经和某个openid绑定了,那么返回错误信息

补充:

前端传给后台code,后台通过小程序的一个方法(使用code,小程序appid和secret)从微信获取唯一标识openid(或unionid)

1前端传给后台code,后台(使用code,小程序appid和secret获取)从微信获取唯一标识openid(或unionid)

2如果后台存在该openid用户,返回登录成功的参数

如果不存在该openid用户,返给前端openid和一个失败的标识

3前端界面跳转,变成输入手机号和验证码界面。

如果手机号存在,登录成功,返回参数。并且如果没有绑定微信,那么绑定openid

如果手机号不存在,那么注册该手机号为用户,并且绑定openid

或者第三步骤为:

3前端将openid和手机号+密码给后台

如果登录成功,返回登录成功参数,并且如果没有绑定微信,那么绑定微信

如果用户(手机号)存在,密码错误,提示密码错误

如果用户(手机号)不存在,那么注册该密码为登录密码

微信小程序获取用户信息的接口确实已经被封了,因此现在需要使用微信登录的方式进行用户身份验证和获取用户信息。在小程序中首先通过wxlogin()接口获取用户登录凭证code,然后在小程序后台配置开发者服务器地址和域名,在开发者服务器端使用code请求微信服务器获取openid和session_key等信息。之后就可以得到openid等用户信息并存储到开发者服务器端进行相关业务逻辑处理。同时需要注意需要在小程序中进行用户授权,以获取用户允许授权后的信息。

openid为空意思是:微信支付时没有获取到付款用户唯一标识openid。这个参数是公众号支付时的必传参数。

openid是公众号的普通用户的一个唯一的标识,只针对当前的公众号有效,只要获得OpenID,就可以相继获得用户的一些信息,如:所在城市、国家、姓别等,应该是没有绑定身份z和手机号。

OpenID协议提供了一个基本的认证机制。目前还有基于OpenID的其它可用协议:AttributeExchange:OpenID属性交换是一种用于在端点之间交换标识信息OpenID服务扩展。其提供了对标识信息的接收和存储。

只有用户再打开你的小程序之后,选择了让小程序读取用户信息,即可在后台看到用户的微信ID:

1首先登录微信公众平台,点“设置”。

2你需要的信息都在这里。

3微信原始账号(公众号原始id)的获取方法。

微信二维码登陆:

微信推出网页版后,在网页版中,不再使用传统的用户名密码登陆,而是使用手机扫描二维码登陆的方式。

网络问题。

微信粤省事健康码获取信息失败,可能是系统更新,也有可能是网络问题,关闭微信在重新打开微信粤省事。

粤省事专为在广东省生活的小伙伴提供各种便民服务,除了能够查询社保,缴纳水电费外,也可以查看健康码。

以上就是关于微信小程序getUserProfile详解,CRMEB系统修复流程全部的内容,包括:微信小程序getUserProfile详解,CRMEB系统修复流程、小程序获取手机号码,提示 getPhoneNumber :fail:access denied、小程序微信登录等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/10157668.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存