效果展示:

点击支付宝授权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 实现支付宝授权登录,获取支付宝账号头像昵称等信息相关推荐

  1. android app启动图片 加动画效果,Android Studio开发APP启动程序时开屏简单动画效果快速有效解决方案...

    Android Studio开发APP启动程序时开屏简单动画效果快速有效解决方案 大家在设计APP的末期,都会想给APP搞一些"花里胡哨"的特效来提高APP的B格.博主表示亲测有效 ...

  2. 自动化软件测试 - 通过 Android Studio 开发 App 自动拦截读取短信验证码

        之前一期介绍了怎样通过 Python 的代码去获取短信验证码去进行软件测试,这一期将主要介绍 怎样 通过 Android Studio 开发 App 自动拦截读取短信验证码.     Andr ...

  3. 第三方接入支付宝授权登录(支付宝新建应用没有公钥和私钥)问题

    由于最近有个需求,需要做第三方的接入支付宝授权登录功能,特此记录下.          百度上很多的接入代码,在此的代码其实和他们差不多,差别在于支付宝官方吧原来的秘钥方式换了,有些同学可能找不到或者 ...

  4. Android Studio开发APP

    1.下载Android Studio 官网下载:Android Studio for Window ... 百度云下载:android-studio-bundle-141.1903250-window ...

  5. H5网页使用支付宝授权登录获取用户信息详解

    用户信息授权 用户信息授权主要是为了获取支付宝用户ID(USER_ID).授权令牌(access_token),便于开发者处理自身业务逻辑的时候使用,例如:获取支付宝用户信息.发会员卡.快捷登录等.授 ...

  6. 微信小程序API----授权登录拿到用户头像昵称等信息

    前端开发思路: 1.通过点击按钮,拿到code,传给后台,后台通过code换取session_key 和 openid 这个地方调取 wx.login 这个API 2.调取wx.getUserProf ...

  7. android studio开发app实例_基于Android输入法开发,制作一个微信斗图APP

    刘望舒 读完需要 20分钟 速读仅需12分钟 作者:小学生° 来源:搜狐技术产品 01 导读 微信斗图的应用有很多,但大部分都是通过微信分享来实现的,需下载 APP,下载表情并分享到微信联系人,操作步 ...

  8. android studio开发 APP开机自启动

    最近在做个APP,需要开启自启功能,通过在网上查找资料,实现了自启功能,非常简单,步骤如下: 1.创建广播接收器broadcastReceiver ![在这里插入图片描述](https://img-b ...

  9. Android Studio开发APP常用方法(一)

    选择菜单,弹出子菜单,点击选项跳转到新Activity SubMenu prog = menu.addSubMenu("启动程序");prog.setHeaderTitle(&qu ...

最新文章

  1. 后端_Laravel
  2. 凸优化 [Convex Optimization] — [美] 鲍德(Stephen Boyd),Lieven Vandenberghe 著,王书宁,许鋆,黄晓霖 译
  3. SD卡驱动分析(一)
  4. C++ 中queue(队列)的用法
  5. 结构化查询语言包含哪些方面?
  6. lora技术在无线抄表行业应用
  7. python 链表操作 优化_python---单链表的常用操作
  8. 2个维度5大方法,让你的微服务在K8s上跑起来
  9. Android中的观察者DataSetObservable和DataSetObserver
  10. MyBatis-Plus速览【学习笔记】
  11. OBS无延迟视频直播完整教程(组图)
  12. python爬取大众点评字体_python采集大众点评(字体反爬)
  13. Oracle数据库增删改查
  14. 【数据库】--- Redis
  15. java.lang.OutOfMemoryError
  16. sax dom html解析xml,Python通过DOM和SAX方式解析XML的应用实例分享
  17. python日期和时间的操作方法
  18. 亏大了!一男子薅羊毛 13 万被判 3 年
  19. 正反斜杠的区别_斜杆/和反斜杠\的区别?没多少程序员知道
  20. win10修改系统默认字体

热门文章

  1. TICC- TimeSeries Analyze
  2. Linux定期清理内存方法
  3. 使用Python和OCR进行文档解析的完整代码演示(附代码)
  4. 浏览器显示你的连接不是专用连接怎么解决?
  5. html前端使用js生成pdf文件并保存到本地
  6. 固定资产清理之源码研究
  7. 基于SpringBoot搭建应用开发框架(一) —— 基础架构
  8. Spring定时器的时间表达式
  9. PanDownload又复活了!抓紧保存...
  10. 深入浅出MFC:MFC的消息机制