javaweb视频在线拍卖系统,怎么及时显示别人出价

网站已改版,请使用新地址访问:
WebModule jsp拍卖系统
实现的功能
(1) 用户界面部分。
产品选购,出价(可以按各种不 Jsp/Servlet 238万源代码下载- www.pudn.com
&文件名称: WebModule
& & & & &&]
&&所属分类:
&&开发工具: Java
&&文件大小: 2565 KB
&&上传时间:
&&下载次数: 167
&&提 供 者:
&详细说明:jsp拍卖系统
系统实现的功能
(1) 用户界面部分。
产品选购,出价(可以按各种不同的分类进行查询)。
根据关键字和类别搜索商品。
查看商品的详细信息。
用户注册、登录、密码找回、查看和修改个人信息。
发布和修改拍卖商品信息
向用户发送短信。
(2) 后台管理部分。
对现有商品的管理:查看、删除商品。
用户管理:修改、删除、查看、增加用户。
分类管理:添加、修改、删除商品分类。
系统管理:查看、删除系统配置信息。
-jsp auction system systemic function (1) the user interface part. Products to purchase, bid (can be a variety of different types of inquiries). Search by keyword and category of goods. View product details. User registration, login, password recover, view and modify personal information. Auction of goods distribution and modification information to send text messages. (2) Admin section. Management of existing products: View, delete products. User Management: Edit, delete, view, increase the user. Category management: add, modify, delete Categories. System Management: View, delete the system configuration information.
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&WebModule\.classpath&&.........\.cvsignore&&.........\.project&&.........\.tomcatplugin&&.........\bid.jsp&&.........\buy.jsp&&.........\copyright.jsp&&.........\fh_admin\Admin_left.jsp&&.........\........\cat.jsp&&.........\........\chklogin.jsp&&.........\........\code2.jsp&&.........\........\config.jsp&&.........\........\config_write.jsp&&.........\........\default.jsp&&.........\........\del.jsp&&.........\........\edit_class.jsp&&.........\........\images\bootn_01.gif&&.........\........\......\bootn_02.gif&&.........\........\......\bootn_03.gif&&.........\........\......\bootn_04.gif&&.........\........\......\button.gif&&.........\........\......\CheckAll.js&&.........\........\......\CheckCode.GIF&&.........\........\......\config.php&&.........\........\......\css.css&&.........\........\......\DelTrue.js&&.........\........\......\Index_01.gif&&.........\........\......\Index_02.gif&&.........\........\......\Index_03.gif&&.........\........\......\Index_05.gif&&.........\........\......\Index_06.gif&&.........\........\......\Index_07.gif&&.........\........\......\Index_Login.gif&&.........\........\......\LoginUser.gif&&.........\........\......\logo.gif&&.........\........\......\mytaobaobj1_1.gif&&.........\........\......\mytaobaobj2_1.gif&&.........\........\......\mytaobaobj3_1.gif&&.........\........\......\mytaobaobj4_1.gif&&.........\........\......\nopic.gif&&.........\........\......\r3_1(1).gif&&.........\........\......\r3_1.gif&&.........\........\......\yq_style.css&&.........\........\.nclude\login.inc&&.........\........\index.jsp&&.........\........\login.jsp&&.........\........\logout.jsp&&.........\........\msg.jsp&&.........\........\notice.jsp&&.........\........\users.jsp&&.........\help.jsp&&.........\help_left.jsp&&.........\images\1star.gif&&.........\......\2star.gif&&.........\......\3star.gif&&.........\......\4star.gif&&.........\......\aucclass.gif&&.........\......\bg_3.gif&&.........\......\bg_botton_2.gif&&.........\......\bg_h.gif&&.........\......\boot2.gif&&.........\......\bootn_01.gif&&.........\......\bootn_02.gif&&.........\......\bootn_03.gif&&.........\......\bootn_04.gif&&.........\......\bootn_05.gif&&.........\......\buyerword_2.gif&&.........\......\cha.gif&&.........\......\chen.gif&&.........\......\closeDire.gif&&.........\......\conner.gif&&.........\......\conner1.gif&&.........\......\conner2.gif&&.........\......\css.css&&.........\......\.ustomer\mytaobaobj1_1.gif&&.........\......\........\mytaobaobj2_1.gif&&.........\......\........\mytaobaobj3_1.gif&&.........\......\........\mytaobaobj4_1.gif&&.........\......\........\r3_1.gif&&.........\......\........\Thumbs.db&&.........\......\day2.gif&&.........\......\dd5.gif&&.........\......\dd6.gif&&.........\......\extDire.gif&&.........\......\free_join.gif&&.........\......\free_rz.gif&&.........\......\free_shop.gif&&.........\......\go2.gif&&.........\......\graybar2.gif&&.........\......\gt.gif&&.........\......\head_11.gif&&.........\......\head_15.gif&&.........\......\head_3.gif&&.........\......\head_4.gif&&.........\......\head_6.gif&&.........\......\head_7.gif&&.........\......\head_8.gif&&.........\......\head_dd1.gif&&.........\......\head_dd2.gif&&.........\......\head_dd3.gif
&[]:很好,推荐下载
&近期下载过的用户:
&相关搜索:
&&&&&&&&&&
&输入关键字,在本站238万海量源码库中尽情搜索:
&[] - 乐趣购物网站,j2ee环境,可供学习使用
&[] - ZK是一个Ajax Java Web框架,利用少量代码就能够开发出拥有Rich UI的Web应用。ZK提供基于XUL的标记语言和事件驱动的组件,可以让你像开发桌面应用程序一样简单。支持EL表达式和脚本语言包括:JavaScript、Ruby和Groovy等。支持Annotation及数据绑定。集成G
&[] - 文件名:都市信息供求系统,提供会员注册,为会员提供对都市供求信息的查询,发布,以及对发布信息的修改删除。jsp+sql设计完成,功能强大
&[] - 增加了代理出价竞拍功能
修复商品拍卖处理中的BUG
更新了后台商品分类管理
修改商品分类中特殊字符乱码的问题
更新了首页分类导航显示方式
更新了首页商品陈列方式
修复了商品描述信息显示的行高限制问题
更新了缩略图水印处理方式
替换了原有的EWEBEDITOR编辑器,解决浏览器兼容问题
&[] - 本文的主要工作是对基于B/S模式及jsp技术的网上拍卖Web应用系统进行了研究与设计。本文首先介绍了网上拍卖系统的背景,分析比较了国内外相关网上拍卖系统的运行模式、系统特点与开发技术。然后分析了目前热点的各种Web应用开发技术中存在的优势和不足之处,权衡利弊后,选择并重点研究了JSP技术进行开发。然
&[] - 本系统是一个网上拍卖系统,实现了在网上买卖等功能
&[] - 是一个基于java开发的拍卖系统 非常适合初学者看
&[] - 本站基本功能如下:
首页(index.jsp)
图书选购,(可按分类方式查找图书,或通过关键字进行查询)
购物车功能.
查看图书详细情况。
查看用户的订单信息.
修改用户个人信息。
后台管理部份:
商店图书管理:添加,修改,删除,查看。
用户信息管
&[] - 首页(index.jsp)
图书选购,(可按分类方式查找图书,或通过关键字进行查询)
购物车功能.
查看图书详细情况。
查看用户的订单信息.
修改用户个人信息。
后台管理部份:
商店图书管理:添加,修改,删除,查看。
用户信息管理:查看,修改,删除。
&[] - 华为短信jar包,通过该包可以编写java程序,通过短信网关向你指定的手机发送短信。热门搜索:
鲁ICP备号-3 runtime:Elapsed:86.110ms - init:0.2;b:1.5;r:85.9; 5.8
登录 CodeForge
还没有CodeForge账号?
Switch to the English version?
^_^"呃 ...
Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧基于java Web 的在线拍卖系统-博泰典藏网
典藏文档 篇篇精品
基于java Web 的在线拍卖系统
导读:学号:班级:信管B121姓名:何欢设计题目:_____在,技能训练的内容围绕一个信息管理系统的实际开发过程进行组织,信息管理系统的题目由教师指定或学生自行拟定,学生根据教师提出的系统在应用环境、系统规模、数据量、业务流程等方面的要求,最终完成系统,(3)使学生掌握model2以上的开发系统的方法,(7)使学生初步掌握开发一个小型信息管理系统的基本步骤,引导学生根据实际业 华 北 科 技 学 院
课程设计说明书
技能训练类(三)
姓名: 何欢
设计题目:_____在线拍卖系统________________ 设计地点:____基础五_______________________ 设计时间:
成绩评定: 1、工作量:
) 2、难易度:
) 3、答辩情况: 基本操作:
) 代码理解:
) 4、报告规范度:
) 5、学习态度:
) 总评成绩:_________________________________ 指导教师:_________________________________
1、 课程设计的目的 技能训练的内容围绕一个信息管理系统的实际开发过程进行组织,重点在于程序设计开发部分。信息管理系统的题目由教师指定或学生自行拟定,学生根据教师提出的系统在应用环境、系统规模、数据量、业务流程等方面的要求,进行需求分析、数据库设计、数据库实施、程序开发和测试,最终完成系统。 技能训练的目的和要求: (1) 使学生巩固和加强《java基础》与《》课程的理论知识。 (2) 使学生掌握程序设计开发的步骤。 (3) 使学生掌握model2以上的开发系统的方法。 (4) 使学生掌握使用数据库管理信息数据的方法。 (5) 使学生掌握使用JAVA等程序设计语言连接和操作数据库的方法。 (6) 使学生掌握调试程序的基本方法及上机操作方法。 (7)使学生初步掌握开发一个小型信息管理系统的基本步骤,引导学生根据实际业务流程和需求进行系统分析与设计,并建立需要的数据库,最后通过编写代码和调试完成系统。 2、 软件需求分析和总体设计 2.1软件功能 拍卖系统是一个在线系统,系统设计为B/S模式,用户在浏览器请求服务端的资源。包含的功能有: ①查看竟得物品 ②浏览流拍物品 ③管理种类 ④管理物品 ⑤浏览拍卖物品 ⑥查看自己的竞标 功能模块框图下图所示(图2-1-1):
登录查看自己已经竞得的物品浏览流拍物品管理种类管理物品浏览拍卖物品查看当前拍卖物品种类显示种类添加种类查看自己拍卖物品添加自己要拍卖物品查看详细竞拍物品查看自己的竞标的竞标记录返回首页注销刷新竞拍
图2-1-1 2.2设计模式 拍卖系统采用Model2设计,即代码结构。JSP+Servlet+JavaBean。
图2-2-1 系统通过JSP技术来表现页面,通过Servlet技术来完成大量的事务处理工作。在model2中,Servlet用来处理请求的事务,充当着一个控制者的角色,并负责向客户端
发送请求。Servlet创建JSP需要的Bean和对象,然后根据用户的请求行为,决定将哪个JSP页面发送给用户。 JSP页面没有任何商业处理逻辑,JSP页面只是简单地检索ervlet先前创建的Bean和对象,再将动态内容插入到预定义的HTML模板中。 Model2 符合MVC架构模式,即(Model-View-Controller)。 MVC设计模式模式三部分组成。模型是应用对象,没有用户界面;视图表示在屏幕上的显示,代表流向用户的数据;控制器定义用户界面对用户输入的相应方式,负责把用户的动作转成对Model的操作;Model通过更新View的数据来反映数据的变化。
图2-2-2 优点:各司其职、互不干涉、有利于开发中的分工、有利于组件的重用 缺点:系统结构和实现复杂、视图和控制器过于紧密、适合大型应用程序 2.3数据库设计 数据库设计为五个表:auction_user、kind、item、bid、state (1)auction_user:用户表。存放用户数据:
字段名 User_id Username Userpass email 字段说明 用户的id 用户名 用户密码 用户email 字段类型 int varchar(50) 字段约束 PK
Not UNIQUE varchar(50) Not null varchar(100) Not null 表2-3-1 (2)kind:种类表,存放种类信息。 字段名 Kind_id Kind_name
字段说明 物品种类id 种类名 4 字段类型 int varchar 字段约束 PK
auto_increment Not null
Kind_desc 种类描述 varchar 表2-3-2 Not null (3)state:状态表,存放物品状态信息。 字段名 State_id State_name 字段说明 物品状态id 物品状态名 字段类型 int varchar 表2-3-3 (4)item:物品表,存放物品信息外键关联到auction_user,kind,state。 字段名 Item_id Item_name Item_remark Item_desc Kind_id Addtime Endtime Init_price Max_price Owner_id Winer_id State_id 字段说明 物品id 物品名称 物品标注 物品描述 物品的种类 物品起拍时间 拍卖物品截止时间 物品拍卖底价 物品拍卖最高价 物品的所有者 赢取物品者 物品的状态 字段类型 int varchar varchar varchar Int date date double double Int Int int 表2-3-4 (5)bid:竞价表。存放用户竞价信息。外键关联到item。 字段名 Bid_id User_id Item_id Bid_price Bid_date 字段说明 竞拍id号 用户id 物品id 竞拍价格 竞拍日期 字段类型 int int int double date 表2-3-5
5 字段约束 PK
auto_increment default null 字段约束 PK
auto_increment Not null Not null default null Foreign key
Not null Not null Not null Not null Not null Foreign key
Not null Foreign key
default null Foreign key
Not null 字段约束 PK
auto_increment Foreign key
Foreign key
Not null Not null Not null 包含总结汇报、表格模板、出国留学、外语学习、IT计算机、初中教育、行业论文、旅游景点以及基于java Web 的在线拍卖系统等内容。本文共3页
相关内容搜索分享给朋友:通用代码: <input id="link4" type="text" class="form_input form_input_s" value="" />复 制flash地址: 复 制html代码: <input type="text" class="form_input form_input_s" id="link3" value="" />复 制在线拍卖系统(毕业设计论文,JSP,JAVA,源代码)下载至电脑扫码用手机看用或微信扫码在手机上继续观看二维码2小时内有效在线拍卖系统(毕业设计论文,JSP,JAVA,源代码)扫码用手机继续看用或微信扫码在手机上继续观看二维码2小时内有效,扫码后可分享给好友没有优酷APP?立即下载请根据您的设备选择下载版本 药品服务许可证(京)-经营- 请使用者仔细阅读优酷、、、、和Copyright(C)2017 优酷 youku.com 版权所有不良信息举报电话:javaweb实现在线支付功能
作者:Android-Dev
字体:[ ] 类型:转载 时间:
这篇文章主要为大家详细介绍了javaweb实现在线支付功能的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
1、在线支付概述
什么是在线支付呢?没错,就是在网上花钱!大家一定有过这样的经历。但是你可能不太了解在线支付的“内情”,下面我们来了解一下!
如果你现在开始经营一个电子商务网站,用户买了东西一定要支付,你的网站一定要可以连接各大银行了,然后在各大银行支付完成后,再返回到你的网站上显示“支付成功”!
这就是今天我们要做的事情,连接银行的网银系统完成支付。说专业一点,我们称之为“开发在线支付的网关”
2、两种在线支付的方式
在线支付一共有两种方式:
*电商直接与银行对接
*电商通过第三方支付平台与银行对接
电商直接与银行对接,这也要银行同意才行,但可惜的是,银行很“牛”,不是谁想与它对接都可以的。如果你的电商每日的资金流量够大,那么银行会和你对接,因为客户支付给电商的钱都存到了银行的帐户中!但是如果资金流量小,银行不会理你的!
当小网站资金量不足时,不能与银行对接,那么它们会选择与第三方支付公司合作。大家也都明白这是些什么公司,例如:支付宝、易宝、财富通、快钱等公司是国内比较有名的。它们这些公司可以与银行对接(因为资金够多),然后小电商与它们对接!但是第三方是要求收费的!第三方一般会收取电商1%的费用,不过不会收客户的钱。
通过上图大家可以了解到,在银行的页面上会显示出商城名称、RMB订单号、订单时间。。。,这些东西银行是怎么知道的,当然是电商传递给银行的。当电商与银行对接后,电商要给银行的页面传递银行页面需要的参数,所以银行的页面才能显示这些数据!
但是,我们的商城不能只可以对接一家银行吧!怎么也要对接BOC、CCB、ABC、ICBC四家吧!不同的银行需要的对接参数是不相同的,这说明我们在开发时要为不同的银行写不同的对接代码。这也是直接与银行对接的缺点!当然与银行直接对接也有好处,就是安全,没有手续费!
为不同的银行开发不同的代码(缺点);
安全(优点);
没有手续费(优点);
小电商银行不让对接(缺点)。
上图中已经说明,客户在电商的网站上点击确认支付后,会定向到第三方的网站,然后再由第三方与银行对接。这说明电商要传递给第三方参数!再由第三方把参数传递给银行。这种方式的好处是:只需要针对第三方开发即可,而不用再为每家银行提供参数。为每家银行提供参数的工作是第三方的任务了。但是,第三方不老可靠的,如果第三方倒闭了,人跑了,那你的钱就没了。因为客户支付的钱没有到你的银行帐户中,而是支付到了第三方的银行帐户中,而你是在第三方有一个帐户。而且第三方还要收手续费,一般是1%,这可不是小数字啊(真黑)。
3、通过第三方在线支付规则
电商想在第三方注册商户,需要向第三方提供ICP认证。ICP经营许可证是根据国家《互联网管理办法规定》,经营性网站必须办理的网站经营许可证,没有就属于非法经营。
我们不可能因为练习就去办理ICP!所以我们无法在第三方注册商户。不过我们已经有现成的在易宝注册的商户,所以这一步就可以忽略了。
当你在易宝注册成功后,易宝会给你如下几样东西:
&& 在易宝的开户账号(即商户编码):
&& 易宝接入规范:一个chm文件
&& 对称加密算法类:PaymentUtil.java
&& 密钥:69cl522AV6q613Ii4W6u8K6XuW8vM1N6bFgyv769220IuYe9u37N4y7rI4Pl
在易宝接入规范中,我们可以查找到易宝的支付网关,其实就是一个URL,用来与易宝对接的一个网址:
在易宝接入规范中,还可以查找到易宝要求的参数,在电商与易宝对接时需要给支付网关传递这些参数:
正式请求地址:
这些参数需要追加到URL后面。
但是要注意,这些参数的值需要加密。加密的密钥和加密算法易宝都会提供!
其中p8_Url表示当支付成功后,返回到电商的哪个页面。这说明我们需要写一个显示结果的页面。第三方在支付成功后,会重定向到我们指定的返回页面,而且还会带给我们一些参数,我们的页面需要获取这些参数,显示在页面中。下面是第三方返回的参数:
4、开发第三方在线支付系统
index.jsp页面:一个表单,提交到BuyServlet,表单项有:订单编号、付款金额、选择银行
BuyServlet:获取表单数据,准备连接第三方网关。因为在index.jsp页面中只给出3个参数,而第三方需要的参数有N多,页面没有给出的参数由BuyServlet补充。而且参数还需要加密,这也需要在BuyServlet中完成
BackServlet:当用户支付成功后,第三方会重定向到我们指定的返回页面,我们使用BackServlet作为返回页面,它用来接收第三方传递的参数,显示在页面中
因为已经有了在易宝的注册商号,所以我们就不用自己去注册商号了。所以这里使用易宝做为第三方支付平台来测试。因为我本人没有电商(必须通过ICP认证的电商),所以也不能在第三方注册商号。
我们现在使用的易宝商号是由传智播客提供的,巴巴运动网在易宝注册的商号。所以在测试时支付的钱都给了巴巴运动网在易宝注册的商号了。
第一步:index.jsp
&form action="" method="post"&
订单号:&input type="text" name="p2_Order"/&&br/&
金 额:&input type="text" name="p3_Amt"/&&br/&
选择银行:&br/&
&input type="radio" name="pd_FrpId" value="ICBC-NET-B2C"/&工商银行
&img src="bank_img/icbc.bmp" align="middle"/&
&input type="radio" name="pd_FrpId" value="BOC-NET-B2C"/&中国银行
&img src="bank_img/bc.bmp" align="middle"/&&br/&&br/&
&input type="radio" name="pd_FrpId" value="ABC-NET-B2C"/&农业银行
&img src="bank_img/abc.bmp" align="middle"/&
&input type="radio" name="pd_FrpId" value="CCB-NET-B2C"/&建设银行
&img src="bank_img/ccb.bmp" align="middle"/&&br/&&br/&
&input type="radio" name="pd_FrpId" value="BOCO-NET-B2C"/&交通银行
&img src="bank_img/bcc.bmp" align="middle"/&&br/&
&input type="submit" value="确认支付"/&
每个银行对应的值:
第二步:BuyServlet.java
public class BuyServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/charset=utf-8");
String p0_Cmd = "Buy";// 业务类型,固定值为buy,即“买”
String p1_MerId = "";// 在易宝注册的商号
String p2_Order = request.getParameter("p2_Order");// 订单编号
String p3_Amt = request.getParameter("p3_Amt");// 支付的金额
String p4_Cur = "CNY";// 交易种币,固定值为CNY,表示人民币
String p5_Pid = "";// 商品名称
String p6_Pcat = "";// 商品各类
String p7_Pdesc = "";// 商品描述
String p8_Url = "http://localhost:8080/buy/BackServlet";// 电商的返回页面,当支付成功后,易宝会重定向到这个页面
String p9_SAF = "";// 送货地址
String pa_MP = "";// 商品扩展信息
String pd_FrpId = request.getParameter("pd_FrpId");// 支付通道,即选择银行
String pr_NeedResponse = "1";// 应答机制,固定值为1
// 密钥,由易宝提供,只有商户和易宝知道这个密钥。
String keyValue = "69cl522AV6q613Ii4W6u8K6XuW8vM1N6bFgyv769220IuYe9u37N4y7rI4Pl";
// 通过上面的参数、密钥、加密算法,生成hmac值
// 参数的顺序是必须的,如果没有值也不能给出null,而应该给出空字符串。
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);
// 把所有参数连接到网关地址后面
String url = "https://www.yeepay.com/app-merchant-proxy/node";
url += "&#63;p0_Cmd=" + p0_Cmd +
"&p1_MerId=" + p1_MerId +
"&p2_Order=" + p2_Order +
"&p3_Amt=" + p3_Amt +
"&p4_Cur=" + p4_Cur +
"&p5_Pid=" + p5_Pid +
"&p6_Pcat=" + p6_Pcat +
"&p7_Pdesc=" + p7_Pdesc +
"&p8_Url=" + p8_Url +
"&p9_SAF=" + p9_SAF +
"&pa_MP=" + pa_MP +
"&pd_FrpId=" + pd_FrpId +
"&pr_NeedResponse=" + pr_NeedResponse +
"&hmac=" +
System.out.println(url);
// 重定向到网关
response.sendRedirect(url);
第三步:BackServlet
public class BackServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/charset=utf-8");
* 易宝会提供一系列的结果参数,我们获取其中需要的即可
* 获取支付结果:r1_Code,1表示支付成功。
* 获取支付金额:r3_Amt
* 获取电商的订单号:r6_Order
* 获取结果返回类型:r9_BType,1表示重定向返回,2表示点对点返回,
但点对点我们收不到,因为我们的ip都是局域网ip。
String r1_Code = request.getParameter("r1_Code");
String r3_Amt = request.getParameter("r3_Amt");
String r6_Order = request.getParameter("r6_Order");
String r9_BType = request.getParameter("r9_BType");
if(r1_Code.equals("1")) {
if(r9_BType.equals("1")) {
response.getWriter().print("&h1&支付成功!&/h1&");//其实支付不成功时根本易宝根本就不会返回到本Servlet
response.getWriter().print("支付金额为:" + r3_Amt + "&br/&");
response.getWriter().print("订单号为:" + r6_Order + "&br/&");
易宝支付提供的获取hmac的工具类
public class PaymentUtil {
private static String encodingCharset = "UTF-8";
* 生成hmac方法
* @param p0_Cmd 业务类型
* @param p1_MerId 商户编号
* @param p2_Order 商户订单号
* @param p3_Amt 支付金额
* @param p4_Cur 交易币种
* @param p5_Pid 商品名称
* @param p6_Pcat 商品种类
* @param p7_Pdesc 商品描述
* @param p8_Url 商户接收支付成功数据的地址
* @param p9_SAF 送货地址
* @param pa_MP 商户扩展信息
* @param pd_FrpId 银行编码
* @param pr_NeedResponse 应答机制
* @param keyValue 商户密钥
public static String buildHmac(String p0_Cmd,String p1_MerId,
String p2_Order, String p3_Amt, String p4_Cur,String p5_Pid, String p6_Pcat,
String p7_Pdesc,String p8_Url, String p9_SAF,String pa_MP,String pd_FrpId,
String pr_NeedResponse,String keyValue) {
StringBuilder sValue = new StringBuilder();
// 业务类型
sValue.append(p0_Cmd);
// 商户编号
sValue.append(p1_MerId);
// 商户订单号
sValue.append(p2_Order);
// 支付金额
sValue.append(p3_Amt);
// 交易币种
sValue.append(p4_Cur);
// 商品名称
sValue.append(p5_Pid);
// 商品种类
sValue.append(p6_Pcat);
// 商品描述
sValue.append(p7_Pdesc);
// 商户接收支付成功数据的地址
sValue.append(p8_Url);
// 送货地址
sValue.append(p9_SAF);
// 商户扩展信息
sValue.append(pa_MP);
// 银行编码
sValue.append(pd_FrpId);
// 应答机制
sValue.append(pr_NeedResponse);
return PaymentUtil.hmacSign(sValue.toString(), keyValue);
* 返回校验hmac方法
* @param hmac 支付网关发来的加密验证码
* @param p1_MerId 商户编号
* @param r0_Cmd 业务类型
* @param r1_Code 支付结果
* @param r2_TrxId 易宝支付交易流水号
* @param r3_Amt 支付金额
* @param r4_Cur 交易币种
* @param r5_Pid 商品名称
* @param r6_Order 商户订单号
* @param r7_Uid 易宝支付会员ID
* @param r8_MP 商户扩展信息
* @param r9_BType 交易结果返回类型
* @param keyValue 密钥
public static boolean verifyCallback(String hmac, String p1_MerId,
String r0_Cmd, String r1_Code, String r2_TrxId, String r3_Amt,
String r4_Cur, String r5_Pid, String r6_Order, String r7_Uid,
String r8_MP, String r9_BType, String keyValue) {
StringBuilder sValue = new StringBuilder();
// 商户编号
sValue.append(p1_MerId);
// 业务类型
sValue.append(r0_Cmd);
// 支付结果
sValue.append(r1_Code);
// 易宝支付交易流水号
sValue.append(r2_TrxId);
// 支付金额
sValue.append(r3_Amt);
// 交易币种
sValue.append(r4_Cur);
// 商品名称
sValue.append(r5_Pid);
// 商户订单号
sValue.append(r6_Order);
// 易宝支付会员ID
sValue.append(r7_Uid);
// 商户扩展信息
sValue.append(r8_MP);
// 交易结果返回类型
sValue.append(r9_BType);
String sNewString = PaymentUtil.hmacSign(sValue.toString(), keyValue);
return sNewString.equals(hmac);
* @param aValue
* @param aKey
public static String hmacSign(String aValue, String aKey) {
byte k_ipad[] = new byte[64];
byte k_opad[] = new byte[64];
byte keyb[];
byte value[];
keyb = aKey.getBytes(encodingCharset);
value = aValue.getBytes(encodingCharset);
} catch (UnsupportedEncodingException e) {
keyb = aKey.getBytes();
value = aValue.getBytes();
Arrays.fill(k_ipad, keyb.length, 64, (byte) 54);
Arrays.fill(k_opad, keyb.length, 64, (byte) 92);
for (int i = 0; i & keyb. i++) {
k_ipad[i] = (byte) (keyb[i] ^ 0x36);
k_opad[i] = (byte) (keyb[i] ^ 0x5c);
MessageDigest md =
md = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
md.update(k_ipad);
md.update(value);
byte dg[] = md.digest();
md.reset();
md.update(k_opad);
md.update(dg, 0, 16);
dg = md.digest();
return toHex(dg);
public static String toHex(byte input[]) {
if (input == null)
StringBuffer output = new StringBuffer(input.length * 2);
for (int i = 0; i & input. i++) {
int current = input[i] & 0
if (current & 16)
output.append("0");
output.append(Integer.toString(current, 16));
return output.toString();
* @param args
* @param key
public static String getHmac(String[] args, String key) {
if (args == null || args.length == 0) {
return (null);
StringBuffer str = new StringBuffer();
for (int i = 0; i & args. i++) {
str.append(args[i]);
return (hmacSign(str.toString(), key));
* @param aValue
public static String digest(String aValue) {
aValue = aValue.trim();
byte value[];
value = aValue.getBytes(encodingCharset);
} catch (UnsupportedEncodingException e) {
value = aValue.getBytes();
MessageDigest md =
md = MessageDigest.getInstance("SHA");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return toHex(md.digest(value));
// public static void main(String[] args) {
System.out.println(hmacSign("AnnulCard0.0http://localhost/SZXpro/callback.asp杩&#63;1","8UPp0KE8sq73zVP370vko7C39403rtK1YwX40Td6irHEb12792t"));
点对点:易宝直接访问电商,这里没有客户端什么事了
&&& 这种方式是必须要使用的,我们这种方式是收不到的!因为我们没有固定IP
&&& 易宝有一个重发机制,如果它访问你,你不给它回信息,它会一直重发!
&&& 电商需要返回一个以SUCCESS开头的字符串即可!
引导客户端浏览器重定向到电商。是让客户端访问电商!
&&& 可以不使用的!
hmac:13参数值+keyValue(密钥) + 算法(md5)
&&& 13参数值:自己设置的!
&&& keyValue:易宝在我们注册后发给我们的,这个东东只有我们和易宝知道!
&&& 底层为md5的算法:PaymentUtil.buildHmac(14个),它返回hmac
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具}

我要回帖

更多关于 javaweb 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信