wx.login()
微信登录的原理
调用 login()成功之后获取一个用户登录凭证 code,再发送 request 请求给第三方服务器解析获得会话密钥和 openid
获取用户的手机号码,要先调用login()成功之后返回一个code,需用 <button> 组件的点击来触发,个人开发者不能用,open-type 设置为 getPhoneNumber ,当用户点击并同意之后,可以通过 bindgetphonenumber 事件回调获取到微信服务器返回的加密数据(e.detail.encryptedData,iv), 然后在第三方服务端结合 session_key 以及 openid 进行解密获取手机号。(res.phone,countryCode,appid)
授权
部分接口需要权限,接口按使用范围分成多个 scope,9 个(用户信息,地理位置,通讯地址,发票抬头,获取发票,微信运动步数,录音功能,保存到相册,摄像头),
wx.authorize()在调用需授权 API 之前,提前向用户发起授权请求wx.authorize({scope: "scope.userInfo"})
,不会弹出授权窗口,请使用 <button open-type="getUserInfo"/>
wx.getSetting()获取用户的当前设置
wx.openSetting()打开设置界面,引导用户开启授权
获取用户信息(昵称,头像,语言,城市,身份,国家)
获取用户信息之前需要用户授权
button 组件去触发 getUserInof 接口,bindgetuserinfo绑定
button的open-type 的合法值:
contact、share\getPhoneNumber\getUserInfo\launchApp\openSetting\feedback
微信支付的原理
wx.requestPayment()
前台调用后台接口→后台调用微信统一下单接口,后台返回调用微信统一下单后返回的内容给前台→前台根据后台返回的内容调用微信浏览器内置JS弹出支付→支付后有两种处理 ①前台支付成功后的页面 ②微信回调url(一般处理业务逻辑)
购物车的业务逻辑
选商品 下单 生成订单号 提交服务器