有点小九九
简单的事情认真做

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 参数 

posted on 2021-06-09 16:05  有点小九九  阅读(1678)  评论(0编辑  收藏  举报