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

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
      }
    })

  },


要在PHP中实现微信小程序授权获取用户信息并绑定手机号登录,可以按照以下步骤进行操作: 1. 在微信小程序端,通过`wx.login`获取到用户的临时登录凭证`code`。 2. 将获取到的`code`发送到服务器端,使用`https`接口调用`code2Session`接口,获取到`openid`和`session_key`。 3. 将`openid`和`session_key`保存至服务器端数据库或缓存中。 4. 在小程序端,使用`wx.getUserInfo`获取用户信息,包括`nickName`、`avatarUrl`等,并将用户信息传输到服务器端。 5. 在服务器端,接收到用户信息后,将用户信息保存到服务器数据库中,可以使用`openid`作为用户的唯一标识。 6. 在小程序端,点击绑定手机号的按钮,调用`wx.request`向服务器发送请求,请求获取手机号的能力。 7. 在服务器端,接收到手机号请求后,可以返回一个包含手机号获取能力的`code`给小程序端。 8. 小程序端收到`code`后,调用`wx.request`向服务器发送请求,请求获取手机号。 9. 服务器端接收到获取手机号的请求后,可以通过调用微信开放平台提供的解密能力,解密包含手机号的数据,并将解密得到的手机号与用户信息进行绑定。 10. 绑定成功后,返回相应的状态给小程序端。 总结:通过以上步骤,我们可以在PHP中实现微信小程序授权获取用户信息并绑定手机号登录的功能。在小程序端,用户使用微信授权登录后,将用户信息传输到服务器端保存,并通过绑定手机号使用户能够更便捷地登录和使用小程序。同时,在服务器端需要进行数据加密和解密的操作,确保用户的信息安全。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值