银联在线支付---利用测试案例代码模拟支付应用(修改)

 一、工程搭建

新建一个Web工程,命名为PayOnLine,把你下载好的案例代码拷贝到你的工程下,我的代码目录如下:


acp_sdk.properties配置文件需要放在类根路劲下,里面的参数配置信息,下面是案例提供的配置提示:
0. 注意:
1)依赖包和upacp_sdk-1.0.0.jar都需加到buildpath。
2)acp_sdk.properties放到src根目录下。另外如果用的不是eclipse/MyEclipse可能这个文件默认不会被拷贝到classes目录下,导致加载不到这个文件,请注意修改设置或手工拷贝这个文件。1. 修改acp_sdk.properties,
1) 证书改下自己本地路径,证书密码测试环境就是000000,生产自己修改。2.1 wap/网关的消费:调用Form_6_2_FrontConsume,商户号请改为自己的商户号,会生成一段html,把它打印到浏览器即可跳转支付页面。比如可以写一个servlet直接打印页面,或者把html复制到一个记事本里后缀改html再浏览器打开。2.2 控件的消费:调用Form_6_2_AppConsume,商户号请改为自己的商户号,会访问后台获取tn,把tn传给你们手机app。支付卡:
平安银行借记卡:6216261000000000018
证件号:341126197709218366
手机号:13552535506
密码:123456
姓名:全渠道
短信验证码:123456(wap/控件)111111(PC)
(短信验证码记得点下获取验证码之后再输入)3. Form_6_5_Query为查询接口,商户号请改为自己的商户号,注意修改txnTime和orderId为被查询交易的txnTime和orderId。4. Form_6_3_ConsumeUndo和Form_6_4_Refund分别为消费撤销接口、退货接口,商户号请改为自己的商户号,注意修改origQryId为自己需要退款的那笔消费的queryId。5. FrontRcvResponse和BackRcvResponse为前后台通知接口,为2个Servlet,请注意配置web.xml,另外FrontRcvResponse会使用“其他文件/utf8_result.jsp”。交易完成会调用通知接口。6. Form_6_6_FileTransfer为文件下载接口。
文件下载接口注意点:
1) 请使用自己的【真实商户号】测试。开发包的商户号、自助化测试平台申请的商户号都是不能测试文件下载的,会反http状态500,内容为空。如果真实商户号下载提示无文件但确定有交易,一般是商户号没有文件传输类交易的权限,如需要开通请联系业务运营中心operation@unionpay.com。
2) 请先建立好文件夹并确保有文件写入权限。7. 如需使用gbk编码,请自行修改代码内写的编码和代码文件本身的编码为gbk。8. 关于配置文件加载问题:
SDKConfig.getConfig().loadPropertiesFromSrc()这句话在整个工程启用的时候执行一次即可,其余地方都可删除。
比如可以建立个servlet,初始化时调用,web.xml中设置成启动时就加载这个servlet:InitServlet.java:
public class InitServlet extends HttpServlet{@Overridepublic void init() throws ServletException {SDKConfig.getConfig().loadPropertiesFromSrc();// 从classpath加载acp_sdk.properties文件super.init();}
}web.xml:<servlet><servlet-name>InitServlet</servlet-name><servlet-class>com.unionpay.acp.demo.InitServlet</servlet-class><load-on-startup>0</load-on-startup></servlet>9. 日志文件路径问题:
可rar打开upacp_sdk-1.0.0.jar,修改里面log4j.properties配置的路径。10. 切换生产时请一定看下https://open.unionpay.com/ajweb/help/faq/listByType?faqType=prod中的问题,特别是“切换生产有哪些需要改动的地方”的这个FAQ。

到此工程搭建完毕.

Form_6_2_FrontConsume.java 就是对应的网关支付案例代码,改动如下三行代码就可以用了。




直接运行,可以看到控制台最后一行,打印出了HTML代码,把它复制出来,放在一个空的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="txnType" id="txnType" value="01" /><inputtype="hidden" name="frontUrl" id="frontUrl"value="http://localhost:8080/PayOnLine/acp_front_url.do" /><inputtype="hidden" name="currencyCode" id="currencyCode" value="156" /><inputtype="hidden" name="channelType" id="channelType" value="08" /><inputtype="hidden" name="merId" id="merId" value="777290058112538" /><inputtype="hidden" name="txnSubType" id="txnSubType" value="01" /><inputtype="hidden" name="txnAmt" id="txnAmt" value="1" /><inputtype="hidden" name="version" id="version" value="5.0.0" /><inputtype="hidden" name="signMethod" id="signMethod" value="01" /><inputtype="hidden" name="backUrl" id="backUrl"value="http://localhost:8080/PayOnLine/acp_back_url.do" /><inputtype="hidden" name="certId" id="certId"value="124876885185794726986301355951670452718" /><inputtype="hidden" name="encoding" id="encoding" value="UTF-8" /><inputtype="hidden" name="bizType" id="bizType" value="000201" /><inputtype="hidden" name="signature" id="signature"value="qlFuEQS9ADJ0iN+DkG4z09hbAG7a7MqwZPkbQvzDcURxE9ob4N/9/wTq11iQedygOCZkSFIU49dy41pe1pVN09vDOq3uS3TTmeQh3vchh1VmvcIBV+pWeBeq4FGhkY5TudqU/r52W9Sw8syc5YjU14UvRoPUOvfZLGND23JhGsY=" /><inputtype="hidden" name="orderId" id="orderId" value="20150422172935" /><inputtype="hidden" name="accessType" id="accessType" value="0" /><inputtype="hidden" name="txnTime" id="txnTime" value="20150422172935" /></form>
</body>
<script type="text/javascript">document.all.pay_form.submit();
</script>
</html>

在IE浏览器里,运行后就可以看见:




输入上一篇说的测试卡号,点击下一步:



输入测试的参数信息,就可以完成0.01元的支付了,感觉怎么样,就是这么简单。



为了方便,我提供下网关支付的案例代码链接,供大家下载。
案例代码


测试遇到的问题

1.运行JAVA代码控制台报错,请确认你的测试证书是否配置好了.
#########################签名证书配置 ################################
######(以下配置为测试环境:入网测试环境用,生产环境配置见下述文档说明))#######
##签名证书路径
acpsdk.signCert.path=D\:\\certs\\PM_700000000000001_acp.pfx
##签名证书密码
acpsdk.signCert.pwd=000000
##签名证书类型
acpsdk.signCert.type=PKCS12

上面配置的路径里必须要有对应的证书文件。证书可以在官网上的案例代码里下载.


2. JAVA运行后得到的HTML浏览器打开后提示如下错误:



经查官网上的应答码说如下:
应答码列表

【所属系统:】 全渠道

【应答码:】 5131008

应答码描述:无此交易权限

解决方案 :

wap和网关支付的时候会报这个错误,为没开权限。如使用的是真实商户号,请联系签约的业务或者业务运营中心申请开放权限。 如果用的是自助化平台的商户号,需要选一下要测试这个产品,方法为:右上角-我的产品-未测试,在跳转网关支付/手机网页支付点开始测试,点击后10分钟生效。



操作步骤如下:


点击开始测试即可。








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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492347.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图像处理-线性滤波-1 基础(相关算子、卷积算子、边缘效应)

这里讨论利用输入图像中像素的小邻域来产生输出图像的方法&#xff0c;在信号处理中这种方法称为滤波&#xff08;filtering&#xff09;。其中&#xff0c;最常用的是线性滤波&#xff1a;输出像素是输入邻域像素的加权和。1.相关算子&#xff08;Correlation Operator)定义&a…

力拎30磅!波士顿动力物流机器人Handle亮相,还会摆货架

来源&#xff1a;机器之心摘要&#xff1a;这是一个会堆箱子的机器人。自 2013 年被谷歌收购后&#xff0c;波士顿动力一直就是机器人公司中的「网红」&#xff0c;每次新视频的发布都能引起业内极大的关注。后来&#xff0c;因种种原因&#xff0c;波士顿动力于 2017 年被谷歌…

MFC基础类及其层次结构

MFC基础类及其层次结构 从类CComdTarget层层派生出绝大多数MFC中的类&#xff0c;其层次结构为下图所示. 从根类Cobject层层派生出绝大多数MFC中的类&#xff0c;其层次结构为下图所示. MFC中重点类 其中&#xff0c;CObject类是MFC提供的绝大多数类的基类。该类完成动态空间的…

6个整改!2018年国家重点实验室评估结果公布

来源&#xff1a;科技部网站近日&#xff0c;国家科技部公布了2018年工程和材料领域国家重点实验室评估处理结果。本次64个实验室参加评估&#xff0c;其中工程领域共有43个&#xff0c;材料领域共有21个。评估结果显示&#xff0c;共有6个实验室要求整改&#xff0c;没有实验室…

新智能时代颠覆情报的未来

来源&#xff1a;王飞跃的科学网博客摘要&#xff1a;人工情报机构以“数字”和软件的形式记录或承载了一个实际情报机构的知识、行动和组织等KAO一体化的步骤与过程。访中科院自动化研究所复杂系统管理与控制国家重点实验室主任 王飞跃本期嘉宾&#xff1a;王飞跃&#xff0c;…

MFC实现图像灰度、采样和量化功能详解

本文主要讲述基于VC6.0 MFC图像处理的应用知识&#xff0c;主要结合自己大三所学课程《数字图像处理》及课件进行讲解&#xff0c;主要通过MFC单文档视图实现显示BMP格式图片&#xff0c;并通过Bitmap进行灰度处理、图片采样和量化功能。 个人认为对初学者VC6.0可能还是…

97页PPT,读懂自动驾驶全产业链发展!

来源&#xff1a;兴业证券近年来&#xff0c;汽车电子正在朝着电动化、网联化、智能化、共享化方向发展&#xff0c;尤其是大幅精进的自动驾驶技术备受关注。本文汇总了自动驾驶相机、雷达、高精地图等产业链情况&#xff0c;从中可以看出汽车无人驾驶行业蓝图。如今&#xff0…

MFC对话框绘制灰度直方图

本文主要讲述基于VC6.0 MFC图像处理的应用知识&#xff0c;主要结合自己大三所学课程《数字图像处理》及课件进行回忆讲解&#xff0c;主要通过MFC单文档视图实现点击弹出对话框绘制BMP图片的灰度直方图&#xff0c;再获取平均灰度、中指灰度和标准差等值。文章比较详细基础&am…

一张图看懂华为2018年年报

来源&#xff1a;华为摘要&#xff1a;3 月 29 日&#xff0c;华为发布了 2018 年年度报告。报告显示&#xff0c;华为在 2018 的营收为 7212.02 亿元&#xff08;约合 1051.91亿美元&#xff09;&#xff0c;同比增长 19.5%&#xff0c;净利润 593 亿元人民币&#xff0c;同比…

MFC图像点运算之灰度线性变化、灰度非线性变化、阈值化和均衡化处理

本文主要讲述基于VC6.0 MFC图像处理的应用知识&#xff0c;主要结合自己大三所学课程《数字图像处理》及课件进行讲解&#xff0c;主要通过MFC单文档视图实现显示BMP图片点运算处理&#xff0c;包括图像灰度线性变换、灰度非线性变换、图像阈值化处理、图像均衡化处理等知识&am…

马化腾:5G和AI双核驱动产业互联网进入“快车道”

来源&#xff1a;腾讯科技腾讯科技讯 3月30至31日&#xff0c;2019中国&#xff08;深圳&#xff09;IT领袖峰会以“IT新未来&#xff1a;5G与人工智能”为主题&#xff0c;汇聚了众多科技领袖和各界精英&#xff0c;聚焦未来通信、工业互联网、数字城市、金融科技等热门话题。…

MFC空间几何变换之图像平移、镜像、旋转、缩放

本文主要讲述基于VC6.0 MFC图像处理的应用知识&#xff0c;主要结合自己大三所学课程《数字图像处理》及课件进行讲解&#xff0c;主要通过MFC单文档视图实现显示BMP图片空间几何变换&#xff0c;包括图像平移、图形旋转、图像反转倒置镜像和图像缩放的知识。同时文章比较详细基…

超级干货:一文看懂5G产业链及投资机会

来源&#xff1a;新材料在线摘要&#xff1a;本文将讲述5G行业概况、产业链结构、上游关键原材料、本行业竞争格局及材料重点应用领域。报告合集涵盖5G关键材料、5G天线、氮化镓半导体、导热材料、电磁屏蔽材料、高频覆铜板基材、微波介质陶瓷、先进封装、手机外壳等九大市场研…

MFC图像增强之图像普通平滑、高斯平滑、Laplacian、Sobel、Prewitt锐化

本文主要讲述基于VC6.0 MFC图像处理的应用知识&#xff0c;主要结合自己大三所学课程《数字图像处理》及课件进行讲解&#xff0c;主要通过MFC单文档视图实现显示BMP图像增强处理&#xff0c;包括图像普通平滑、高斯平滑、不同算子的图像锐化知识。希望该篇文章对你有所帮助&am…

南京大学教授施斌及其团队—— 光纤变“神经” 大地能感知

来源&#xff1a;人民日报你能相信吗&#xff1f;一根头发丝粗细的光纤&#xff0c;根据不同地质环境和多场监测要求&#xff0c;穿上各种“定制”的外衣&#xff0c;就能变身敏感强健的“大地感知神经”&#xff0c;使得大地一有灾害异动&#xff0c;远在千里之外的监测系统就…

MFC详解显示BMP格式图片

本文主要是讲述《数字图像处理》系列栏目中的第一篇文章.主要详细介绍了BMP图片格式,同时使用C和MFC显示BMP格式,主要结合自己的《数字图像处理》课程和以前的项目叙述讲解. 一.BMP图片格式定义 BMP文件格式是Windows操作系统推荐和支持的标准图像文件格式,是一种将内存或显示…

0pencv——图像腐蚀

1、代码如下&#xff1a; #include "stdafx.h" #include <opencv2/opencv.hpp>using namespace cv;int main() {Mat srcImage imread("小狗1.jpg");imshow("显示图像", srcImage);Mat element getStructuringElement(MORPH_RECT, Size(…

腾讯研究院发布:《人工智能+制造产业发展研究》报告

来源&#xff1a;腾讯研究院摘要&#xff1a;工业革命以后的“自动化”概念追求的是机器自动生产&#xff0c;本质是“机器替人”&#xff0c;强调在完全不需要人的情况下进行不间断的大规模机器生产&#xff1b;而“智能化”追求的是机器的柔性生产&#xff0c;本质是“人机协…

Opencv——图像模糊

1、代码如下&#xff1a; #include "stdafx.h" #include <opencv2/opencv.hpp>using namespace cv;int main() {Mat srcImage imread("小狗1.jpg");imshow("原图像", srcImage);Mat dstImage;blur(srcImage, dstImage, Size(5, 5));imsh…

Android开发中依赖注入的应用

什么是依赖注入&#xff1f; 依赖是指一个对象持有其他对象的引用。依赖注入则是将这些依赖对象传递给被依赖对象&#xff0c;而不是被依赖对象自己创建这些对象。 public class MyClass{private AnotherClass mAnotherObject;public MyClass(){mAnotherObject new AnotherCla…