小程序(二十三)获取用户信息和位置,code等

xx.png

自己写的,方便后台使用获取code和formid
先放代码:


授权地理位置
查看授权信息

获取code
获取openid和sessionKey

formid只能手机获取:
Page({
  data: {
    code:"",
    myformid:"",
  },
  getCode:function(){
    var that = this;
    wx.login({
      success: function (res) {
        console.log("code:"+res.code)
      },
    })
  },
  openSettings:function(){
    wx.openSetting({
      success: function (res) {
      }
    })
  },
  show_authorize:function(){
    console.log("show_authorize")
    this.openSettings();
  },
  onAuthLocation: function () {
    var that = this;
    wx.authorize({
      scope: 'scope.userLocation',
      success: (res) => {
        console.log('成功:', res)
      },
      fail: (res) => {
        console.log("error")
      },
      complete:(res) => {
        if (res.errMsg =="authorize:fail auth deny")
        this.show_authorize();
      }
    })
    this.show_authorize();
  },
  submitInfo: function (e) {
    // 这样我们就可以获取到form_id了
    console.log("formid:" + e.detail.formId)
    this.setData({
      myformid: e.detail.formId,
    })
  },
  login: function () {
    var that = this;
    wx.login({
      success: function (res) {
        that.getOpenId(res.code);
      },
    })
  },
  getOpenId: function (code) {
    console.log("code:"+code)
    var appid ="wx83d689ec54eb1234";
    var secret = "4aee9d58834147c3346ced12345567"
    wx.request({
      url: 'https://api.weixin.qq.com/sns/jscode2session?appid=' + appid + '&secret=' + secret + '&js_code=' + code + '&grant_type=authorization_code',//请求微信服务器获取openid
      data: {},
      header: {
        'content-type': 'application/json'
      },
      success: function (res) {
        console.log("Openid为:" + res.data.openid)
        console.log("session_key秘钥:" + res.data.session_key)//返回秘钥
      }
    })
  }
})
/*button*/
.btn {
  width: 80%;
  height:88rpx;
  line-height: 88rpx;
  border-radius: 10rpx;
  text-align: center;
  margin: 40rpx 10%;
  background: rgb(241, 165, 25);
  color: #fff;
  font-size:34rpx;
}
.btn_hover{
  color:rgb(241, 241, 241);
  background : rgb(224, 149, 8)
}

简单说下授权,

  1. wx.getSetting
    用来查询授权。返回值中只会出现小程序已经向用户请求过的权限
    2.wx.openSetting
    调起权限设置选择界面,设置界面只会出现小程序已经向用户请求过的权限
    3.获取位置授权,需要在公共app.json里面设置如下:
    "permission": {
    "scope.userLocation": {
    "desc": "你的位置信息将用于小程序位置接口的效果展示"
    }
    },
    4.wx.authorize
    用户发起授权请求。调用后会立刻弹窗询问用户是否同意授权小程序,但不会实际调用对应接口。需要用户点击同意或者拒绝才调用接口。如果用户之前已经同意或者拒绝授权,则不会出现弹窗,直接返回成功或失败的信息。
    如果失败,我们可以自己写弹窗,让用户点击确定按钮,调用wx.openSetting,手动授权位置信息。
    5.需要说明的是,用户信息授权,不能用wx.authorize,必须用:

    用户信息授权弹窗如果已经授权,返回成功信息。
    如果授权失败,用户再次点击会弹授权窗口,用户如果拒绝,那么一直点击一直弹窗。
    而地理位置授权,只要授权过一次,无论成功失败,就不再弹窗,需要自己调用wx.openSetting。。。

参考资料:
https://www.jianshu.com/p/8f1889679fd9

你可能感兴趣的:(小程序(二十三)获取用户信息和位置,code等)