Javaweb基于MVC鲜花租赁系统,项目实训(含支付宝沙箱)

1、该项目分为管理员,店主以及用户,用户可以功能主要为直接购买、购物车购买、收藏商品、购买完成后评价商品、查看订单修改个人信息等操作
2、店主管理主要是查看订单以及对自己的商品信息的增删改查
3、管理员拥有一切信息增删改查的权利,但不包括商品评价

4、支付功能采取了支付宝的沙箱环境

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

支付宝沙箱代码

在支付宝开发者中心登陆获取支付宝公钥和自己的私钥等信息
然后手机下载沙箱版支付宝进行支付测试
!!!需要导入jar包

package com.servlet;

import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayTradePagePayRequest;
import com.bean.AlipayConfig;
import com.bean.Goods;
import com.dao.GoodsDao;
import com.dao.ShopcartDao;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.*;
import java.util.UUID;


@WebServlet("/testServlet")
public class testServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        request.setCharacterEncoding("utf-8");
        String op=request.getParameter("op");
        if(op.equals("all")){
            doSettlement(request,response);
        }
        if(op.equals("one")){
            doOne(request,response);
        }
    }
    protected void doOne(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            HttpSession session=request.getSession();
            GoodsDao goodsDao=new GoodsDao();
            String address_id=request.getParameter("address_id");
            String goods_id=request.getParameter("goods_id");
            String num=request.getParameter("num");
            session.setAttribute("num",num);
            session.setAttribute("goods_id",goods_id);
            session.setAttribute("address_id",address_id);
            Goods goods=goodsDao.findGoods(goods_id);
            String priceMonth=goods.getPriceMonth();
            int price=Integer.parseInt(priceMonth)*Integer.parseInt(num);
            //获得初始化的AlipayClient
            AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, "json", AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type);
            //设置请求参数
            AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
            alipayRequest.setReturnUrl("http://localhost/FlowerRentalweb/oneSuccess.jsp");
            alipayRequest.setNotifyUrl(AlipayConfig.notify_url);

            //商户订单号,商户网站订单系统中唯一订单号,必填
            String out_trade_no = String.valueOf(UUID.randomUUID());
            //付款金额,必填
            String total_amount =String.valueOf(price);
            //订单名称,必填
            String subject = "支付宝测试";
            //商品描述,可空
            String body = "商品描述";

            alipayRequest.setBizContent("{\"out_trade_no\":\""+ out_trade_no +"\","
                    + "\"total_amount\":\""+ total_amount +"\","
                    + "\"subject\":\""+ subject +"\","
                    + "\"body\":\""+ body +"\","
                    + "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}");

            //请求
            String result;
            try {
                result = alipayClient.pageExecute(alipayRequest).getBody();
                response.setContentType("text/html;charset=" + AlipayConfig.charset);
                response.getWriter().write(result);//直接将完整的表单html输出到页面
                response.getWriter().flush();
                response.getWriter().close();
            } catch (AlipayApiException e) {
                e.printStackTrace();
                response.getWriter().write("捕获异常出错");
                response.getWriter().flush();
                response.getWriter().close();
            }
    }
    protected void doSettlement(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        HttpSession session=request.getSession();
        String address_id=request.getParameter("address_id");
        String user_id=(String)session.getAttribute("id");
        ShopcartDao shopcartDao=new ShopcartDao();
        session.setAttribute("address_id",address_id);
        int allPrice=shopcartDao.getAllPrice(user_id);
        //获得初始化的AlipayClient
        AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, "json", AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type);
        //设置请求参数
        AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
        alipayRequest.setReturnUrl(AlipayConfig.return_url);
        alipayRequest.setNotifyUrl(AlipayConfig.notify_url);

        //商户订单号,商户网站订单系统中唯一订单号,必填
        String out_trade_no = String.valueOf(UUID.randomUUID());
        //付款金额,必填
        String total_amount =String.valueOf(allPrice);
        //订单名称,必填
        String subject = "支付宝测试";
        //商品描述,可空
        String body = "商品描述";

        alipayRequest.setBizContent("{\"out_trade_no\":\""+ out_trade_no +"\","
                + "\"total_amount\":\""+ total_amount +"\","
                + "\"subject\":\""+ subject +"\","
                + "\"body\":\""+ body +"\","
                + "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}");

        //请求
        String result;
        try {
            result = alipayClient.pageExecute(alipayRequest).getBody();
            response.setContentType("text/html;charset=" + AlipayConfig.charset);
            response.getWriter().write(result);//直接将完整的表单html输出到页面
            response.getWriter().flush();
            response.getWriter().close();
        } catch (AlipayApiException e) {
            e.printStackTrace();
            response.getWriter().write("捕获异常出错");
            response.getWriter().flush();
            response.getWriter().close();
        }
    }
}
package com.bean;

public class AlipayConfig {

//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

    // 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号
    public static String app_id = "2021000118680827";

