05_在线支付_编写用于准备请求数据的Servlet
创梦综合技术qq交流群:CreDream:251572072
--------------------------------------------------
c./payment/src/com/credream/servlet/PaymentRequest.java
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);
  // 得到加密后的字串.
  request.setAttribute("messageType", messageType);
  request.setAttribute("merchantID", p1_MerId);
  request.setAttribute("orderId", orderid);
  request.setAttribute("amount", amount);
  request.setAttribute("currency", currency);
  request.setAttribute("productId", productId);
  request.setAttribute("productCat", productCat);
  request.setAttribute("productDesc", productDesc);
  request.setAttribute("merchantCallbackURL", merchantCallbackURL);
  request.setAttribute("addressFlag", addressFlag);
  request.setAttribute("sMctProperties", sMctProperties);
  request.setAttribute("frpId", pd_FrpId);
  request.setAttribute("pr_NeedResponse", pr_NeedResponse);
  request.setAttribute("hmac", md5hmac);
 
  request.getRequestDispatcher("/WEB-INF/page/connection.jsp").forward(request, response);
}
}
--------------------------------------------------------------------------------------------
d./payment/src/merchantInfo.properties
  p1_MerId=10000326625
  keyValue=0acqgug6x57m0wrsiod6clpn1ezh47r2ot5h1zkq5dztiic8y5xkm5g0p0ek
  merchantCallbackURL=http\://localhost\:8080/payment/servlet/yeepay/response
  第一个是商户的id,第二个是易宝给商户的密钥,第三个是接收易宝支付返回的支付结果的地址.
----------------------------------------------------------------------------------
e./payment/src/com/credream/utils/ConfigInfo.java
package com.credream.utils;
import java.util.Properties;
import java.util.ResourceBundle;
/**
* 读取配置文件
*
*/
public class ConfigInfo {
// 读取配置文件.
// private static ResourceBundle cacheBundle =null;
private static Properties cache = new Properties();
static{
  try {
//   cacheBundle = ResourceBundle.getBundle("");
   cache.load(ConfigInfo.class.getClassLoader().getResourceAsStream("merchantInfo.properties"));
  } catch (Exception e) {
   e.printStackTrace();
  }
}
/**
  * 获取指定key的值
  * @param key
  * @return
  */
public static String getValue(String key){
  return cache.getProperty(key);
}
}
---------------------------------------------------------------------------------------------------

java在线支付---05_在线支付_编写用于准备请求数据的Servlet相关推荐

  1. 如何编写数据库可视化界面_编写用于数据可视化的替代文本

    如何编写数据库可视化界面 什么是替代文字 (What is Alt Text) Alt text (sometimes called Alt tags or alternative text) are ...

  2. java代码优化的方法和准则_编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议16~20)...

    建议16:易变业务使用脚本语言编写 Java世界一直在遭受着异种语言的入侵,比如PHP,Ruby,Groovy.Javascript等,这些入侵者都有一个共同特征:全是同一类语言-----脚本语言,它 ...

  3. java robot 控制 不用用户 界面_编写一个基于Java Robot类的屏幕捕获工具

    Fun and Games(娱乐和游戏)提供了通过Java的Robot类捕获主屏幕设备的功能,并且可以将整个屏幕或者选定的一部分保存为jpeg文件.这篇文章以Swing应用的形式实现了屏幕捕获工具. ...

  4. 用java提示用户输入学生个数_编写程序,提示用户输入一个数N,然后显示1~N的所有偶数平方值,求大神看看我写的程序哪里有问题。。...

    点击查看编写程序,提示用户输入一个数N,然后显示1~N的所有偶数平方值,求大神看看我写的程序哪里有问题..具体信息 答: 修改后的程序:#includeint main(){int n,a,b;pri ...

  5. 用java输入学生姓名查询成绩_编写一个Java程序,提示用户输入学生数量,学生姓名和他们的成绩,并按照成绩的降序打印学生姓名...

    importjava.util.Scanner;publicclassmyclass{publicstaticvoidmain(String[]args){Scannerinput=newScanne ...

  6. java通过电话扒取姓名_编写Java程序,输入N个用户的姓名和电话号码,按照用户姓名的词典顺序排列输出用户的姓名和电话号码...

    展开全部 如下:看看满不满足要求,不对追问.import java.util.ArrayList; import java.util.Collections; import java.util.Com ...

  7. java代码异常处理会影响性能_编写高质量代码改善java程序的151个建议——[110-117]异常及Web项目中异常处理...

    原创地址:http://www.cnblogs.com/Alandre/(泥沙砖瓦浆木匠),需要转载的,保留下! 文章宗旨:Talk is cheap show me the code. 大成若缺,其 ...

  8. 一个java小程序运行结果图_编写以下程序,并上传源代码和运行结果截图,附件中上传java源程序。...

    [填空题]向慈善组织捐款 [简答题]你的组员.岗位.团队名.口号是什么? [单选题]被称为"生命中枢"的脑组织是( ). [单选题]已知偶函数 的图象经过 ,则函数的图象必经过另一 ...

  9. 用java程序for循环打印菱形_编写Java程序,应用for循环打印菱形、三角形

    //输出三角形//右上 for(int m = 1; m <= 10; m++) {for (int n = 1; n <= m; n++) { System.out.print(&quo ...

最新文章

  1. IJCAI 2019精选论文一览,从底层到应用都有了
  2. 一款很好用的页面滚动元素动画插件-AOS.JS
  3. 一个简单函数的反汇编分析
  4. Java基础入门笔记-对象的销毁
  5. OpenCV4每日一练day6:Image Watch的使用
  6. 【Spring学习笔记-MVC-12】Spring MVC视图解析器之ResourceBundleViewResolver
  7. Elasticsearch 集群报错 master not discovered yet
  8. python使用moviepy包下的VideoFileClip时报错:OSError: [WinError 6] 句柄无效解决方法
  9. html代码标签优化与提速,HTML代码标签优化与提速
  10. 星球矿石盲盒流量主小程序
  11. 350套前端网站模板
  12. php网页加入音乐和歌词,怎么给视频加歌词,给mv加歌词,视频加歌词字幕
  13. 微信小程序——获取当前人微信绑定的手机号码
  14. 小米手机 5 开启【开发者选项】
  15. Vim文本编辑器及文本处理常用操作
  16. LIMIT 10000,10会发生什么?
  17. 字符串匹配 - Overview
  18. 【2022-01-11】JS逆向之拉钩登入(上)
  19. 假如当初知道skycc营销软件是不是比现在好
  20. Python数字、字符串、数组之间的相互转换

热门文章

  1. linux内存管理(六)-伙伴分配器
  2. Linux网络实时流量监测工具iftop的安装使用
  3. Django-ModelFrom中修改save后的字段值
  4. 仿 vue-cli 搭建属于自己的脚手架
  5. VC++绘图时,利用双缓冲解决屏幕闪烁 转载
  6. android aapt 用法 -- ApkReader
  7. 为VMware ESXi主机添加本地存储的过程及注意事项之2
  8. oracle单列索引和组合索引性能测试
  9. Cisco ACS AAA服务器导入华为私有属性
  10. 如何查看电脑上是否安装有IIS服务