注:原文来源与 《 Java 银联支付官网demo测试及项目整合代码  》

银联支付(网关支付B2C) 
一、测试官网demo

a)下载官网开发包,导入eclipse等待修改(下载的开发包没有servlet
jar包自己在Tomcat找一个) 
b)进入银联官网账户https://open.unionpay.com/ajweb/account/testPara 
生成自己的测试账号信息等待使用,下载商户私钥证书
以及 银联公钥证书,根据后缀名把下载的两个证书进行修改文件名: 
acp_test_sign.pfx
acp_test_verify_sign.cer

c)将eclipse中导入的demo项目的测试环境证书里面的文件放到本地磁盘的一个单独目录中,例:F:/certs
(测试时最好用certs 
当做文件夹名字,与后面的配置文件里面的名字相同),接着将刚才下载并改名的两个文件复制到此文件中覆盖原有的两个文件;

d)修改项目中的acp_sdk.properties文件

e)acp_sdk.properties修改内容:



f)将项目中的商户接入参数“merId”全部替换成你在官网生成商家测试账号,项目中的所有java文件都找一遍
Ctrl+H整体替换

g)运行项目,访问 http://localhost:8080/ACPSample_B2C/

二、分析代码

a)自己分析
b)Web.xml

c)请求跳转,输入商家ID,付款金额之后响应的servlet:

d)跳转页面代码:

e)其中生成的html代码如下:

<html>
<head> <meta http-equiv="Content-Type"
content="text/html; 
charset=UTF-8"
/> </head> <body> <form id="pay_form" 
action="https://101.231.204.80:5000/gateway/api/frontTransReq.do" 
method="post">
<input type="hidden" name="bizType" id="bizType" 
value="000201"
/> <input type="hidden" name="txnSubType" 
id="txnSubType"
value="01" /> <input type="hidden" name="orderId" 
id="orderId"
value="20170119115205" /> <input type="hidden" 
name="backUrl"
id="backUrl" 
value="http://222.222.222.222:8080/ACPSample_B2C/BackRcvResponse"
/> 
<input
type="hidden" name="signature" id="signature" 
value="NEEh4N2O435HTWanQigXB3dPvFXh+OVKBUCVkKqWTxzQ7qPhOJ9NiF4d7cbjTZcBhoaEEMNYdsN+MrbtkEgCeKgGgKaBrAZLGDgzOaAfvFIJvyYdLBpeI1c8Pt1LmULC08bRsqYIyhev3B2EBeG4QYjTqw/RoxUtij5yTRk08hFo+N556wo8++Q6jlAzjVQYEu8QGEWPSdN9slfKH8WTXnXXCAPWpdgMryOD76ECxu1yaX+Y4x2V4+wTmSvXV1I8PqjpeXGG8oxIMc3k5tyAS+C6FuPjK4vxulq+iEVXh7WDeG/pAZpoW16lfkQ4sZB9TiIpqKHLhJKiXAWhhUePvQ==" 
/>
<input type="hidden" name="txnType" id="txnType" value="01"
/> 
<input
type="hidden" name="channelType" id="channelType"
value="07" 
/>
<input type="hidden" name="frontUrl" id="frontUrl" 
value="http://127.0.0.1:8080/ACPSample_B2C/frontRcvResponse"
/> 
<input
type="hidden" name="certId" id="certId"
value="68759663125" 
/>
<input type="hidden" name="encoding" id="encoding"
value="UTF-8" 
/>
<input type="hidden" name="version" id="version"
value="5.0.0" 
/>
<input type="hidden" name="accessType" id="accessType"
value="0" 
/>
<input type="hidden" name="txnTime" id="txnTime" 
value="20170119115205"
/> <input type="hidden" name="merId" 
id="merId"
value="77729005814****" /> <input type="hidden" 
name="currencyCode"
id="currencyCode" value="156" /> <input 
type="hidden"
name="signMethod" id="signMethod" value="01" />
<input 
type="hidden"
name="txnAmt" id="txnAmt" value="10000" />
</form> 
</body>
<script type="text/javascript"> 
document.all.pay_form.submit();
</script> </html>

