前言
uni-app写的前端项目:一套仿奈雪の茶小程序的前端模板
1.授权需要用户主动触发(按钮点击)
#ifdef 为环境编译,官方文档 - 条件编译
固定写法:open-type=“getAuthorize” 授权组件
固定写法:scope=“userInfo”
授权成功回调:@getAuthorize=“onGetAuthorize”
授权失败回调:@error=“onAuthError”
支付宝授权方法: my.getOpenUserInfo
<template>
<!-- #ifdef MP-ALIPAY -->
<button
type="primary"
size="default"
open-type="getAuthorize"
scope="userInfo"
@getAuthorize="onGetAuthorize"
@error="onAuthError"
>
支付宝一键登录
</button>
<!-- #endif -->
</template>
<script>
import Vue from "vue";
export default Vue.extend({
methods: {
// 授权成功回调
onGetAuthorize() {
my.getOpenUserInfo({
fail: res => {
console.log(res);
},
success: res => {
const userInfo = JSON.parse(res.response).response; // 以下方的报文格式解析两层 response
my.alert({
content: userInfo,
});
},
});
},
// 授权失败回调
onAuthError() {
uni.showToast({
title: "授权失败回调"
});
}
}
});
</script>
2.支付宝小程序开发者工具效果图
点击按钮,调用授权弹框
允许(授权成功),获得用户基础信息
拒绝(授权失败)
3.开发者工具上传代码后,需要添加获取基础信息能力
开发管理 - 版本管理 - 能力列表 - 添加能力 - 添加(获取会员基础信息)
4.遇到的问题
运行在开发者工具上,使用的是模拟数据,nickName参数正常获取。
运行在支付宝上,nickName参数不见了。
原因:支付宝用户未设置昵称。
如果本篇文章对你有帮助的话,很高兴能够帮助上你。
当然,如果你觉得文章有什么让你觉得不合理、或者有更简单的实现方法又或者有理解不来的地方,希望你在看到之后能够在评论里指出来,我会在看到之后尽快的回复你。