Android Studio 开发app 实现支付宝授权登录,获取支付宝账号头像昵称等信息
效果展示:
点击支付宝授权Demo
接下来我们开始动手写项目
首先需要在支付宝开放平台,注册账号,创建应用,配置应用,需要审核时间大约为1-2天。
网页/移动应用文档指引 - 支付宝文档中心 (alipay.com)
成功后的内容如下:
然后按照官方文档一步步操作
APP支付宝登录产品介绍 - 支付宝文档中心 (alipay.com)
可以下载支付宝SDK提供的Demo应用,然后用Android Stdio打开如下
这里需要对gradle版本进行配置
这里有已经配置好的项目文件(互联网的精神就是分享,可以直接下载):
配置好环境的AndroidStdio支付宝登录前端项目-Webpack文档类资源-CSDN文库
项目打开后需要先把之前创建应用获取的APPID PID 私钥填进去(找不到的可以在支付宝开放平台搜对应名字,会有教程告诉在哪),不然运行会出错。
TARGET_ID是自定义的,可以随便写一个。
前端代码运行成功后,获取本地支付宝中登录的用户的authCode通过http请求的方式发给后端(springboot)
创建一个spring boot项目:如何创建springboot项目_H `K的博客-CSDN博客_创建springboot项目
推荐使用spring initializr创建。
后端代码如下(也需要填对应的信息):
项目结构:
代码:
UserController.java:
@RestController
@RequestMapping("")
public class UserController
{/**** @param authCode 前端调用支付宝获取的authCode* @return 结果* @throws AlipayApiException*/@GetMapping("/login")public String loginByAlipay(@RequestParam("authCode") String authCode) throws AlipayApiException{//创建应用获取的内容String appId = "";//私钥String privateKey = "";//这个不是和私钥一起生成的公钥,是应用加签时候生成支付宝公钥,搞错了会报错String alipayPublicKey = "";//根据上述信息获取accessTokenAlipayConfig alipayConfig = new AlipayConfig();alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do");alipayConfig.setAppId(appId);alipayConfig.setPrivateKey(privateKey);alipayConfig.setFormat("json");alipayConfig.setAlipayPublicKey(alipayPublicKey);alipayConfig.setCharset("UTF8");alipayConfig.setSignType("RSA2");AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig);AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();request.setCode(authCode);request.setGrantType("authorization_code");
// request.setRefreshToken("201208134b203fe6c11548bcabd8da5bb087a83b");AlipaySystemOauthTokenResponse response = alipayClient.execute(request);System.out.println(response.getBody());String accessToken = response.getAccessToken();//拿到accessTokenString refreshToken = response.getRefreshToken();//用accessToken获取支付宝用户信息AlipayClient alipayClient1 = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",appId,privateKey,"json","GBK",alipayPublicKey,"RSA2");AlipayUserInfoShareRequest request1 = new AlipayUserInfoShareRequest();AlipayUserInfoShareResponse response1 = alipayClient.execute(request1,accessToken);if(response.isSuccess()){return response1.toString;} else {return "调用失败";}}
}
pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.11</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>ScanRecord</artifactId><version>0.0.1-SNAPSHOT</version><name>ScanRecord</name><description>ScanRecord</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.0</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- 支付宝 SDK--><dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-java</artifactId><version>4.34.0.ALL</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
先运行前端项目获取authCode,然后运行springboot项目,前端没有写请求,所以想要测试可以在本地运行springboot项目然后直接浏览器输入:http://localhost:端口号/login?authCode=值,这里的端口号和值换成对应的你的内容,这只是一种最快捷的方法,还有其他种类的方法,想了解的可以去搜索Android写get请求。
运行截图:
然后就可以从中提取出自己想要的信息,反馈给前端展示出来了,其他的内容并不是重点,这边就不写出来了,请大家多多包含啦。
Android Studio 开发app 实现支付宝授权登录,获取支付宝账号头像昵称等信息相关推荐
- android app启动图片 加动画效果,Android Studio开发APP启动程序时开屏简单动画效果快速有效解决方案...
Android Studio开发APP启动程序时开屏简单动画效果快速有效解决方案 大家在设计APP的末期,都会想给APP搞一些"花里胡哨"的特效来提高APP的B格.博主表示亲测有效 ...
- 自动化软件测试 - 通过 Android Studio 开发 App 自动拦截读取短信验证码
之前一期介绍了怎样通过 Python 的代码去获取短信验证码去进行软件测试,这一期将主要介绍 怎样 通过 Android Studio 开发 App 自动拦截读取短信验证码. Andr ...
- 第三方接入支付宝授权登录(支付宝新建应用没有公钥和私钥)问题
由于最近有个需求,需要做第三方的接入支付宝授权登录功能,特此记录下. 百度上很多的接入代码,在此的代码其实和他们差不多,差别在于支付宝官方吧原来的秘钥方式换了,有些同学可能找不到或者 ...
- Android Studio开发APP
1.下载Android Studio 官网下载:Android Studio for Window ... 百度云下载:android-studio-bundle-141.1903250-window ...
- H5网页使用支付宝授权登录获取用户信息详解
用户信息授权 用户信息授权主要是为了获取支付宝用户ID(USER_ID).授权令牌(access_token),便于开发者处理自身业务逻辑的时候使用,例如:获取支付宝用户信息.发会员卡.快捷登录等.授 ...
- 微信小程序API----授权登录拿到用户头像昵称等信息
前端开发思路: 1.通过点击按钮,拿到code,传给后台,后台通过code换取session_key 和 openid 这个地方调取 wx.login 这个API 2.调取wx.getUserProf ...
- android studio开发app实例_基于Android输入法开发,制作一个微信斗图APP
刘望舒 读完需要 20分钟 速读仅需12分钟 作者:小学生° 来源:搜狐技术产品 01 导读 微信斗图的应用有很多,但大部分都是通过微信分享来实现的,需下载 APP,下载表情并分享到微信联系人,操作步 ...
- android studio开发 APP开机自启动
最近在做个APP,需要开启自启功能,通过在网上查找资料,实现了自启功能,非常简单,步骤如下: 1.创建广播接收器broadcastReceiver ![在这里插入图片描述](https://img-b ...
- Android Studio开发APP常用方法(一)
选择菜单,弹出子菜单,点击选项跳转到新Activity SubMenu prog = menu.addSubMenu("启动程序");prog.setHeaderTitle(&qu ...
最新文章
- 后端_Laravel
- 凸优化 [Convex Optimization] — [美] 鲍德(Stephen Boyd),Lieven Vandenberghe 著,王书宁,许鋆,黄晓霖 译
- SD卡驱动分析(一)
- C++ 中queue(队列)的用法
- 结构化查询语言包含哪些方面?
- lora技术在无线抄表行业应用
- python 链表操作 优化_python---单链表的常用操作
- 2个维度5大方法,让你的微服务在K8s上跑起来
- Android中的观察者DataSetObservable和DataSetObserver
- MyBatis-Plus速览【学习笔记】
- OBS无延迟视频直播完整教程(组图)
- python爬取大众点评字体_python采集大众点评(字体反爬)
- Oracle数据库增删改查
- 【数据库】--- Redis
- java.lang.OutOfMemoryError
- sax dom html解析xml,Python通过DOM和SAX方式解析XML的应用实例分享
- python日期和时间的操作方法
- 亏大了!一男子薅羊毛 13 万被判 3 年
- 正反斜杠的区别_斜杆/和反斜杠\的区别?没多少程序员知道
- win10修改系统默认字体