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

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

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

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

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

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

附上,成功截图

 

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

  • 16
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 23
    评论
实现修改用户密码,需要进行以下步骤: 1. 获取用户输入的原密码和新密码; 2. 对原密码进行验证,确保输入的原密码与数据库中存储的密码一致; 3. 对新密码进行安全性检查,确保新密码符合一定的安全标准; 4. 对用户的密码进行加密处理,保证数据安全; 5. 将加密处理后的密码更新到数据库中。 以下是一个简单的 JavaEE 示例: ```java public void changePassword(String username, String oldPassword, String newPassword) { // 获取数据源 DataSource dataSource = new MyDataSource(); Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; try { // 建立连接 conn = dataSource.getConnection(); // 查询用户是否存在 String sql = "SELECT * FROM user WHERE username=?"; stmt = conn.prepareStatement(sql); stmt.setString(1, username); rs = stmt.executeQuery(); if (rs.next()) { // 验证用户输入的原密码是否正确 String password = rs.getString("password"); if (password.equals(oldPassword)) { // 检查新密码是否符合要求 if (checkPassword(newPassword)) { // 对新密码进行加密处理 String encryptedPassword = encryptPassword(newPassword); // 更新密码到数据库中 sql = "UPDATE user SET password=? WHERE username=?"; stmt = conn.prepareStatement(sql); stmt.setString(1, encryptedPassword); stmt.setString(2, username); stmt.executeUpdate(); } else { throw new Exception("新密码不符合安全要求"); } } else { throw new Exception("原密码输入错误"); } } else { throw new Exception("用户不存在"); } } catch (SQLException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭连接 try { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } // 检查密码是否符合安全要求 public boolean checkPassword(String password) { // 进行安全性检查,比如要求密码长度大于8位,包含数字和字母等 return true; } // 对密码进行加密处理 public String encryptPassword(String password) { // 对密码进行加密处理,比如使用MD5、SHA等算法 return password; } ``` 上述代码仅供参考,实际情况可能需要根据具体业务需求进行修改。
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值