这一版本的编写是在我上一次博客的基础上写的,有不懂得童鞋可以先看下我的原先在线支付的博客,熟悉下:http://blog.csdn.net/yulei_qq/article/details/45197543

第一步,建立工程,工程目录如下:

我在原先案例代码的基础上增加了个Servlet类 GateWayPayment  和一个JSP文件.  home.jsp    rescources文件夹下放的是测试用的一些文件,如测试证书 . 下面我贴下GateWayPayment .java 和 home.jsp 的源码.

GateWayPayment.java

package com.unionpay.acp;import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.unionpay.acp.sdk.SDKConfig;public class GateWayPayment extends HttpServlet {@Overridepublic void init() throws ServletException {System.out.println("初始化Servlet.....");SDKConfig.getConfig().loadPropertiesFromSrc();super.init();}/*** */private static final long serialVersionUID = 7414643114833354891L;/*** The doGet method of the servlet. <br>*/public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");PrintWriter out = response.getWriter();/*** 组装请求报文*/Map<String, String> data = new HashMap<String, String>();// 版本号data.put("version", "5.0.0");// 字符集编码 默认"UTF-8"data.put("encoding", "UTF-8");// 签名方法 01 RSAdata.put("signMethod", "01");// 交易类型 01-消费data.put("txnType", "01");// 交易子类型 01:自助消费 02:订购 03:分期付款data.put("txnSubType", "01");// 业务类型data.put("bizType", "000201");// 渠道类型,07-PC,08-手机data.put("channelType", "08");// 前台通知地址 ,控件接入方式无作用data.put("frontUrl", "http://localhost:8080/PayOnLine/acp_front_url.do"); // 后台通知地址data.put("backUrl", "http://localhost:8080/PayOnLine/acp_back_url.do");// 接入类型,商户接入填0 0- 商户 , 1: 收单, 2:平台商户data.put("accessType", "0");// 商户号码,请改成自己的商户号data.put("merId", "777290058112538");  // 商户订单号,8-40位数字字母data.put("orderId", new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()));  //自动生成订单号 ,生产系统一般是一个自动增长的序列.// 订单发送时间,取系统时间data.put("txnTime", new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()));// 交易金额,单位分data.put("txnAmt", "749900");// 交易币种data.put("currencyCode", "156");// 请求方保留域,透传字段,查询、通知、对账文件中均会原样出现// data.put("reqReserved", "透传信息");// 订单描述,可不上送,上送时控件中会显示该信息// data.put("orderDesc", "订单描述");Map<String, String> submitFromData =  DemoBase.signData(data);// 交易请求url 从配置文件读取String requestFrontUrl = SDKConfig.getConfig().getFrontRequestUrl(); /***动态创建表单*/String html = DemoBase.createHtml(requestFrontUrl, submitFromData);
//      System.out.println(html);out.print(html); out.flush();out.close();}/*** The doPost method of the servlet. <br>*/public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}

home.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'Home.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body>点击如下图片,购买商品!<div> <a href="http://localhost:8080/acptest1/servlet/GateWayPayment"><img alt="相机" src="data:images/photo.png"></a></div></body>
</html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"><display-name>acptest1</display-name><servlet><servlet-name>BackRcvResponse</servlet-name><servlet-class>com.unionpay.acp.BackRcvResponse</servlet-class></servlet><servlet-mapping><servlet-name>BackRcvResponse</servlet-name><url-pattern>/acp_back_url.do</url-pattern></servlet-mapping><servlet><servlet-name>FrontRcvResponse</servlet-name><servlet-class>com.unionpay.acp.FrontRcvResponse</servlet-class></servlet><servlet-mapping><servlet-name>FrontRcvResponse</servlet-name><url-pattern>/acp_front_url.do</url-pattern></servlet-mapping><servlet><servlet-name>GateWayPayment</servlet-name><servlet-class>com.unionpay.acp.GateWayPayment</servlet-class></servlet><servlet-mapping><servlet-name>GateWayPayment</servlet-name><url-pattern>/servlet/GateWayPayment</url-pattern></servlet-mapping>
</web-app>

第二步:配置acp_sdk.properties文件

###### SDK 配置文件 配置文件中日志和证书的存放路径根据实际情况配置,交易地址和证书根据测试环境、生产环境配套配置
##########################交易发送地址配#############################
######(以下配置为认证环境:入网测试环境用,生产环境配置见文档说明)#######
##前台交易请求地址
acpsdk.frontTransUrl=https://101.231.204.80:5000/gateway/api/frontTransReq.do
#### 后台交易请求地址
acpsdk.backTransUrl=https://101.231.204.80:5000/gateway/api/backTransReq.do
##后台交易请求地址(若为有卡交易配置该地址)
acpsdk.cardTransUrl=https://101.231.204.80:5000/gateway/api/cardTransReq.do
##单笔查询请求地址
acpsdk.singleQueryUrl=https://101.231.204.80:5000/gateway/api/queryTrans.do
##批量交易请求地址
acpsdk.batchTransUrl=https://101.231.204.80:5000/gateway/api/batchTransReq.do
##文件传输类交易地址
acpsdk.fileTransUrl=https\://101.231.204.80\:9080/
## app 交易请求地址
acpsdk.appTransUrl=https://101.231.204.80:5000/gateway/api/appTransReq.do#########################签名证书配置 ################################
######(以下配置为测试环境:入网测试环境用,生产环境配置见下述文档说明))#######
##签名证书路径
acpsdk.signCert.path=D\:\\certs\\PM_700000000000001_acp.pfx
##签名证书密码
acpsdk.signCert.pwd=000000
##签名证书类型
acpsdk.signCert.type=PKCS12##########################加密证书配置################################
##\密码加密证书路径
acpsdk.validateCert.dir=D\:\\certs\\

第四步:根据配置文件制定的证书路径配置证书,证书在工程的resources文件夹下.

第5步:集成网关支付测试,网址:https://open.unionpay.com/ajweb/account/myProduct/integrate?prodId=1 .

当状态变成以下状态时

就可以启动Tomcat服务器,访问网页:

点击如上图片就进入:

。表示环境已经搭建好了。

注:各位测试的时候,以下代码需要更换,请填写自己的商户号.

         // 商户号码,请改成自己的商户号data.put("merId", "777290058112538");  

源码下载地址:http://yun.baidu.com/share/link?shareid=192593261&uk=1226600628

转载于:https://www.cnblogs.com/wuyida/p/6300316.html

银联在线 网关支付 (JAVA版)相关推荐

  1. 银联批量结算 java_银联在线 网关支付 (JAVA版)

    这一版本的编写是在我上一次博客的基础上写的,有不懂得童鞋可以先看下我的原先在线支付的博客,熟悉下:http://blog.csdn.net/yulei_qq/article/details/45197 ...

  2. 银联在线支付 java_银联在线 网关支付 (JAVA版)

    这一版本的编写是在我上一次博客的基础上写的,有不懂得童鞋可以先看下我的原先在线支付的博客,熟悉下:http://blog.csdn.net/yulei_qq/article/details/45197 ...

  3. PHP接入银联在线网关支付

    网站支付:一般接入微信支付.支付宝支付.银联支付,本文介绍的是如何接入中国银联在线网关支付 银联介绍 银联在线支付网关是中国银联联合各商业银行为持卡人提供的集成化.综合性互联网支付工具,主要支持输入卡 ...

  4. 银联在线网关支付,快速接入指南

    银联在线支付网关是中国银联联合各商业银行为持卡人提供的集成化.综合性互联网支付工具,主要支持输入卡号付款.用户登录支付.网银支付.迷你付(IC卡支付)等多种支付方式,为持卡人提供境内外网上购物支付服务 ...

  5. java对接银联在线网关支付(已测试)

    访问连接下载银联SDK https://open.unionpay.com/tjweb/acproduct/list?apiSvcId=448&index=5 1.拿到测试证书(下载银联的SD ...

  6. 银联在线 网关支付(中国银联全渠道系统商户接入 测试指引-银联网关支付产品)

    https://blog.csdn.net/yulei_qq/article/details/49025045 中国银联全渠道系统商户接入 测试指引-银联网关支付产品 https://blog.csd ...

  7. 银联支付(一)申请测试环境,并运行测试demo(在线网关支付)

    1.注册账号 点击进入银联支付开放平台地址 注册账号 选择普通用户登录账号 登录后点击前往商户测试中心 进入后产品列表中选择在线网关支付,然后要点击操作中的集成测试申请支付权限,10分钟后生效(这里如 ...

  8. java微信支付代码_10行代码搞定微信支付(Java版)

    原标题:10行代码搞定微信支付(Java版) 微信支付痛点 对于大多数同学来说,要开发微信支付可不简单.附上微信支付官方文档网页链接 从文档上可以看出,你需要解决很多问题,我就随便挑几个吧. xml与 ...

  9. 微信支付java版v2.0_刷卡支付-翟东平-专题视频课程

    微信支付java版v2.0_刷卡支付-1814人已学习 课程介绍         微信支付系列课程将讲解"刷卡支付"."扫码支付"."公众号支付&qu ...

  10. 视频教程-企业微信支付JAVA版_向员工收款-微信开发

    企业微信支付JAVA版_向员工收款 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试(软考)--"信息 ...

最新文章

  1. find函数注意事项
  2. 通过图片优化,我将网站大小减少了62%
  3. 分布式事务原理及实战seata(转自微信公众号 终码一生 )
  4. Nginx-rtmp直播之业务流程分析--比较详细
  5. ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!)
  6. 能干什么_闲鱼流量系统能干什么?真的有用吗?
  7. java计算每个元素出现的百分比_java – 计算百分比“x / y * 100”总是导致0?
  8. php 模拟提交金数据,小程序提交表单到金数据实例
  9. rdt不同版本(rdt1.0,rdt2.0,rdt2.1,rdt2.2,rdt3.0)协议的特点以及发送端接收端的FSM
  10. 视力测试的软件,‎App Store 上的“测试你的眼睛 —— 视力锻炼检查”
  11. 一二线城市知名IT互联网公司名单,看看你身边
  12. .NET组件与控件开发
  13. dockers安装Jenkins
  14. GPIO模块常用的一些方法
  15. 调整数组顺序使奇数位于偶数前面——《剑指offer》
  16. PHP是世界上最好的语言?Phython第一个不服
  17. sql学习教程(五)
  18. 输电线路隐患在线监测装置(综合型装置)
  19. 【PHP开源产品】Ecshop的商品筛选功能实现分析之一(主要对category.php进行分析)
  20. visualBasic李天生笔记第一章

热门文章

  1. 如何使用smobiler的listview控件实现个人信息修改
  2. Beaglebone移植DDS模块驱动(AD9833)
  3. 林子雨大数据java练习
  4. mysql数据库保存微信emoji表情
  5. 揭秘Google数据中心网络B4(李博杰)
  6. 简单实现根据excel表生成sql 建表语句
  7. 项目进度管理:估算活动持续时间
  8. cad图纸比对lisp_cad图纸怎么找出差异?教你怎么对比CAD图纸版本差异
  9. 传统图像降噪算法之BM3D原理详解
  10. 软件工程毕业答辩常问的问题