关于UnionID
同一个微信开放平台下的不同应用,UnionID是相同的
同一个微信开放平台下的相同主体的 App、公众号、小程序,如果用户已经关注公众号,或者曾经登录过App或公众号,则用户打开小程序时,开发者可以直接通过wx.login获取到该用户UnionID
当然也存在没有UnionID的情况,此时要强制用户授权,否则无法绑定手机号
如何获取UnionID
通过给button 设置属性open-type="getUserInfo" 可以从bindgetuserinfo回调中获取到用户信息,由于拿到的用户信息是加密过的,所以拿到用户信息之后要通过后台进行解密才能获取到UnionID
<button open-type="getUserInfo" bindgetuserinfo="getUserinfo">马上授权</button>判断一个用户是否是注册用户
1、本地存在token
此处要使用同步查询,wx.getStorageSync('token');
2、后台查询
调用wx.login拿到code后,通过后台接口查询用户
(在各页面可以不做这个判断,进regist页面会统一查一遍,如果查到是注册用户则返回上一页)
绑定手机号
1、微信快速绑定
首先要拿到用户绑定微信的手机号,通过给button 设置属性open-type="getPhoneNumber" 可以从bindgetphonenumber回调中获取到用户信息
注:必须经过用户同意才能正常获取数据
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">微信手机号一键绑定</button>由于拿到的用户信息是加密过的,所以拿到用户信息之后要通过后台进行解密,解密后拿到手机号就可以嗨嗨地注册啦~
2、手机号 & 验证码绑定
监听input变化获取到用户输入的值 bindinput="bindPhoneInput"
注册成功后通过小程序api wx.setStorageSync('token', xxx); 将token存储在本地,
除非用户删除小程序,或者再次调用以上方法把token设置为空,否知token将一直存在本地缓存中
注:流程图中未画出没有UnionID时要强制授权的情况