1.获取用户手机号
注意点:获取任何信息前 尽量都重新获取一遍用户授权信息 然后再继续获取想要的数据 避免不必要的错误
html:
原生小程序中 是用的是on指令 在uniapp中 直接替换成@
注意open-type的填写
<button type="default" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber" @error="onAuthError"
scope='phoneNumber'>授权手机号</button>
请求前后端需要通过 https://opendocs.alipay.com/apis/api_35/alipay.open.auth.app.aes.set
验证aes密钥授权
获取用户信息授权
1.获取用户信息授权(昵称,头像,地区)
<button class="get-auth-btn" type="default" open-type="getAuthorize" @getAuthorize="getUserInfo" @error="getUserInfoError" scope="userInfo">授权登录</button>
注意点:getUserInfo获取会员基础信息授权 点击授权框取消按钮时不会触发 @getAuthorize 事件 而是会触发 @error 事件 放弃授权事件在@error里面处理
2.获取用户手机号授权
<button class="get-phone-btn " v-if="isLogin" type="default" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber" scope='phoneNumber'>获取手机号</button>
注意点:getPhoneNumber 获取会员手机号授权 点击授权框取消按钮时不会触发 @error 事件 而是会触发 @getAuthorize 事件 和获取用户基础信息正好相反 所以基本上不写@error事件也可以
支付宝小程序获取用户手机号加密字符串的时候需要注意 添加 protocols#isvAppId 参数:
添加方式:
1 my.getPhoneNumber({ 2 protocols: { 3 // 小程序模板所属的三方应用appId 4 isvAppId: '11111111111111' 5 }, 6 success: res => { 7 resolve(res.response); 8 }, 9 fail: res => { 10 reject(res); 11 } 12 });
用uniapp开发支付宝小程序 获取手机号的时候里面的嵌套挺深的 授权成功后返回的 response.response 才是加密字符串
一般支付宝小程序的手机号加密串长度 大概为 88 个字符 超过200的基本都是错误的加密串,原因是没有添加 protocols#isvAppId 参数