Javaweb超详细实现模拟支付宝扫码支付

news2024/9/24 17:55:01

1.普通方式创建Javaweb项目

  1. 首先创建Java项目

        2.创建好的项目添加web框架支持

 如图选择确定

 在项目结构中配置有关信息

 右键创建classes文件夹与lib文件夹

 如图

此处找到刚才的项目的classes路径设置

 在依赖中设置lib路径的设置

找到刚才的lib路径

 选择此选项

结束项目结构中模块的设置

3.在项目结构中找到库

导入当前项目的路径

选择classes

 选择确定

在右面找到本地tomcat的目录,导入servlet-api包

 

 接下来我们配置tomcat,在运行里编辑配置

 添加配置

注意我们找到Tomcat服务器,注意不是tomcat ee服务器,选择本地

 配置tomcat

 在部署中添加启动后部署

 

 选择工件

 

 确定

运行tomcat

此时代表前期配置成功

 2.配置支付宝开放平台

在配置前我们首先创建一个测试DemoServlet

package servlet;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet("/DemoServlet")
public class DemoServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //创建session对象
        HttpSession session = request.getSession();
        //设置一个付款金额
        double price = 99;
        //将此付款金额存到session域中
        session.setAttribute("price",price);
        //转发到index界面
        String contextPath = request.getContextPath();
        response.sendRedirect(contextPath+"/index.jsp");
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

路径为:

接下来我们配置支付宝相关东西

支付宝开放平台网址:https://open.alipay.com/

 点击控制台,找到沙箱

下载支付宝秘钥生成工具,找到适合自己电脑系统适合的版本

小程序文档 - 支付宝文档中心

 勾选密钥和RSA2,生成秘钥

 找到沙箱应用,自定义密钥,公钥模式

 复制应用中生成的应用公钥,生成支付宝公钥,以留备用

 下载支付包官方开发工具包Demo

在此链接里:小程序文档 - 支付宝文档中心小程序文档 - 支付宝文档中心

我们在文件-新建-从现有来源项目中找到你解压的支付包官方开发工具包

 选择eclipse

 一路下一步到此,选择一下你的Java版本,完成导入

 此时我们有两个idea的项目

 我们将支付宝项目合并到我们的项目下

全部导入完后 ,我们进行密钥的设置

在AlipayConfig文件中配置APPID与私钥还有支付宝公钥,以及支付宝沙箱网关

打开支付宝开放平台找到沙箱应用-基本信息找到APPID

 

 打开密钥生成工具找到刚刚的应用私钥就是商户私钥

 

 用刚刚的商家公钥生成支付宝公钥

 以商家公钥生成支付宝公钥

找到网关地址进行复制赋值

将以上秘钥和网关分别复制到 AlipayConfig文件中对应的位置

 我们在index.jsp文件中添加java代码,此处用jstl标签更简单(暂且不谈)

<%
	Object price = session.getAttribute("price");
%>

 在index.jsp最下面改变常量值获取我们DemoServlet中输入的变量

将WIDtotal_amount的值变为DemoServlet中price的值,我们使用常规的java代码进行赋值

		document.getElementById("WIDtotal_amount").value = "<%=price%>";

最后配置完成我们启动tomcat

启动Tomcat 如果出现此错误,为编码问题

 我们在右下角设置一下编码方式

选择转换

 再次转换回utf-8

选择转换

 此时即可解决问题

 在链接中我们输入加上我们的Servlet地址

/DemoServlet

 

 成功获取到session数据并重定向到http://localhost:8080/Demo_war_exploded/index.jsp

我们点击付款,跳转到此界面(注意此界面需要联网)

 在支付宝开放平台界面我们可以获得支付宝沙箱版

 在手机上安装后登录我们的买家账号,在沙箱账号中可以获得买家信息,并且可以进行余额的充值

 在手机上支付宝沙箱版登录买家账号后就可以在付款界面进行扫码支付啦!

附上,成功截图

 

 大家快去试试吧!有什么问题我会尽量回复的,知识有限.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1397414.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

web蓝桥杯真题--10、灯的颜色变化

介绍 我们经常会看到各种颜色的灯光&#xff0c;本题我们将实现一个颜色会变化的灯的效果。 准备 开始答题前&#xff0c;需要先打开本题的项目代码文件夹&#xff0c;目录结构如下&#xff1a; ├── effect.gif ├── images │ ├── greenlight.svg │ ├── l…

初识SpringBoot

SpringBoot以约定大于配置的核心思想,默认帮我们进行了很多设置,简单来说就是SpringBoot其实不是什么新的框架&#xff0c;它默认配置了很多框架的使用方式&#xff0c;就像maven整合了所有的jar包&#xff0c;spring boot整合了所有的框架 。 创建的包一定要在项目主程序入口…

MATLAB - 计算机械臂关节扭矩以平衡末端力和力矩

系列文章目录 前言 产生力矩以平衡作用在平面机器人末端执行器体上的端点力。要使用各种方法计算关节力矩&#xff0c;请使用刚体树机器人模型的几何雅各比&#xff08;geometricJacobian&#xff09;和反动力学&#xff08;inverseDynamics&#xff09;对象函数。 一、初始化…

JavaScript的代码执行顺序

&#xff08;1&#xff09;. js的执行顺序&#xff0c;先同步后异步 &#xff08;2&#xff09;. 异步中任务队列的执行顺序&#xff1a; 先微任务microtask队列&#xff0c;再宏任务macrotask队列 注意&#xff0c;按顺序从上到下时&#xff0c;没有轮到执行的任务会进入相应…

PowerScale重磅升级,加速迈进AI时代

