• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > javaweb在线支付功能实现代码

javaweb在线支付功能实现代码

作者:第九种格调的人生 字体:[增加 减小] 来源:互联网 时间:2017-05-28

第九种格调的人生 通过本文主要向大家介绍了javaweb支付,javaweb搜索功能,javaweb注册功能,javaweb分页功能,javaweb实现搜索功能等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例为大家分享了javaweb在线支付功能的具体实现代码,供大家参考,具体内容如下

package com.learning.web.servlet;

import java.io.IOException;
import java.util.ResourceBundle;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.learning.utils.PaymentUtil;

@WebServlet("/payOnline")
public class PayOnline extends HttpServlet {
  private static final long serialVersionUID = 1L;
    
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      doPost(request, response);
  }


  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  
    String orderid = request.getParameter("orderid");
    String money = request.getParameter("money");
    
        // 银行
        String pd_FrpId = request.getParameter("pd_FrpId");

        // 发给支付公司需要哪些数据
        String p0_Cmd = "Buy";
        String p1_MerId = ResourceBundle.getBundle("/WEB-INF/classes/merchantInfo").getString(
            "p1_MerId");
        String p2_Order = orderid;
        String p3_Amt = money;
        String p4_Cur = "CNY";
        String p5_Pid = "";
        String p6_Pcat = "";
        String p7_Pdesc = "";
        // 支付成功回调地址 ---- 第三方支付公司会访问、用户访问
        // 第三方支付可以访问网址(本项目网址)
        String p8_Url = "http://115.170.37.189/day19pay/callback";
        String p9_SAF = "";
        String pa_MP = "";
        String pr_NeedResponse = "1";
        // 加密hmac 需要密钥
        String keyValue = ResourceBundle.getBundle("merchantInfo").getString(
            "keyValue");
        String hmac = PaymentUtil.buildHmac(p0_Cmd, p1_MerId, p2_Order, p3_Amt,
            p4_Cur, p5_Pid, p6_Pcat, p7_Pdesc, p8_Url, p9_SAF, pa_MP,
            pd_FrpId, pr_NeedResponse, keyValue);
        // 生成url --- url?
        request.setAttribute("pd_FrpId", pd_FrpId);
        request.setAttribute("p0_Cmd", p0_Cmd);
        request.setAttribute("p1_MerId", p1_MerId);
        request.setAttribute("p2_Order", p2_Order);
        request.setAttribute("p3_Amt", p3_Amt);
        request.setAttribute("p4_Cur", p4_Cur);
        request.setAttribute("p5_Pid", p5_Pid);
        request.setAttribute("p6_Pcat", p6_Pcat);
        request.setAttribute("p7_Pdesc", p7_Pdesc);
        request.setAttribute("p8_Url", p8_Url);
        request.setAttribute("p9_SAF", p9_SAF);
        request.setAttribute("pa_MP", pa_MP);
        request.setAttribute("pr_NeedResponse", pr_NeedResponse);
        request.setAttribute("hmac", hmac);

        request.getRequestDispatcher("/confirm.jsp").forward(request, response);
    
    
  }

}

</div>

2.用户确认提交的信息(confirm.jsp) 

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>

<%@taglib prefix="p" uri="http://www.itcast.cn/tag"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
  <p:user />
  <!-- 确认支付form -->
  <form action="https://www.yeepay.com/app-merchant-proxy/node"
    method="get">
    <h3>订单号:${p2_Order},付款金额 :${p3_Amt }</h3>
    <input type="hidden" name="pd_FrpId" value="${pd_FrpId }" /> <input
      type="hidden" name="p0_Cmd" value="${p0_Cmd }" /> <input
      type="hidden" name="p1_MerId" value="${p1_MerId }" /> <input
      type="hidden" name="p2_Order" value="${p2_Order }" /> <input
      type="hidden" name="p3_Amt" value="${p3_Amt }" /> <input
      type="hidden" name="p4_Cur" value="${p4_Cur }" /> <input
      type="hidden" name="p5_Pid" value="${p5_Pid }" /> <input
      type="hidden" name="p6_Pcat" value="${p6_Pcat }" /> <input
      type="hidden" name="p7_Pdesc" value="${p7_Pdesc }" /> <input
      type="hidden" name="p8_Url" value="${p8_Url }" /> <input
      type="hidden" name="p9_SAF" value="${p9_SAF }" /> <input
      type="hidden" name="pa_MP" value="${pa_MP }" /> <input type="hidden"
      name="pr_NeedResponse" value="${pr_NeedResponse }" /> <input
      type="hidden" name="hmac" value="${hmac }" /> <input type="submit"
      value="确认支付" />
  </form>
