JAVA通过auth_code获取支付宝账户信息

支付相关(二):APP支付宝支付-转账到支付宝账号(JAVA服务端开发) 首先确保签约单笔转账到支付宝账号转账到支付宝账号是APP这边一个提现的功能。支付宝提供了可以转账到支付宝账号的功能,可选择收款方账户类型。可取值:1、ALIPAY_USERID:支付宝账号对应的支付宝唯一用户号。以2088开头的16位纯数字组成。2、ALIPAY_LOGONID:支付宝登录号,支持邮箱和手机号格式。a、转到支付宝唯一用户号,获取1ALIPAY_USERID的方式需要,支付宝授权才能... 阅读详情

业务中用到了绑定支付宝账户的功能,需要移动端唤起支付宝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_id
                AlipaySystemOauthTokenRequest 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;
    }

}

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

移动App中接入微信支付和支付宝支付 小摊小贩们在线下交易一般无需接入微信支付,只需要向别人出示自己的付款码就行。因为一手交钱,一手交货,你不付钱,人家不会给你商品。但在网上,要实现无人值守,别人扫码付了款,平台得自动知道,然后再发货。所以必须接入微信支付。申请地址:https://mp.weixin.qq.com。关联一个appId,搜索appId, 然后提交申请。首先你要有一个微信账号,然后申请服务号或公众号。微信支付必须是企业主体,要有营业执照才能申请。在公众号侧,菜单”微信支付“里确认申请。本文简单整理了一下该过程,备忘。 阅读详情

相关推荐

支付宝支付Java对接实战:回调验签、沙箱调试与避坑指南

支付系统是互联网产品的核心刚需,而支付宝作为国内使用最广泛的支付渠道之一,其接口设计、签名机制和异步通知模型具有典型代表性。理解支付对接的底层原理,不仅有助于快速接入支付宝,更能为微信支付、银联等渠道提供经验迁移。本文从支付闭环的完整链路出发,解析商户系统与支付宝网关的交互流程,重点剖析同步跳转与异步通知的区别,强调以异步通知作为订单最终状态的判定依据,并深入讲解RSA2签名验证、回调幂等处理、订单查询补偿与日终对账等关键技术实践。同时,结合实际开发场景,介绍Java接入支付宝电脑网站支付的最小示例、沙箱环

cuiji1279的博客 364

支付宝小程序前端获取authCode

【代码】支付宝小程序前端获取authCode。

weixin_50391597的博客 1028

Java Web项目实战:Naver第三方登录集成与OAuth 2.0安全实践

OAuth 2.0授权码模式是现代Web应用实现第三方登录的通用安全框架,其核心原理是通过授权码在客户端与服务端之间安全传递用户身份,避免敏感凭证泄露。这一机制为应用提供了便捷的用户注册登录体验,同时确保了身份验证过程的安全性,广泛应用于社交平台、支付系统等场景。在具体工程实践中,服务端渲染(SSR)架构下的Web项目集成第三方登录时,需重点关注跨域处理、会话(Session)安全以及服务端与前端在授权码交换上的职责划分。本文以面向韩国市场的项目为例,深入解析Naver登录在Web端的特殊实现细节,涵盖从授

weixin_30824599的博客 474

java获取支付宝用户信息

第一步:先引入需要的jar包 <!-- 支付宝核心sdk --> <dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sdk-java</artifactId> <version>4.22.113.ALL</version> &lt

格林王子举哥 1765

2026四大AI编程工具实战对比:Cursor/Copilot/Windsurf/Augment Code范式解析

AI编程工具已从基础代码补全迈入协同开发新阶段,核心演进方向是上下文理解深度、IDE生态融合度、实时交互颗粒度与文档-代码闭环能力。Cursor以项目级知识图谱实现强上下文锚定,GitHub Copilot依托VS Code与JetBrains深度集成提供零延迟响应,Windsurf通过悬停即解释重构代码理解范式,Augment Code则首创文档驱动的双向生成机制。这些技术路径差异直接决定其在微服务搭建、嵌入式调试、框架迁移等真实工程场景中的不可替代性。本文基于200+小时实测,聚焦AI协作者在STM32