2024开年 给大伙报告一则好消息 Dell非结构化数据存储的扛把子 PowerScale迎来重大升级 第二代PowerScale全闪存系统 即将闪亮登场 此次升级主要涉及硬件、软件及与NVIDIA的合作关系三个方面&#xff0c;升级后的PowerScale有望成为第一个通过 NVIDIA DGX SuperPOD验证的以…

Linux———sort命令总结详解(狠狠爱住)

目录 sort命令&#xff1a; 命令参数及描述&#xff1a; 示例&#xff1a; 使用-b参数&#xff0c;忽略行首空白字符&#xff0c;按照第一列进行排序&#xff1a; -d 选项是 sort 命令中一个非常有用的选项&#xff0c;它可以按照字典顺序进行排序&#xff0c;同时忽略非字…

创业前先把刘强东这两句琢磨明白!不然大概率失败!2024最适合创业的行业!2024年普通人的创业机会在哪里

第一句&#xff0c;真正解决一个问题。 这句话表达了&#xff0c;你的项目一定是要建立在解决具体的问题上&#xff0c;而不是你觉得自己有个好点子&#xff0c;或者好产品就可以了。因为即使你的产品很好&#xff0c;服务很好&#xff0c;如果不能切实的解决某个问题&#xf…

渐开线齿轮计算软件开发Python

从0开始开发计算软件&#xff0c;欢迎大家加入 源代码仓库

【C++】std::string 转换成非const类型 char* 的三种方法记录

std::string 有两个方法&#xff1a;data() 和 c_str()&#xff0c;都是返回该字符串的const char类型&#xff0c;那如何转换成非const的char呢&#xff1f; 下面展示三种方法&#xff1a; 强转&#xff1a;char* char_test (char*)test.c_str();使用string的地址&#xff…

Android 查看 md5

网上看了一大批文章老实说 百分之80的都是垃圾 , 都没有说明白怎么看 keytool -list -v -keyst xxx.jks 在自己的项目中 , terminal 输入上面命令 跟本就没有用看不到 md5 很多的文章让你找 signingReport , 但是你查看 自己的目录可能压根就没有这个 自己直接用手敲就可以…

分布式事务Seata实战-AT模式(注册中心为Eureka)

大致记录Seata的AT模式下创建项目过程中需要注意的点和可能遇到的问题。 本项目是以官网的给的示例&#xff08;即下图&#xff09;进行创建的&#xff0c;以Eureka为注册中心。 官网&#xff1a;Seata AT 模式 | Apache Seata™ 官方代码示例&#xff1a; 快速启动 | Apac…

JRT打印报告示例

借助JRT实现的打印客户端和打印元素绘制协议及表格元素&#xff0c;设计器基本成型&#xff0c;这次可以试着写一个用模板控制布局的打印报告示例了&#xff0c;测试点报告表格维护、打印标签、打印数据、打印条码、打印图片、打印表格。基于新架构的代码比M写打印简单多了&…

AGI即将出现,未来最重要的资源是算力和能源

丨划重点 ① 关于新模型的名字&#xff0c;奥特曼还没有明确的想法&#xff0c;但他称不喜欢像“iPhone 27”这样的命名方式。 ② 奥特曼认为AGI将在不久的将来出现&#xff0c;但对社会和工作的影响程度可能远低于预期。 ③ 奥特曼表示&#xff0c;尽管AI的潜力超过预期&#…

数据结构day1

1.思维导图 2.定义一个简单宏或宏函数&#xff0c;实现两个数交换。 3.定义字符类型指针&#xff0c;指针指向n个连续堆区内存&#xff0c;输入&#xff0c;计算字符串长度 定义函数&#xff0c;实现内存申请 定义函数&#xff0c;解释字符串长度 定义函数&#xff0c;释放内…

《亚太教育》期刊投稿方式

《亚太教育》杂志是国家新闻出版总署批准的正规教育类期刊&#xff0c;旨在传播教育文化信息和动态&#xff0c;展示教育实践模式和经验&#xff0c;搭建教育科研成果交流平台。杂志将致力于服务教育事业的创新发展&#xff0c;传播教育文化新信息&#xff0c;展示教育实践新模…

Electron Apple SignIn 登录

本人写博客&#xff0c;向来主张&#xff1a;代码要完整&#xff0c;代码可运行&#xff0c;文中不留下任何疑惑。 最讨厌写博客&#xff0c;代码只留下片段&#xff0c;文中关键的东西没写清楚。之前看了那么多文章&#xff0c;就是不告诉我clientId从哪来的。 官方资料地址&…

5. UE5 RPG使用GAS技能系统

之前也介绍过GAS的使用&#xff1a; UE 5 GAS Gameplay Ability System UE 5 GAS 在项目中处理AttributeSet相关 UE 5 GAS 在项目中通过数据初始化 基础的讲解这里不再诉说&#xff0c;有兴趣的可以翻我之前的博客。 接下来&#xff0c;在RPG游戏中实现GAS系统的使用。 GAS系统…

一次缓存失效引发的惨案!

分享是最有效的学习方式。 故事 对于小猫来讲&#xff0c;最近的一段日子是不好过的&#xff0c;纵使听着再有节拍的音乐&#xff0c;也换不起他对生活的热情。由于上一次“幂等事件”躺枪&#xff0c;他已经有几天没有休息好了。他感觉人生到了低谷。 当接手这个商城项目之后…

Linux 为何不把图形用户界面写入内核?

Linux 为何不把图形用户界面写入内核&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「Linux的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#…

禅道:从安装到使用,一篇文章带你全面了解

博客前言&#xff1a; 在这个充满竞争和快节奏的世界里&#xff0c;项目管理已经成为了许多行业的关键环节。禅道作为一种功能强大、易用的项目管理工具&#xff0c;正在被越来越多的企业和团队所采用。它不仅能帮助我们高效地管理项目&#xff0c;还能提升团队协作和沟通的效…