美文网首页微信小程序
1.如何换取openId?2.如何注册?

1.如何换取openId?2.如何注册?

作者: 李chun | 来源:发表于2019-04-16 18:33 被阅读201次

    1.如何换取openId?

    很简单就是:
    1)
    使用wx.login来得到用户的code
    2)
    把code给post到后端,让后端去小程序服务器换取openId,后端就返回给我。
    就这么简单。就是把code给post到后端就返回openId了

    // 调用登录接口拿到用户的登录凭证(code)。
            wx.login({
                success: res => {
                    console.log('---app.js的wx.login res---', res);//用到的是res.code
                    //res.code比如"023zcdO92W5VPK0jvOO92dO1O92zcdOA",是用户登录凭证(有效期五分钟)。开发者需要在开发者服务器后台调用 code2Session,使用 code 换取 openid 和 session_key 等信息
                    // 发送 res.code 到后台换取 openId, sessionKey, unionId
                    that.getOpenId(res.code);//把凭证(code)发去后端,期望返回openId,并储存到了全局app.js.globalData.opencode。//可在其他地方通过getApp().globalData.opencode拿到
                }
            });
    
    
    //获取openId
        //发送code到后端服务器,如成功则返回自定义登录态,就包括openId
        getOpenId: function (code) {
            console.log('---app.js里开始拿用户code去后端换取openId---');
            var that = this;
            wx.request({
                url: 'http://192.168.1.208:8102/clnj/' + 'customerApp/getOpenIdByCode.do',
    
                data: { 'code': code },
                method: 'POST',
                header: that.globalData.header,
                success:  (res) => {
                    console.log('--app.js的getOpenId方法后端返回res--', res);
                    // console.log('--app.js的getOpenId方法获取openId的success回调res.data.openid--', res.data.data.openid);
                    // that.globalData.openId = res.data.data.openid;//可在其他地方通过getApp().globalData.opencode拿到
                    console.log('---看看that.globalData.openId是否有值---', that.globalData.openId);
                },
                fail:  () =>  {
                    // fail
                },
                complete:  () =>  {
                    // complete
                }
            })
        }
    

    2.如何注册?

    1)
    使用<button open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">点击授权</button>来弹窗让用户授权。用户点确定就可以从事件对象里看到

        //授权,用户授权“用户信息”功能,用户点击首页的授权按钮然后在弹窗里选择yes/no才触发。
        bindGetUserInfo: function(e) {
            console.log('----用户在授权选择里点击了yes/on!,e:----', e);
            var _this = this;
            console.log('--index/index.js的bindGetUserInfo获取用户信息--', e.detail.userInfo);
            if (e.detail.userInfo) { //如果有这个值,说明用户点选yes了,授权设置里就有了“用户信息”的功能权限
                //用户按了允许授权按钮
                _this.setData({
                    shouquandisplay: "none"
                })
                wx.showTabBar({}) //显示导航栏
            } else {
                //用户按了拒绝按钮
                wx.showModal({
                    title: '授权提醒',
                    content: '请在“点击授权”后点击“允许”以便继续进行使用',
                    showCancel: false,
                    confirmText: "好的",
                    success(res) {
                        if (res.confirm) {} else if (res.cancel) {}
                    }
                })
            }
        },
    

    先让用户授权“获取用户信息”功能,才能使用wx.getUserInfo。
    2)
    把用户openId给post到后盾,让后端检测用户是否注册了。注册了就没事。没有注册,就执行下面步骤的注册。
    3)
    使用wx.getUserInfo来得到用户的nickName,gender,avatarUrl, openId,
    把这些post到后端,让后端给注册这个用户。
    4)
    返回数据,前端确认post成功就行,不用做什么其他处理。这就是为了让后端注册这个用户就行了。

    原来注册对于前端是没有 什么用的,是对后端很有用

    相关文章

      网友评论

        本文标题:1.如何换取openId?2.如何注册?

        本文链接:https://www.haomeiwen.com/subject/ddriwqtx.html