微信小程序如何通过微信绑定的手机号进行快速登录

1.首先wxml布局文件这么写。   open-type是固定的。   bindgetPhonenumber后面跟的是自定的方法名

open-type= "getPhoneNumber" bindgetphonenumber= "getPhoneNumber"

<view class="btn-submit">
        <button class="btn-block btn-green" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">微信用户快速登录</button>
</view>



2. js文件。写法  需要把获取的js_code,  iv, encryptedData传给服务器,开发者需要在开发者服务器后台调用 api,使用 code 换取 openid 和 session_key 等信息

getPhoneNumber: function (e) {
    var that = this
    // console.log("errMsg:" + e.detail.errMsg)
    console.log("iv:" + e.detail.iv)
    console.log("未转 encryptedData:" + e.detail.encryptedData)
    // console.log("encryptedData:" + encodeURIComponent(e.detail.encryptedData))
    console.log("js_code:" + encodeURIComponent(app.data.js_code))
    wx.request({
      url: url1,
      data: {
        act: "binding_little_program",
        code: encodeURIComponent(app.data.js_code),
        encryptedData: encodeURIComponent(e.detail.encryptedData),
        iv: encodeURIComponent(e.detail.iv),
      },
      method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
      header: {
        'content-type': 'application/json'
      },
      success: function (res) {
        // success
        console.log(res)
        console.log("result_msg:"+res.data.result_msg)
        if (res.data.result_code == 0) {
          util.showAlert(res.data.result_msg)
        } else {
          console.log(res.data.uid)
          util.showAlert1(res.data.result_msg, 'success')
          app.globalData.uid = res.data.uid
          app.globalData.card_id = res.data.card_id
          app.globalData.fullname = res.data.fullname
          app.globalData.photo_img = res.data.photo_img
          app.globalData.usertel = res.data.telephone
          app.globalData.sex = res.data.sex
          console.log('aaphoto = ' + app.globalData.usertel)

          wx.setStorage({
            key: "uid",
            data: res.data.uid,
            success: function (res) { console.log(res) },
            fail: function (res) { console.log(res) },
            complete: function (res) { console.log(res) },
          })
          wx.setStorage({
            key: "usertel",
            data: res.data.telephone,
            success: function (res) { console.log(res) },
            fail: function (res) { console.log(res) },
            complete: function (res) { console.log(res) },
          })
          wx.setStorage({
            key: "card_id",
            data: res.data.card_id,
            success: function (res) { console.log(res) },
            fail: function (res) { console.log(res) },
            complete: function (res) { console.log(res) },
          })
          wx.setStorage({
            key: "fullname",
            data: res.data.fullname,
            success: function (res) { console.log(res) },
            fail: function (res) { console.log(res) },
            complete: function (res) { console.log(res) },
          })
          wx.setStorage({
            key: "photo_img",
            data: res.data.photo_img,
            success: function (res) { console.log(res) },
            fail: function (res) { console.log(res) },
            complete: function (res) { console.log(res) },
          })
          wx.setStorage({
            key: "sex",
            data: res.data.sex,
            success: function (res) { console.log(res) },
            fail: function (res) { console.log(res) },
            complete: function (res) { console.log(res) },
          })
          var pages = getCurrentPages();
          console.log("length" + pages.length);
          //更新ui
          that.setData({
            uid: res.data.uid
          })
          if (that.data.uid > 0)
          { that.getUserInfo(); }
        }


      },
      fail: function () {
        // fail
        util.showAlert('操作失败')
      },
      complete: function () {
        // complete
      }
    })

  },


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值