Javaweb超详细实现模拟支付宝扫码支付
发布时间:2024-02-23
摘要: 1.普通方式创建Javaweb项目 首先创建Java项目         2.创建好的项目添加web框架支持  如图选择确定  在项目结构中配置有关信息  右键创建classes文件夹与lib文件夹  如图 此处找到刚才的项目的class...

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

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

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

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

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

附上,成功截图

 

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