业务中用到了绑定支付宝账户的功能,需要移动端唤起支付宝app获取到auth_code后传递给后台,后台将用户支付宝的头像,昵称,user_id存入数据库,以便后面做退款转账业务。
首先需要在支付宝平台上签约授权然后下载对应jar包,这个按照官网文档做就可以。(https://docs.alipay.com/mini/introduce/auth)
配置文件中的内容:

#支付宝网关(固定)
URL=https://openapi.alipay.com/gateway.do
#APPID即创建应用后生成
APP_ID=
#开发者应用私钥,由开发者自己生成
APP_PRIVATE_KEY=
#参数返回格式,只支持json
FORMAT=json
#请求和签名使用的字符编码格式,支持GBK和UTF-8
CHARSET=UTF-8
#支付宝公钥,由支付宝生成
ALIPAY_PUBLIC_KEY=
#商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2
SIGN_TYPE=RSA2

在配置文件中引入该properties,然后新建类将参数注入。
applicationContext.xml代码:

<bean id="alipayclient" class="org.springframework.beans.factory.config.PropertiesFactoryBean"><property name="locations"><array><value>classpath*:alipayclient.properties</value></array></property></bean>

接口代码:

@Action("getAccessTokenAndUserId")
public class OutCommonAction extends OutInterfaceBasicAction<DoctorAccount>{private static final long serialVersionUID = 1L;private Map<String, Object> msg = new HashMap<String, Object>();@Value("#{alipayclient[URL]}") public String URL;@Value("#{alipayclient[APP_ID]}") public String APP_ID;@Value("#{alipayclient[APP_PRIVATE_KEY]}") public String APP_PRIVATE_KEY;@Value("#{alipayclient[FORMAT]}") public String FORMAT;@Value("#{alipayclient[CHARSET]}") public String CHARSET;@Value("#{alipayclient[ALIPAY_PUBLIC_KEY]}") public String ALIPAY_PUBLIC_KEY;@Value("#{alipayclient[SIGN_TYPE]}") public String SIGN_TYPE;/*** 支付宝验证*  --使用auth_code获取access_token与user_id* @author XiongXiaobo*/@Action("getAccessTokenAndUserId")public String getAccessTokenAndUserId() {//获取参数String auth_code = getRequest().getParameter("auth_code");//校验参数if (StringUtils.isNotBlank(auth_code)) {try {AlipayClient alipayClient = new DefaultAlipayClient(URL,APP_ID,APP_PRIVATE_KEY,FORMAT,CHARSET,ALIPAY_PUBLIC_KEY,SIGN_TYPE);//使用auth_code获取access_token与user_idAlipaySystemOauthTokenRequest requests = new AlipaySystemOauthTokenRequest();requests.setCode(auth_code);requests.setGrantType("authorization_code");AlipaySystemOauthTokenResponse oauthTokenResponse = alipayClient.execute(requests);if(oauthTokenResponse.isSuccess()){AlipayUserInfoShareRequest requestUser = new AlipayUserInfoShareRequest();AlipayUserInfoShareResponse userinfoShareResponse = alipayClient.execute(requestUser, oauthTokenResponse.getAccessToken());if(userinfoShareResponse!=null){String  avatar=userinfoShareResponse.getAvatar();//用户头像String  userName=userinfoShareResponse.getNickName();//用户昵称String userId= userinfoShareResponse.getUserId();//绑定医生和支付宝数据msg.put("aliNickName",userName);msg.put("aliAvatar",avatar);msg.put("aliAccount",userId);msg.put("stateCode", MsgCode.SUCCESS);msg.put("message", "请求成功并返回数据!");Struts2Utils.renderJson(msg);return NONE;}}msg.put("message", "调用失败!");msg.put("stateCode", MsgCode.SUCCESS);msg.put("message", "请求成功并返回数据!");} catch (Exception e) {msg.put("stateCode", MsgCode.SYS_ERROR);msg.put("message", "后台异常!");e.printStackTrace();}} else {msg.put("stateCode",MsgCode.GET_PARAM_ERROR);msg.put("message","有一个或多个参数为空");}Struts2Utils.renderJson(msg);return NONE;}}

需要强调的是,该接口测试需要在沙箱或者是线上服务器环境测试。

JAVA通过auth_code获取支付宝账户信息相关推荐

  1. Android监听支付宝收款信息,# 监听通知栏获取支付宝到账信息

    监听通知栏获取支付宝到账信息 [toc] 定义service @SuppressLint("OverrideAbstract") @RequiresApi(api = Build. ...

  2. java读取微信消息_微信公众平台开发中使用Java如何实现获取用户的信息

    微信公众平台开发中使用Java如何实现获取用户的信息 发布时间:2020-11-18 15:09:28 来源:亿速云 阅读:93 作者:Leah 本篇文章为大家展示了微信公众平台开发中使用Java如何 ...

  3. java获取支付宝用户信息

    准备工作 1.在蚂蚁金服开发平台申请成为开发者 https://openhome.alipay.com/platform/home.htm 2.进入开发者中心创建应用 3.进入应用设置相应配置 生成密 ...

  4. java 银行管理系统怎么储存账户信息_银行管理系统 实现用户注册 登录 存、取款 交易记录查询和修改用户信息等功能...

    ========= 项    目   介   绍======== 银行账户管理系统 本项目主要实现用户注册 登录 存.取钱和修改用户信息功能. 用户信息的存储和获取通过集合和IO输入输出流实现. 存钱 ...

  5. Java 通过 ip 获取所属城市信息

    文章目录 1 摘要 2 核心 Maven 依赖 3 离线数据 db 保存 4 核心代码 5 测试 6 推荐参考资料 1 摘要 在实际项目中可能会用到统计用户地理位置的需求,这时可以通过客户端的 ip ...

  6. java使用sigar获取服务器的信息

    如果我们想要获取服务器的一些基本信息,我们需要如何操作呢? 在java中,我们可以使用sigar来进行实现,sigar能够实现获取服务器运行时的各项状态信息,如:cpu占用率.内存使用情况等 话不多说 ...

  7. Java.Utils:获取电脑配置信息

    Don't say much, just go to the code. package org.bood.common.utils;import java.io.*;/*** 获取电脑配置信息** ...

  8. java获取支付宝实名信息_获取支付宝授权用户信息

    登录 支付宝开放平台,创建应用 进入应用 在应用信息里设置两处,授权回调只需要到域名即可. 接口加签方式如下图 使用"支付宝密钥生成器"生成,如下图 将公钥复制到 接口加签方式 的 ...

  9. 蚂蚁开放平台—获取支付宝用户信息

    2019-07-08 新增 官方有个链接可以直接查看,直接支付宝APP扫码即可查看自己的userid: 开发流程:https://docs.open.alipay.com/284/106001/ (官 ...

最新文章

  1. 从零写一个编译器(四):语法分析之构造有限状态自动机
  2. struts2+jquery 实现ajax登陆
  3. Java 8 Friday:更多功能关系转换
  4. QEMU 3.0.0 新特性一览
  5. VS2010皮肤控件介绍
  6. 开机启动项_开机时出现“checking media presence”
  7. Java 8 新日期时间 API ( 上 ) – 本地日期时间
  8. [渝粤教育] 西南科技大学 管理学原理 在线考试复习资料(3)
  9. (转载)Fiddler 教程
  10. php转换ofd文件格式,一种OFD格式文档支持脚本的方法与流程
  11. shotcut视频压缩
  12. python生成列表a到z_python实现 1-26=A-Z, then AA-AZ, BA-BZ...ZZA-ZZZ, AAAA, etc.
  13. 项目做PC端页面采用rem适配的使用步骤
  14. xilinx PCIe PIO工程仿真及验证
  15. WiFi基础知识讲解
  16. 超全软件下载网站和网页(一网一匠)
  17. 部署web项目在腾讯云当中
  18. linux-vimdiff,diff,patch,cmp:文件比较
  19. 计算机组成原理实验二 存储器实验
  20. Java中随机数的产生方法

热门文章

  1. 动态网站基本上都是有后台的,静态的网站就是纯HTML的网站的,这样的网站是没有后台的
  2. 教你几种方法最大限度减轻酒精对你身体的伤害
  3. EXCEL怎么隔3行插入1空行?
  4. 区块补习班 | 假酒害人屡禁不止?对不起我来晚了!
  5. UI设计师必备10大工具
  6. uni-app学习笔记之判断当前用户是否拥有某角色和权限
  7. lsdyna如何设置set中的node_list_如何安装使用最帅Linux系统监控工具
  8. Mysql磁盘空洞的成因以及重建表的几种方式
  9. 人工智能的顶会有哪些
  10. 注册中心对比Zookeeper、Eureka、Nacos、Consul和Etcd