</body>
</html>

</div>

3.网站获得第三方支付的信息

package com.learning.web.servlet;

import java.io.IOException;
import java.util.ResourceBundle;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.learning.service.OrderService;
import com.learning.utils.PaymentUtil;


/**
 * 该Servlet会在支付成功后 进行调用----- 支付公司 、客户
 * 
 * @author seawind
 * 
 */
public class CallbackServlet extends HttpServlet {

  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    // 获得回调所有数据
    String p1_MerId = request.getParameter("p1_MerId");
    String r0_Cmd = request.getParameter("r0_Cmd");
    String r1_Code = request.getParameter("r1_Code");
    String r2_TrxId = request.getParameter("r2_TrxId");
    String r3_Amt = request.getParameter("r3_Amt");
    String r4_Cur = request.getParameter("r4_Cur");
    String r5_Pid = request.getParameter("r5_Pid");
    String r6_Order = request.getParameter("r6_Order");
    String r7_Uid = request.getParameter("r7_Uid");
    String r8_MP = request.getParameter("r8_MP");
    String r9_BType = request.getParameter("r9_BType");
    String rb_BankId = request.getParameter("rb_BankId");
    String ro_BankOrderId = request.getParameter("ro_BankOrderId");
    String rp_PayDate = request.getParameter("rp_PayDate");
    String rq_CardNo = request.getParameter("rq_CardNo");
    String ru_Trxtime = request.getParameter("ru_Trxtime");
    // 身份校验 --- 判断是不是支付公司通知你
    String hmac = request.getParameter("hmac");
    String keyValue = ResourceBundle.getBundle("merchantInfo").getString(
        "keyValue");

    // 自己对上面数据进行加密 --- 比较支付公司发过来hamc
    boolean isValid = PaymentUtil.verifyCallback(hmac, p1_MerId, r0_Cmd,
        r1_Code, r2_TrxId, r3_Amt, r4_Cur, r5_Pid, r6_Order, r7_Uid,
        r8_MP, r9_BType, keyValue);
    if (isValid) {
      // 响应数据有效
      if (r9_BType.equals("1")) {
        // 浏览器重定向
        response.setContentType("text/html;charset=utf-8");
        response.getWriter().println("<h1>付款成功!等待商城进一步操作!等待收货...</h1>");
      } else if (r9_BType.equals("2")) {
        // 服务器点对点 --- 支付公司通知你
        System.out.println("付款成功!");
        // 修改订单状态 为已付款
        OrderService orderService=new OrderService();
        orderService.modifyOrderState(p1_MerId);
        
        // 回复支付公司
        response.getWriter().print("success");
      }
    } else {
      // 数据无效
      System.out.println("数据被篡改!");
    }
  }

  public void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    doGet(request, response);
  }

}

</div>

文件:

merchantInfo.properties

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • javaweb在线支付功能实现代码
  • javaweb在线支付功能实现代码

相关文章

  • 2017-05-28浅谈JavaWeb中的web.xml配置部署描述符文件
  • 2017-05-28Java synchronized关键_动力节点Java学院整理
  • 2017-05-28Java生成随机数的方法
  • 2017-05-28浅谈Java中几个常用集合添加元素的效率
  • 2017-05-28Java根据模板导出Excel报表并复制模板生成多个Sheet页
  • 2017-05-28SWT(JFace)体验之GridLayout布局
  • 2017-05-28Java中IO流详解
  • 2017-05-28Java 逻辑运算符中&&与&,||与|的区别
  • 2017-05-28Spring Data + Thymeleaf 3 + Bootstrap 4 实现分页器实例代码
  • 2017-05-28Java经典排序算法之归并排序详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 老生常谈java中的数组初始化
    • eclipse/intellij idea 查看java源码和注释方法
    • javaweb在线支付功能实现代码
    • 详解Spring Boot整合Mybatis实现 Druid多数据源配置
    • Java微信公众平台开发(1) 接入微信公众平台
    • 浅谈使用setBounds()方法需要注意的地方
    • Java集合Map常见问题_动力节点Java学院整理
    • JAVA实现简单停车场系统代码
    • 详解Java中的增强 for 循环 foreach
    • Struts2 文件上传进度条的实现实例代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有