06_在线支付_编写将数据提交给易宝支付的JSP页面
--------------------------------------------------------------
1./payment/WebRoot/WEB-INF/page/connection.jsp
<%@ page language="java" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>发起支付请求</title>
   
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
  </head>
 
  <body οnlοad="javascript:document.forms[0].submit()">
   <!-- http://tech.yeepay.com:8080/robot/debug.action -->
   <!--
 http://tech.yeepay.com:8080/robot/debug.action
 这个是易宝支付的调试路径.在做好之前最好用调试网关.
 --><form name="yeepay" action="https://www.yeepay.com/app-merchant-proxy/node" method='post'> 
  <input type='hidden' name='p0_Cmd'   value="${messageType}"> <!-- 请求命令,在线支付固定为Buy -->
  <input type='hidden' name='p1_MerId' value="${merchantID}"> <!-- 商家ID -->
  <input type="hidden" name="p2_Order" value="${orderId}"> <!-- 商家的交易定单号 -->
  <input type='hidden' name='p3_Amt'   value="${amount}"> <!-- 订单金额 -->
  <input type='hidden' name='p4_Cur'   value="${currency}"> <!-- 货币单位 -->
  <input type='hidden' name='p5_Pid'   value="${productId}"> <!-- 商品ID -->
  <input type='hidden' name='p6_Pcat'  value="${productCat}"> <!-- 商品种类 -->
  <input type='hidden' name='p7_Pdesc' value="${productDesc}"> <!-- 商品描述 -->
  <input type='hidden' name='p8_Url'   value="${merchantCallbackURL}"> <!-- 交易结果通知地址 -->
  <input type='hidden' name='p9_SAF'   value="${addressFlag}"> <!-- 需要填写送货信息 0:不需要 1:需要 -->
  <input type='hidden' name='pa_MP'    value="${sMctProperties}"> <!-- 商家扩展信息 -->
  <input type='hidden' name='pd_FrpId' value="${frpId}"> <!-- 银行ID -->
  <!-- 应答机制 为“1”: 需要应答机制;为“0”: 不需要应答机制 -->
  <input type="hidden" name="pr_NeedResponse"  value="0">
  <!--MD5-hmac验证码-->
  <input type='hidden' name='hmac' value="${hmac}"><!-- MD5-hmac验证码 -->
 </form>
  </body>
</html>
---------------------------------------------------------------------------
2.package com.credream.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.credream.utils.ConfigInfo;
import com.credream.utils.PanymentUtil;
/**
 * 发起支付请求
 * @author 传智播客
 *
 */
