1.获取用户头像user.js
-
opendata
//user.js data: { flag:true, // 是否可以获取opendata canIUseOpenData: wx.canIUse('open- data.type.userAvatarUrl'), userInfo:{},//存放用户信息 },
<!-- 是否可以获取opendata --> <view wx:if="canIUseOpenData"> <view class="avatar"> <open-data type="userAvatarUrl"></open-data> </view> <open-data type="userNickName"></open-data> </view>
-
userInfo.avatarUrl
getUserProfile(e) { // 推荐使用wx.getUserProfile获取用户信息,开发者每次通 过该接口获取用户个人信息均需用户确认,开发者妥善保管用 户快速填写的头像昵称,避免重复弹窗 wx.getUserProfile({ desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写 success: (res) => { this.setData({ userInfo: res.userInfo, }) } })
<!-- 如果没有用户的头像信息 --> <view wx:elif="{{!userInfo.avatarUrl}}"> <!-- 是否可以获取用户信息 --> <button bindtap="getUserProfile"> 获取头像昵称 </button> </view> <view wx:else="{{userInfo.avatarUrl}}"> <!-- 是否可以获取用户信息 --> <view class="avatar"> <image src="{{userInfo.avatarUrl}}" ></image> </view> </view>
2. 登录流程
- 获取用户的头像和昵称信息(可选)
- 通过wx.login() 获取code
- 把code+用户信息(可选)发送给后端
- 后端通过code+appid+AppSecret 向微信的服务器换取openid
- openid就是用户的唯一标识符(判断用户的权限信息)
再返回给 第3步前端
3.支付流程
- 用户下单
- 订单信息,code+发送给服务器
- wx.requestPayment(后端返回的5个参数和一指纹)
- 打开支付界面,返回支付结果