银联在线java接口开发_银联在线Java接口开发
netpayclinet.jar
根据项目工程的需要放置对应路径下
用于提供数字签名的方法调用
MerPrk.key
可以放置到任意路径下,但是需要调用方法指定文件位置和名称
商户签名私钥
PgPubk.key
可以放置到任意路径下,但是需要调用方法指定文件位置和名称
ChinaPay签名公钥
把jar包放进项目lib里后直接调用方法:
1.创建公/私钥对象buildKey
chinapay.PrivateKey key=new chinapay.PrivateKey();
chinapay.SecureLink t;
boolean flag;
//buildKey用于创建私/公钥的对象,用于签名或者验证签名,该方法在类chinapay.PrivateKey中。
//第一个参数:MerId 商户号,长度为15个字节的数字串,由ChinaPay分配。
//第二个参数:使用私/公钥的方式,固定为0
//第三个参数:私/公钥的文件路径(包含文件名称)baseDiskPath, File.separator(不同系统自适应路径)
String baseDiskPath = request.getSession().getServletContext().getRealPath(File.separator);
flag=key.buildKey(MerId,0,baseDiskPath+File.separator+"chinapaykey"+File.separator+"MerPrK.key");
if (flag==false)
{
System.out.println("build key error!");
}else {
System.out.println("build key ok!");
}
2.订单签名函数signOrder 该方法在类chinapay.SecureLink中
String MerId, OrdId, TransAmt, CuryId, TransDate, TransType,ChkValue;
// 对订单的签名,参数说明见页面表单
ChkValue= t.signOrder(MerId, OrdId, TransAmt, CuryId, TransDate, TransType) ;
//将订单数据送往页面提交
request.setAttribute("ChkValue", ChkValue);
request.setAttribute("TransAmt", TransAmt);
request.setAttribute("OrdId", OrdId);
request.setAttribute("TransDate", TransDate);
3.//页面接收参数并自动提交
//这里action的内容为提交交易数据的URL地址 http://payment-test.chinapay.com/pay/TransGet为测试地址
//MerId为ChinaPay统一分配给商户的商户号,15位长度,必填
//商户提交给ChinaPay的交易订单号,16位长度,必填
>
//订单交易金额,单位为分,12位长度,左补0,必填
>
//订单交易币种,3位长度,固定为人民币156, 必填
//订单交易日期,8位长度,必填
>
//交易类型,4位长度,必填,取值范围为:"0001"和"0002", 其中"0001"表示消费交易,"0002"表示退货交易
//支付接入版本号,必填,20040916的版本中,如果商户为二级商户,订单号从第5位到第9位必须和商户号的第11位到第15位相同
//后台交易接收URL,必填,长度不要超过80个字节
String BgRetUrl = basePath+"/返回页面"; %>
>
//页面交易接收URL,长度不要超过80个字节,必填
>
//支付网关号,可选
//商户私有域,长度不要超过60个字节,可选
>
//256字节长的ASCII码,为此次交易提交关键数据的数字签名,必填
>
4.验证交易应答函数verifyTransResponse 该方法在类chinapay. SecureLink中
//后台返回页验证
chinapay.PrivateKey key=new chinapay.PrivateKey();
chinapay.SecureLink t;
boolean flag;
boolean flag1;
String MerId, OrdId, TransAmt, CuryId, TransDate, TransType,ChkValue,OrderStatus,Priv1;
String plainData, ChkValue2;
MerId = request.getParameter("merid");
OrdId = request.getParameter("orderno");
TransAmt = request.getParameter("amount");
CuryId = request.getParameter("currencycode");
TransDate = request.getParameter("transdate");
TransType = request.getParameter("transtype");
OrderStatus = request.getParameter("status");
ChkValue = request.getParameter("checkvalue");
Priv1 = request.getParameter("Priv1");
String baseDiskPath = request.getSession().getServletContext().getRealPath(File.separator);
flag=key.buildKey("999999999999999",0,baseDiskPath+File.separator+"chinapaykey"+File.separator+"PgPubk.key");
if (flag==false)
{
//System.out.println("build key error!");
}else {
//System.out.println("build key ok!");
}
t=new chinapay.SecureLink (key);
flag1=t.verifyTransResponse(MerId,OrdId, TransAmt, CuryId, TransDate, TransType, OrderStatus, ChkValue);
------------
demo
订单号0700004350100289订单数量金额>
get方式:
http://payment-test.chinapay.com/pay/TransGet?MerId=001320554110008&OrdId=0001320554110008&TransAmt=000000001234&CuryId=156&TransDate=20130410&TransType=0001&Version=20040916&BgRetUrl=http://www.baidu.com&PageRetUrl=http://www.baidu.com&ChkValue=
00132055411000800132055411000800132055411000800
13205541100080013205541100080013205541100081000800
13205541100081000800132055411000810008001320554110008
18018018011801801801180180013205541100080013205541100
08001320554110008001320554110008001320554110008000080
银联在线java接口开发_银联在线Java接口开发相关推荐
- 在线报名竞赛网站java源码_我用Java写出了一个QQ!可在线聊天(附源码)~
来源:blog.csdn.net/weixin_44048140 正文如下: 一. 功能实现 1.修改功能(密码.昵称.个性签名) 2.添加好友.删除好友 3.单聊功能 4.判断好友是否在线 二. 模 ...
- java 百度api接口开发_百度CFC Java免费 接口
以前只有 nodejs ,后来 新增了python2,今天突然发现支持 Java了 目前nodejs,python2 都有模板,j ava 没有模板 感觉也不需要 百度云CFC 目前 免费,在 ...
- java接口测试工具_【分享】接口工具对比(apipost、jmeter、postman、swagger等)
一.接口都有哪些类型? 接口一般分为两种:1.程序内部的接口 2.系统对外的接口 系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把 数据库共享给你,他只能给你提供一个他们写好 ...
- php在线培训系统 下载_精品在线网校、培训教学、在线教育平台PHP源码分享
最近打算和朋友开一个培训班, 准备搭建一个官网, 于是就在网上淘了一些培训类的网站. 试了4个网站模板源码, 最终觉得这个是最好用的, 而且功能很全很实用. 支持云课堂.考试系统等,最关键的是还有直播 ...
- java osgi web开发_基于 OSGi 和 Spring 开发 Web 应用
开发一个简单的OSGi Web应用实例 一个简单的Web应用 我们写一个简单的 Web 应用 compute.html :计算两个数字的和或乘积.如下图所示: 图1.一个简单例子 一个简单例子.bmp ...
- java 置顶_[置顶]java开发之基础篇2
一.java开发环境的搭建 下载和安装jdk.版本自己看着办! 1 JAVA_HOME C:\Program Files\Java\jdk1.7.0_25 2 path C:\Program File ...
- 没有体现JAVA接口功能_深入浅出分析Java抽象类和接口【功能,定义,用法,区别】...
本文实例讲述了Java抽象类和接口.分享给大家供大家参考,具体如下: 对于OOP编程来说,抽象是它一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:抽象类和接口. 这两者有相似之处也有很 ...
- 安卓系统应用Java什么核心技术_《深入Android应用开发:核心技术解析与最佳实践...
图书目录: 前言 第1章 深入解析Android核心组件和应用框架 1.1 核心组件详解 1.1.1 Activity组件 1.1.2 Service组件 1.1.3 Intent组件 1.1.4 B ...
- 高级java开发_适用于高级Java开发人员的十大书籍
高级java开发 Java是当今最流行的编程语言之一. 有很多适合初学者的书籍. 但是对于那些使用Java进行过一段时间编程的人来说,其中有些人看起来有些简单和多余. 初学者的书没有带来新鲜有趣的想法 ...
- java comparator相等_详解Java中Comparable和Comparator接口的区别
详解Java中Comparable和Comparator接口的区别 发布于 2020-7-20| 复制链接 摘记: 详解Java中Comparable和Comparator接口的区别本文要来详细分析一 ...
最新文章
- 解题报告:【kuangbin带你飞】专题四 最短路练习题
- 二次规划的一个很好的课件网站
- 在Ocelot中使用自定义的中间件(二)
- K12计算机科学标准,计算机科学新主张(K12基础教育) 翻译.pptx
- 64位linux安装mysql数据库吗_Linux下安装Mysql数据库
- 基础强化:深入理解JVM中的方法调用
- ue4渲染速度太慢_推介飞向月球纪录片基于Unreal实时渲染引擎的三维流程化制作...
- 中国水密门市场趋势报告、技术动态创新及市场预测
- layui报错 “Layui hint: 模块名 xxx 已被占用“ 的问题解决方案
- POJ 3321 Apple Tree 【树状数组+建树】
- 596. 超过5名学生的课
- 计算机国际期刊等级,计算机期刊等级(全)
- 【技能】Chrome扩展程序的使用
- LED灯光照明控制协议(系统)- DALI
- linux中流设备_Linux纯干货知识总结|面试专用
- 研发团队建设的心得体会
- 常用商务英语词汇集锦(转载)
- 这一次,F1Delta Time 大奖赛来到欧洲
- 计算机毕业设计Java醋坊定制销售平台(源码+系统+mysql数据库+lw文档)
- (实用篇)php常用字符串函数实例总结【转换,替换,计算,截取,加密】
热门文章
- Hexo博客摘要生成方法
- 编写一个程序,将两个字符串连接起来,不要用strcat 或 strncat 函数。
- 手机图形计算器matlab,图形计算器Mathlab pro版
- mipi的dsi全称_高通mipi dsi代码理解
- HDU4585 Shaolin(treap)
- 苹果手机手机用数据线连接苹果电脑时为何会一直断开无法连接
- Django发送邮件(附代码)
- 60w风扇用多大电容_家里的40W电风扇怎么接电容?该用多大电容?怎么判断好坏?...
- MAC 使用技巧总结
- ftp上传文件到服务器上,ftp上传文件到服务器上