微信小程序用户信息获取接口的调整

微信小程序用户信息获取接口的调整,第1张

微信小程序对于用户信息获取进行了接口调整。调用 wxgetUserInfo(Object object) 不会再由d窗授权提示。在已授权时,可以直接获取用户信息;否则则直接进入 fail 回调函数。

用户的授权状态可以用 wxgetSetting() 接口的请求的结果

resauthSetting['scopeuserInfo'] 来判断。

那么在接口调整后,再进行授权登录则需要通过 open-data 来实现。

注:如果用户微信版本不支持open-data,需要提示用户升级。这次接口的调整实际上使得按一次d窗中的授权按钮即可授权的 *** 作变成了需要按两次,并且需要额外设计授权页面或者在主页先进行一次d窗引导用户授权。实际上更加繁琐。

一个很常用的功能,但是我还是发现有一些需要注意的地方在里面,简单记录一下。

第一个问题就是这个 button 组件需要添加 open-type 属性,并指定为 getUserInfo 类型,来获取用户基本信息。还有另外一种做法,具体可以参考 官方文档的说明 。

放一个动图哈哈哈

js 部分就是响应点击事件,使用 api wxgetUserInfo(Object object)

获取用户信息,注意传递给 wxgetUserInfo 的是一个字典其中包含了两个函数分别作为成功和失败的回调函数(callback function)

注意 this 的指代对象发生了变化,最开始的this是指代 Page() 构造出来的对象,在函数里面使用 this 会说未指定,所以我们使用了 that 承接一下,这也算传统艺能咯。

另外一点:获取用户信息时会自动d出一个对话框问用户是否提供信息,这个d窗只d出一次,如果用户点击了拒绝后来又想改为允许,可以使用 wxopenSetting({})

除了可以获取用户的昵称之外还有很多信息可以得到,还有一个比较常用的就是用户头像了也就是 resuserInfoavatarUrl 。

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和手机号+密码给后台

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

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

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

1小程序js端调用框架登陆API,获取到一个临时code,拿着这个code去调用自己的服务端接口

2在自己的服务器端,使用app_id app_secrect code可以获取到用户的openid,这个id是用户唯一的id并且不

3获取用户信息很简单,并且不需要自己的服务器处理,只需要小程序端提供的API。前端页面

4这个时候就可以把该用户的openid 和 昵称,头像,一块调用自己服务端接口,保存到数据

<view @click=getUserInfo">获取微信信息</view>

// 获取用户信息

getUserInfo() {

    if(thisisShow){//防止多次点击

        thisisShow = false

         unigetUserProfile ({

            desc: "获取个人信息",

            success: (res) => {

                thisuserInfo = resuserInfo

                thisisShow = true

            },

            fail: getUserProfileFail => {

                thisisShow = true

                unishowToast({

                    title: '授权失败',

                    mask: false,

                    duration: 1000,

                    icon: 'none',

                })

            }

        })

    }

},

<button type="default" open-type="getPhoneNumber" @getphonenumber="ongetPhoneNumber">授权获取手机号登录</button>

// 获取手机号码

ongetPhoneNumber(e) {

    if (edetailerrMsg == "getPhoneNumber:fail user deny") { //用户拒绝授权 

        //拒绝授权后d出一些提示 

        unishowToast({

            title: '拒绝授权',

            mask: false,

            duration: 1000,

            icon: 'none',

        })

    } else { //允许授权 

        apppostData('url',{

            key: appglobalDatasession_key,

            encryptedData: edetailencryptedData,

            iv: edetailiv

        })then(res=>{

            consolelog("获取手机号码",res)

            thismobile = resdataphoneNumber

            unisetStorageSync('xmfTel',resdataphoneNumber)

        })catch(err=>{

            consolelog(err)

        })

    }

},

微信小程序button api

>

以上就是关于微信小程序用户信息获取接口的调整全部的内容,包括:微信小程序用户信息获取接口的调整、微信小程序获取当前用户信息、小程序微信登录等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://www.54852.com/zz/9308204.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存