一、获取OpenID流程
1、调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器
2、开发者服务器拿到登录凭证appid + appsercet +code 回传到微信接口服务
3、调用 auth.code2Session 接口,换取 用户唯一标识 OpenID 和 会话密钥 session_key。
注意:
1、会话密钥 session_key 是对用户数据进行 加密签名 的密钥。为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥
2、临时登录凭证 code 只能使用一次
二、获取手机号流程
1、通过button设置属性
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">授权用户手机号码</button>
2、拿到返回的iv以及encryptedData这些敏感数据 然后传值给后端 通过加解密数据算法 解析出来具体的手机号区号等信息
三、转发
通过给button属性设置属性 用户点击按钮好触发 Page.onShareAppMessage 事件
<button open-type="share" class='btn'> 转发 </button>
onShareAppMessage: function( options ){
const bargain_id = this.data.bargain_id;
// 来自页面内的按钮的转发
if( options.from == 'button' ){
let shareObj = {
title: "砍大刀阿",// 默认是小程序的名称(可以写slogan等)
path: '/pages/xxx/xxx', // 默认是当前页面,必须是以‘/’开头的完整路径
imageUrl: '',//显示图片长宽比是 5:4
}
return shareObj;
}
}
注意:
1、现在微信已经不支持开发者拿到任何关于成功或者失败的任何回调 如果涉及到具体的业务 需要考虑到这种情况
2、如果转发到群聊里面现在可以通过调用 wx.showShareMenu 并且设置 withShareTicket 为 true 获取一些转发信息但是需要是群发 单发没有
四、授权用户信息
通过给button设置属性 用户点击按钮好触发事件
<button open-type="getUserInfo" bindgetuserinfo="getUserInfo">授权用户信息</button>
注意:
这里要查看用户是否授权 然后再调用wx.getUserInfo获取昵称图像个人信息
wx.getSetting({
success(res) {
if (res.authSetting['scope.userInfo']) {
// 已经授权,可以直接调用 getUserInfo 获取头像昵称
wx.getUserInfo({
success(res) {
const userInfo = res.userInfo;
const nickName = userInfo.nickName;
const avatar = userInfo.avatarUrl;
}
})
}
}
})
网友评论