    // 商户私钥,您的PKCS8格式RSA2私钥
    public static String merchant_private_key = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCr3ecNOL5viifNPbGoxRSu/MeYqLKokklKNzxxn+MXCbag/QaNJNYi9Kzmdn5OnqoRLKqrRxEc8ATW00uIw574oiHKlLmJtG7hXc/DpCzfjzZHuut7bhLFcDExmicKQrogLGP+ZF6VeTRuyrXqt6k7Z0h2Nq8L/zhrmO4TZLhv6/L6YDqUP8g40fpiTECCVib8hV+IEeOPSagcsmGcDeZGmR682Gu1D9SxRUUku/rV2EYcUqEm+vLLzOzgKCRL31z9N4ajdhYhrOOMc6B9gO2BPpNxkegYPyc+GRclYL7iTsdWu8/pFFaLSesoezOMtCcC+4Z/TFPq9XTu0EXSwZOVAgMBAAECggEANGopdAPROE0nFFXzX6gzRaa77JfOXNC4X1T3LyP26ujAdNqV6+fHEsQSEvsiTDHhZfl8V14GHxAoOagZCi22xtcTfSfcad3ITx0AJwdj1A5mHHwqIuuP9/zeU+VScLOm9fbzy/qqSeW8EunpjxrSFtbJ55uHyR3eBBqQyQNXqHII/jbk+cQ/K13pp0DZrEnuJf5VmXsM9KsSBFZT29AXxUm2TUqZqHRuCtsdxrN7O+KGkt0gokyb2Tpc+MarsLUK66ndh5prQVcbIZ7R+DPxQ6R/mlcRhkvGR8NUdQRS6Gpj/jPnSDqvC2c37NIAK31cEsQ9E8SPC+SDVUSib02qhQKBgQDwBKDibwkHPeYPjbwD7mGSYqO1M+THpKghunEJ9FYDcqOaTmAc+6GbCf9JQErLSVfbM7wwzJWqzRfHXtn2KnzHBDHkADtp7NCPr48UWo0MAOV/Z6UcAgnhHXJtnBQLyr0qQnV+UPIp6MWBplKfonoNiQ/puqP1A2eKp9xBulTHLwKBgQC3T4+UYyOoTbAaJ6uSDxY/elqh4/eJ/rA+6Htpr/48FZUtp7LkuNCMYPQhct4OrZAgp1iK7MdkH8anJjEJCFxuBv+mvjrUBJGSeTTItPFtsZygUU9b6CH6KtNpZo2tW3Y/8Tg5Lg4tU0tcEm60GJLQyZJDdKYUlbb9EdzztuAgewKBgG+ux6n1Xq8W91kfa3As2QwDiAeGCRt4m59uILEwF2HtUwE3HPP/hpgc08Qi/WqQSyg9b4EJgU8Dtd/YW/V2ma8FXa2pCfxk7DsfxqUC6YS/WgqpkKNys2Qjjp5ANPezs8fZOtC3G6eyn0yPtvx+3uozb8sjRK16kxBqwUt4R4CTAoGBAKgjAb9Jb9tf5rcWy/gcfnua7qavQs4AHgiVlR1LoBXcdgh6WUwReLhJ9aL4iVVNPXW2CTDkHb9opf2Kuk9eq+j/4l4+/haaWivPoOq3jPrgfplN+0yBjyi3P1LeDfWEfuIHj1pjM/2++NBq17+5CnEXcmENDYi0CjP1voSMqOchAoGAdAqpdLg6rkMCHYWRS/rmD8WvaK9EvIp90EeAD9J1LrmQZzAcaMqu7KXZWcaKE6fiQ9jE9JXsE5z8jaBkjBEVvcb7S18MGlKuA/BbPMObbI+oI3p7xTWOxFNy3dpL/qbEovXYfm/BGx5shvGUpRO9OVCFuN+/HCC2GYnLZh9QHzY=";

    // 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
    public static String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl/kavjQpJ763rKuVDbgHn4SprjTMGJ3obPQtgqNUr2HDcBkWWyd6FeMstThgkg/bHijTcS54jGiMc/7xIsEvlqivNJueb1kB91AunZ2hsis8S6uiBhjSYUk4ydgBwuCAK1PG3RzcMtYt+qdtUw656vlnwexHauHEHGliw0uginhQL7yv3A9lSyQLR2T6x5OuXF5JI1/mNQ1nCvtK7DoAPod6v631J70FIkKF274bNdjJWyreN+/p9gzqd1frO6/Nzvq5whnUJobKS4OQuo2++ltg2a9+gu8QSIik78q+wvUCdKJ9GhU04lC47o42AM5kMK5rFjIC0DC/YbCsW6v2vwIDAQAB";

    // 服务器异步通知页面路径  需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
    public static String notify_url = "http://localhost:8080/alipay.trade.page.pay-JAVA-UTF-8/notify_url.jsp";

    // 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
    public static String return_url = "http://localhost/FlowerRentalweb/successful.jsp";

    // 签名方式
    public static String sign_type = "RSA2";

    // 字符编码格式
    public static String charset = "utf-8";

    // 支付宝网关
    public static String gatewayUrl = "https://openapi.alipaydev.com/gateway.do";

    // 支付宝网关
    public static String log_path = "C:\\";
}



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值