public class PaymentRequest extends HttpServlet {

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

public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  /*
   * p1_MerId=10000326625// 商家的id
           keyValue=0acqgug6x57m0wrsiod6clpn1ezh47r2ot5h1zkq5dztiic8y5xkm5g0p0ek //密钥
           merchantCallbackURL=http\://localhost\:8080/payment/servlet/yeepay/response //
   // 这个地址是用来接收易宝支付返回结果的路径.这个路径必须外网可以访问.
   * */
  request.setCharacterEncoding("GBK");
  String orderid = request.getParameter("orderid");//订单号
  String amount = request.getParameter("amount");//支付金额
  String pd_FrpId = request.getParameter("pd_FrpId");//选择的支付银行
  String p1_MerId = ConfigInfo.getValue("p1_MerId");
  String keyValue = ConfigInfo.getValue("keyValue");
  String merchantCallbackURL = ConfigInfo.getValue("merchantCallbackURL");  
  String messageType = "Buy"; // 请求命令,在线支付固定为Buy
  String currency = "CNY"; // 货币单位
  String productDesc = ""; // 商品描述
  String productCat = ""; // 商品种类
  String productId = ""; // 商品ID
  String addressFlag = "0"; // 需要填写送货信息 0:不需要 1:需要  
  String sMctProperties = ""; // 商家扩展信息
  String pr_NeedResponse = "0"; // 应答机制
  // 下面这个方法用来进行加密.通过调用加密类.
  String md5hmac = PanymentUtil.buildHmac(messageType, p1_MerId, orderid, amount, currency,
    productId, productCat, productDesc, merchantCallbackURL, addressFlag, sMctProperties,
    pd_FrpId, pr_NeedResponse, keyValue);
     //1.注意这里是根据易宝支付的原理来的,商户需要把,一些支付信息,和加密后的支付信息,同时发给易宝支付
  //易宝支付收到信息后,利用密钥进行对信息再次加密,拿自己加密后的信息和商户发过来的加密信息
  //进行对比,对比结果为一致的时候,那么说明信息没有被串改过.
  // 得到加密后的字串.
  request.setAttribute("messageType", messageType);//支付命令
  request.setAttribute("merchantID", p1_MerId);//商户id
  request.setAttribute("orderId", orderid);//订单号
  request.setAttribute("amount", amount);//订单金额
  request.setAttribute("currency", currency);//货币类型
  request.setAttribute("productId", productId);//产品id
  request.setAttribute("productCat", productCat);//产品种类
  request.setAttribute("productDesc", productDesc);//商品描述
  request.setAttribute("merchantCallbackURL", merchantCallbackURL);//返回的URL
  request.setAttribute("addressFlag", addressFlag);//收货地址
  request.setAttribute("sMctProperties", sMctProperties);//商家扩展信息
  request.setAttribute("frpId", pd_FrpId);//银行id
  request.setAttribute("pr_NeedResponse", pr_NeedResponse);//应答机制.
  request.setAttribute("hmac", md5hmac);//MD5验证码
  // 转发.
  request.getRequestDispatcher("/WEB-INF/page/connection.jsp").forward(request, response);
 }

}
----------------------------------------------------------------------------------------------
07_在线支付_集成和测试向易宝发送支付请求
----------------------------------------------------
a.   <!-- http://tech.yeepay.com:8080/robot/debug.action -->
   <!--
 http://tech.yeepay.com:8080/robot/debug.action
 这个是易宝支付的调试路径.在做好之前最好用调试网关.
 https://www.yeepay.com/app-merchant-proxy/node
 这个是易宝支付商用的网关.
 --><form name="yeepay" action="https://www.yeepay.com/app-merchant-proxy/node" method='post'> 
先用测试网关,然后用正式网关开始测试.
----------------------------------------------------------------------
08_在线支付_实现浏览器自动向易宝发送支付请求
  <body οnlοad="javascript:document.forms[0].submit()">
------------------------------------------------------