weixin_33806914的博客 421

大模型训练方法全面解析:SFT、RFT、TRPO、DPO、PPO、GRPO、RLH、RLHF技术深度剖析

大模型训练方法全面解析 本文系统介绍了当前主流的大模型训练和对齐技术,包括监督微调(SFT)、拒绝采样微调(RFT)、信任域策略优化(TRPO)、直接偏好优化(DPO)、近端策略优化(PPO)等。这些方法各有特点:SFT简单高效但数据依赖性强;RFT通过质量筛选提升输出质量;TRPO训练稳定但计算复杂;PPO是RLHF核心算法,平衡探索与利用。文章详细分析了各方法的实现原理、优势劣势及适用场景,为开发者选择合适的大模型训练策略提供参考。

2798

Java实现支付宝小程序获取用户个人信息

Java实现支付宝用户授权,获取用户信息: /*** * 支付宝用户授权,获取用户信息 * @author Mark * @param code * @return */ public static UserInfo getALiPayUserInfo(String code) { UserInfo info = null; AlipayClient alipayCli...

Kiss_Mark的博客 7976

别再被systemd-resolved坑了!银河麒麟V10下用Bind9搭建内网DNS的完整避坑指南

本文详细介绍了在银河麒麟V10和Ubuntu系统下部署Bind9 DNS服务器时,如何解决与systemd-resolved的端口冲突问题。提供了五种专业级解决方案,包括彻底禁用systemd-resolved、智能端口转发等,并特别针对银河麒麟V10的安全加固需求给出了配置建议和诊断工具,帮助用户高效搭建内网DNS服务。

weixin_30342209的博客 658

java后端获取支付宝会员的基本信息

java后端获取支付宝的基本信息 app绑定支付宝其实大部分都是由后端来完成的,绑定支付宝总共需要三步 第一步 public static String querySign() { String token=System.currentTimeMillis()+new Random().nextInt()+""; String targetId=...

li416338592的博客 2717

[UE5蓝图基础二]1.[1d混合空间] 走和跑的动画切换(shift切换)

再双击”run”进去 我们需要给他指定一个动画姿势,这里就需要给他我们前面做的”1d”混合空间,然后可以看到”1d” 上有个speed参数,代表的速度 从前面的逻辑来看需要通过控制速度来切换动画,那么必然不能写死速度,把速度提升为变量传递进来即可,所以就得到以下蓝图节点。混合空间的概念:混合空间就是可以将角色多个动画混合在一起 ,我们创建动画类就是创建个”Animation”文件夹 在文件夹内创建混合空间。我们目前要实现的是一个走和跑的功能 那么创建1d即可。到这一步混合空间已经做完 下一步做”动画蓝图”

qq_30584617的博客 3300

【25届数字IC秋招总结】面试经验6——经纬恒润

25届数字ic面试记录——经纬恒润

lalala0635的博客 991

java 怎么获取支付宝openId

给大家整理了一些有关【Java】的项目学习资料(附讲解~~):https://edu.51cto.com/course/35714.html如何在Java中获取支付宝的openId 随着电子支付的普及,支付宝作为中国最流行的支付工具之一,越来越多的开发者希望在他们的应用中集成支付宝的功能。获取用户的 openId 是实现...

weixin_40856267的博客 344

通过Power Platform自定义D365 CE 业务需求 - 4. 使用Power Automate

Power Automate构建块Power Automate中的连接器流的类型和用途流中的动态值和表达式使用变量、循环和条件在Power Automate中处理审批业务场景、用例和实现Power Virtual Agent的概念Power Virtual Agent的构建块配置Power Virtual Agent示例在公共网站/门户中部署Power Virtual Agent业务场景、用例和实现。

Martin-Mei的博客 561

支付宝如何获取buyer_id (即user_id)。支付宝服务窗(生活号)支付方式

背景: 最近需要利用支付宝中alipay.trade.create 这个接口,做企业版固定收款码。(我们作为服务商)。 在交易过程中,发现需要上送buyer_id,辗转多处得知,buyer_id就是用户的user_id,需要使用用户信息授权接口https://docs.open.alipay.com/289/105656。 注意:如果在用户无感...

Emine 8万+

YOLO11涨点优化:原创自研 | 魔改Bottleneck,具备多尺度和特征通道融合的结构

可以将C3k2_MSAMCS放在neck,或者backbone和neck同时修改,具体看自己数据集的涨点情况决定

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1653

Pre-suite 开发之MFi功能搭建

Pre-suite 固件中只有带无线硬件的Ezairo 7160sl才具备无线通信能力,其无线功能包括标准BLE 5.2 低功耗蓝牙功能以及非标准的低功耗无线音频流功能。Ezairo 7160sl 支持3种低功耗无线音频流协议:来自APPLE的MFi,来自Google的ASHA以及来自onsemi的remote mic。其中MFi音频流走的G.722编码的Mode1,速率为64kbps;而非MFi音频流走的G.722的Mode3,速率为48kbps.

SnowYang2017的博客 1506

支付宝开放平台实战:支付接口、异步回调与验签全解析

支付系统是电商与移动应用的核心基础设施,其技术链路涉及下单、支付结果通知、服务端验签与订单状态最终一致等多个环节。开放平台的支付接口按场景分为电脑网站支付、App支付、当面付等,但无论哪种形态,客户端跳转结果都只能作为体验参考,真正的入账依据是服务端异步回调通知。异步通知具备可重试、可能重复、报文可被篡改等特性,因此开发者必须掌握RSA2验签、幂等处理和查单兜底机制,才能保证资金与订单数据的准确。同时,沙箱环境和回调模拟器是提升联调效率、验证异常场景的关键工具,配合Java服务端与uni-app客户端的双技

WGH100817的博客 265

RK3399外设驱动之MIPI

RK3399外设驱动之MIPI 文章目录RK3399外设驱动之MIPIMIPI命令解析入口代码mipi显示配置实例rk3399mipi驱动rk mipi驱动注册过程rk32_mipi_dsi.c解析 内核版本 Linux4.4 平台 rk3399 作者 nineyole MIPI命令解析入口代码 MIPI的入口代码如下:kernel\drivers\video\rockchip\screen\lcd_mipi.c static int __init rk_mipi_screen_in

学无止境 2229

DeepTutor 本地部署教程:用 Ollama 把完全离线的 AI 学习助手一步跑通

DeepTutor 是一个把问答讲解、题目求解、深度研究与学习记忆整合在一起的 AI 学习助手。把 Ollama 接成本地模型后端后,整套系统可以做到完全离线、本地部署:推理与知识检索都发生在自己的机器上,学习资料不出内网,模型版本和行为也完全由你说了算。本教程不按“第一步、第二步”的顺序走,而是先看清离线部署最容易失败的两个环节,再倒推机器准备、Ollama 接线和启动验证该怎么配。 [![D

gitblog_00670的博客 827

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

支付宝代扣签约接口全链路排查指南:从签约准备到扣款常见问题

在支付系统中,代扣类业务采用“先签约、后扣款”的授权模式,商户在用户完成一次性授权后,即可依据协议号主动发起扣款,无需用户每次输入密码。相比普通扫码支付,代扣更适合会员订阅、保险续保、周期扣款等固定场景,其核心链路涉及商户服务端、支付宝服务端与用户客户端三方协作,并通过同步跳转与异步通知传递签约结果。理解这一机制后,开发者还需重点关注代扣产品权限申请、沙箱与正式环境隔离、应用私钥与支付宝公钥的加签验签关系,以及签约链接参数构造和回调验签幂等处理等关键环节。由于代扣签约对参数校验严格,外部协议号重复、回调未接

weixin_34416649的博客 441

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

支付宝AI开放平台接入指南:多端互联与协议转换技术解析

AI开放平台作为连接人工智能技术与实际应用的重要桥梁,通过标准化的接口设计实现服务能力的快速AI化。其核心技术原理在于协议转换中间层,能够自动适配不同终端的交互特性和通信协议。这种架构的技术价值在于显著降低多端开发成本,实现"一次开发,多端分发"的高效模式。在应用场景方面,平台特别适合智能客服升级、跨端交易服务等需要覆盖手机、车机、AI眼镜等多终端的业务需求。支付宝AI开放平台正是基于这一理念,通过MCP、Skill、Agent等标准化接口,为开发者提供统一的AI服务接入方案,同时继承支付宝原有的身份核验、

weixin_30719711的博客 446

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

基于Web的宠物医院管理信息系统 计算机毕业设计源码87965

普通用户功能分析 (1)注册和登录:提供便捷的用户注册和登录功能,采用安全的加密算法对用户密码等敏感信息进行存储和传输,确保用户账户安全。同时,支持多种登录方式,如用户名密码登录、手机验证码登录等,以满足不同用户需求。 (2)宠物信息管理:用户能够添加、编辑和删除宠物的详细信息,包括宠物的品种、年龄、性别、疫苗接种情况等,方便用户随时更新宠物档案。 (3)查看宠物健康档案:用户可随时查看宠物的健康档案,包括过往的诊断记录、治疗方案、用药情况等,便于了解宠物的健康历史和当前状况。 (4)宠物预约管理:实现宠物

Biye_Design的博客 248

【课程设计】基于Java Spring-Boot的游戏信息服务及组队平台 计算机毕业设计源码60660

前端玩家用户模块: 1.注册登录:通过注册登录功能,用户可以创建自己的专属账号,利用邮箱或手机号码验证来保障账户的安全性。登录后,用户能够享受个性化的服务体验,包括保存个人资料、记录游戏偏好等。 2.首页:首页为用户提供了一个快速浏览各类信息的平台,集合了最新游戏资讯、热门社区话题以及推荐的游戏视频,让用户一目了然地获取感兴趣的内容。 3.游戏社区:在这里,玩家可以自由表达对特定游戏的看法,通过点赞、收藏、评论喜爱的内容,或是发布自己精心准备的文章和心得,与更多同好交流分享。 4.网站公告....

高级程序源的博客 1151

【课程设计】springboot驾校信息管理系统-计算机毕业设计源码

1. 学员端功能 (1) 个人信息管理 查看个人信息:学员可以查看自己的基本信息(如姓名、学号、联系方式等)。 修改个人信息:修改联系方式、地址等信息。 查看学员状态:包括报名状态、课程进度等。 (2) 课程安排与预约 预约学车课程:学员可以根据教练的空闲时间预约自己想学的课程。 查看课程安排:可以查看每周的课程安排,方便学员安排自己的时间。 课程反馈:学员可以对已学的课程进行评分和反馈。 (3) 考试与成绩查询 查看考试安排:学员可以查看理论考试和实操考试的安排。 查看成绩:学员可以查看自己考试的成绩,合

Biye_Design的博客 1万+

springboot驾校信息管理系统--附源码83451

随着社会经济的快速发展,汽车逐渐成为人们日常出行的重要交通工具,驾校的业务规模也随之不断扩大。传统的驾校信息管理方式存在效率低下、信息不及时、易出错等问题,已难以满足现代驾校管理的需求。因此,开发一套高效、便捷的驾校信息管理系统具有重要的现实意义...........

weixin_BYSJ1987的博客 323
上一篇: JAVA时间戳和时间的相互转换
下一篇: JAVA获取传入时间所在月的所有日期
蓝色格子
博客等级 码龄9年 129粉丝 174原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值