f)付款成功之后点击返回商家,结果页面;

g)返回商家的响应由FrontRcvResponse
servlet来处理

h)查询的请求处理由Form_6_5_Query
这个servlet处理

i)查询响应的结果

三、自己项目整合代码 TODO

Java 银联支付官网demo测试及项目整合代码的更多相关文章

  1. jqgrid--api,官网demo,编辑

    api参考: http://blog.csdn.net/hurryjiang/article/details/7551477 官网demo: http://www.trirand.com/blog/j ...

  2. webpack官网demo起步中遇到的问题

    在webpack官网demo一开始搭建中 

  3. 一款jQuery仿海尔官网全屏焦点图特效代码

    一款jQuery仿海尔官网全屏焦点图特效代码,带有左右箭头的jQuery焦点图切换特效. 当焦点图切换时,下方的三块小图也相对应的进行切换.并且特效还兼容头疼的IE6.赶快去和谐了它吧! 适用浏览器: ...

  4. SpringBoot使用JSP(官网Demo)

    最开始接触java的时候,前端页面基本都是用jsp来写,最近公司项目要使用SpringBoot重构,查看SpringBoot文档,发现SpringBoot不建议使用JSP,因为jsp在使用内嵌serv ...

  5. java jdk 8u191 官网下载地址

    目前jdk最后免费版本 jdk-8u191 下载地址: https://www.oracle.com/technetwork/java/javase/downloads/java-archive-ja ...

  6. jasperReports 通过java导出各种格式报表,及javaweb项目整合显示各种报表

    注意:编写此项目时,请先手动编写**.jrxml  或者用IReport生成**.jrxml或**.jasper 注:java导出报表与web项目显示报表方法其实是相同的,只不过有一句代码不同,如下 ...

  7. Vertx上传 官网Demo Java版

    package io.vertx.example.web.upload; import io.vertx.core.AbstractVerticle; import io.vertx.example. ...

  8. 苹果官网 demo The Elements 阅读随笔

    The Elements https://developer.apple.com/library/ios/samplecode/TheElements/Introduction/Intro.html# ...

  9. 安卓、java开发软件官网和相关不错的网站软件下载地址

    java:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html eclipse:htt ...

随机推荐

  1. js获取网页面的高度和宽度

    网页可见区域宽:document.body.clientWidth网页可见区域高:document.body.clientHeight网页可见区域宽:document.body.offsetWidth ...

  2. Docker - rm 命令

    Docker rm 命令 docker rm :删除容器 docker rm [OPTIONS] CONTAINER [CONTAINER...] -f # 通过SIGKILL信号强制删除一个运行中的 ...

  3. js中 onreadystatechange 和 onload的区别

    IE的script 元素只支持onreadystatechange事件,不支持onload事件. FF的script 元素不支持onreadystatechange事件,只支持onload事件. 如果 ...

  4. Spark Streaming连接Kafka的两种方式 direct 跟receiver 方式接收数据的区别

    Receiver是使用Kafka的高层次Consumer API来实现的. Receiver从Kafka中获取的数据都是存储在Spark Executor的内存中的,然后Spark Streaming ...

  5. Java基础_0303:封装性初步

    class Book { // 定义一个新的类 private String title; // 书的名字 private double price; // 书的价格 public void getI ...

  6. vue Transfer 穿梭框

    Element Transfer组件默认支持单个list的穿梭 现业务需要支持两个list,效果如下 实现思路: 1.有选中才可穿梭 2.已穿梭源数据减少.目标增加(双向) 边界条件: 存储旧List ...

  7. linux 僵屍进程

    参考链接 :  http://soft.chinabyte.com/os/5/12172005.shtml

  8. Mysql大文本类型

    TEXT 一个BLOB或TEXT列,最大长度为65535(2^16-1)个字符. MEDIUMTEXT 一个BLOB或TEXT列,最大长度为16777215(2^24-1)个字符. LONGTEXT ...

  9. R大

    知乎链接 https://www.zhihu.com/collection/114506870

  10. google 开源项目阅读计划

    1. glog 2. gflags 3. carto 4. ...