java在线支付---06,07,08_在线支付_编写将数据提交给易宝支付的JSP页面,集成和测试向易宝发送支付请求,实现浏览器自动向易宝发送支付请求相关推荐

  1. java读入三个整数并打印平均值_编写程序,读入三个双精度数,求它们的和和平均值并保留平均值小数点后一位数。_学小易找答案...

    [简答题]某商场推出幸运抽奖活动,抽奖规则是:客户的4位会员卡号的各个位上的数字之和大于20,则为幸运客户,有精美礼物送上.计算8349各位数字之和,输出结果如下所示. 会员卡号8349各位之和: 2 ...

  2. java源程序求圆的周长和面积_编写程序,输入圆的半径,求出圆的周长和面积. PI=3.14...

    C语言程序 编写函数,求圆面积的值,主函数输入半径,并在主函数中调它. #includemain(){\x09floatS(floatr);\x09floatr;\x09printf("in ...

  3. java错误页面显示错误信息_Struts2在JSP页面中显示错误信息和提示信息的方法

    Struts2在JSP页面中显示错误信息和提示信息的方法主要有以下四种. 注意:以下四种方法均需要使Action类继承ActionSupport类. 一.域级错误信息 ①重写Action中的valid ...

  4. java在线支付---05_在线支付_编写用于准备请求数据的Servlet

    05_在线支付_编写用于准备请求数据的Servlet 创梦综合技术qq交流群:CreDream:251572072 ------------------------------------------ ...

  5. php 银行支付通道_PHP银联在线支付接口的开发实例

    本文主要和大家分享PHP银联在线支付接口的开发实例,希望能帮助到大家. 1. 登录银联自助化测试平台(登陆地址:open.unionpay.com),登录后,点击我的产品,如下:点击右方需要测试的接口 ...

  6. Java Web 网络商城案例演示十五 订单详情功能(提交订单支付界面)

    订单详情功能(提交订单支付界面) 原理分析 步骤实现: 1.准备工作:order_list.jsp当中修改链接 提交当前订单编号 <a href="${pageContext.requ ...

  7. 微信公众号之微信支付(V3版)jsp页面jsapi统一下单调启支付(java版)

    web项目 按顺序一步一步来 准备: 申请了微信支付接口的微信公众号一枚 , 备案的域名网站一枚, (如果有没有的这两个东西会耽误你很久,因为微信支付必须是线上,无法本地调试,) 这里说一下 如果有经 ...

  8. 在sdk中添加源文件_实用干货 | 一步一步教你在SpringBoot中集成微信刷卡支付

    一:准备工作 使用微信支付需要先开通服务号,然后还要开通微信支付,最后还要配置一些开发参数,过程比较多. 申请服务号(企业) 开通微信支付 开发配置 具体准备工作请参考Spring Boot入门教程( ...

  9. PHP对微信支付v2回调进行验签并将相关数据加入数据库

    PS:对于V2版本微信支付的回调需要在线上环境进行,本文中出现的数据库的相关字段,各位请按照个人需求进行修改,此处只对微信回调数据进行相关解析; 代码方面写的比较杂乱,多看注释,相关代码根据个人需求进 ...

最新文章

  1. 【css】页面出现两个滚动条以及只有一半页面显示内容的解决方法
  2. ACMNO.50 完美的代价(主要是不同情况下面的讨论)
  3. tomcat启动卡死在: Initializing Spring root WebApplicationContext的解决办法
  4. 论文推荐 | 2019中国卫星导航年会论文集
  5. 利用mybatis-generator自动生成代码
  6. C#服务器端获取客户端(html)控件值
  7. 深入理解LSM-Tree
  8. 编译报错+解决方法:错误: 找不到符号
  9. Kinect for Windows Samples
  10. 面试题 01.01. 判定字符是否唯一 (计数排序思想)
  11. 在JavaScript中生成特定范围内的随机整数?
  12. Leetcode 1218.最长定差子序列
  13. 圆梦天宫,英雄凯旋—从神州十三号看IP技术在航天测控通信网的应用
  14. 视频剪辑计算机配置要求,对于视频剪辑工作,需要什么样的电脑配置才满足要求...
  15. 把电脑虚拟机linux下编译的程序烧写到ARM9开发板的linux系统里面的具体操作步骤
  16. Pytorch踩坑记:赋值、浅拷贝、深拷贝三者的区别以及model.state_dict()和model.load_state_dict()的坑点
  17. mininet-ovs转发行为与流表不对应
  18. Go语言复合数据类型之map
  19. arcgis server里预览地图显示空白
  20. python如何绘制条形图_python Matplotlib 系列教程(三)——绘制直方图和条形图

热门文章

  1. Python一:【skimage】图像处理库的应用,不使用opencv的情况
  2. arch_version(12) of input model should be 11!
  3. Java开发者必须掌握的20个Spring常用注解
  4. 基于ASP.NET MVC(C#)和Quartz.Net组件实现的定时执行任务调度
  5. 图论--有向图强连通分量的标记及缩点模板
  6. log4j2 配置详解及使用范例
  7. Oracle八大性能视图之v$transaction
  8. 11.11.17 start L3
  9. 三月提示:提防挂马网站 关注账号安全
  10. 【刷题】BZOJ 1023 [SHOI2008]cactus仙人掌图