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接口开发相关推荐

  1. 在线报名竞赛网站java源码_我用Java写出了一个QQ!可在线聊天(附源码)~

    来源:blog.csdn.net/weixin_44048140 正文如下: 一. 功能实现 1.修改功能(密码.昵称.个性签名) 2.添加好友.删除好友 3.单聊功能 4.判断好友是否在线 二. 模 ...

  2. java 百度api接口开发_百度CFC Java免费 接口

    以前只有 nodejs ,后来 新增了python2,今天突然发现支持 Java了 目前nodejs,python2 都有模板,j    ava 没有模板 感觉也不需要 百度云CFC 目前 免费,在 ...

  3. java接口测试工具_【分享】接口工具对比(apipost、jmeter、postman、swagger等)

    一.接口都有哪些类型? 接口一般分为两种:1.程序内部的接口 2.系统对外的接口 系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把 数据库共享给你,他只能给你提供一个他们写好 ...

  4. php在线培训系统 下载_精品在线网校、培训教学、在线教育平台PHP源码分享

    最近打算和朋友开一个培训班, 准备搭建一个官网, 于是就在网上淘了一些培训类的网站. 试了4个网站模板源码, 最终觉得这个是最好用的, 而且功能很全很实用. 支持云课堂.考试系统等,最关键的是还有直播 ...

  5. java osgi web开发_基于 OSGi 和 Spring 开发 Web 应用

    开发一个简单的OSGi Web应用实例 一个简单的Web应用 我们写一个简单的 Web 应用 compute.html :计算两个数字的和或乘积.如下图所示: 图1.一个简单例子 一个简单例子.bmp ...

  6. java 置顶_[置顶]java开发之基础篇2

    一.java开发环境的搭建 下载和安装jdk.版本自己看着办! 1 JAVA_HOME C:\Program Files\Java\jdk1.7.0_25 2 path C:\Program File ...

  7. 没有体现JAVA接口功能_深入浅出分析Java抽象类和接口【功能,定义,用法,区别】...

    本文实例讲述了Java抽象类和接口.分享给大家供大家参考,具体如下: 对于OOP编程来说,抽象是它一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:抽象类和接口. 这两者有相似之处也有很 ...

  8. 安卓系统应用Java什么核心技术_《深入Android应用开发:核心技术解析与最佳实践...

    图书目录: 前言 第1章 深入解析Android核心组件和应用框架 1.1 核心组件详解 1.1.1 Activity组件 1.1.2 Service组件 1.1.3 Intent组件 1.1.4 B ...

  9. 高级java开发_适用于高级Java开发人员的十大书籍

    高级java开发 Java是当今最流行的编程语言之一. 有很多适合初学者的书籍. 但是对于那些使用Java进行过一段时间编程的人来说,其中有些人看起来有些简单和多余. 初学者的书没有带来新鲜有趣的想法 ...

  10. java comparator相等_详解Java中Comparable和Comparator接口的区别

    详解Java中Comparable和Comparator接口的区别 发布于 2020-7-20| 复制链接 摘记: 详解Java中Comparable和Comparator接口的区别本文要来详细分析一 ...

最新文章

  1. 解题报告:【kuangbin带你飞】专题四 最短路练习题
  2. 二次规划的一个很好的课件网站
  3. 在Ocelot中使用自定义的中间件(二)
  4. K12计算机科学标准,计算机科学新主张(K12基础教育) 翻译.pptx
  5. 64位linux安装mysql数据库吗_Linux下安装Mysql数据库
  6. 基础强化:深入理解JVM中的方法调用
  7. ue4渲染速度太慢_推介飞向月球纪录片基于Unreal实时渲染引擎的三维流程化制作...
  8. 中国水密门市场趋势报告、技术动态创新及市场预测
  9. layui报错 “Layui hint: 模块名 xxx 已被占用“ 的问题解决方案
  10. POJ 3321 Apple Tree 【树状数组+建树】
  11. 596. 超过5名学生的课
  12. 计算机国际期刊等级,计算机期刊等级(全)
  13. 【技能】Chrome扩展程序的使用
  14. LED灯光照明控制协议(系统)- DALI
  15. linux中流设备_Linux纯干货知识总结|面试专用
  16. 研发团队建设的心得体会
  17. 常用商务英语词汇集锦(转载)
  18. 这一次,F1Delta Time 大奖赛来到欧洲
  19. 计算机毕业设计Java醋坊定制销售平台(源码+系统+mysql数据库+lw文档)
  20. (实用篇)php常用字符串函数实例总结【转换,替换,计算,截取,加密】

热门文章

  1. Hexo博客摘要生成方法
  2. 编写一个程序,将两个字符串连接起来,不要用strcat 或 strncat 函数。
  3. 手机图形计算器matlab,图形计算器Mathlab pro版
  4. mipi的dsi全称_高通mipi dsi代码理解
  5. HDU4585 Shaolin(treap)
  6. 苹果手机手机用数据线连接苹果电脑时为何会一直断开无法连接
  7. Django发送邮件(附代码)
  8. 60w风扇用多大电容_家里的40W电风扇怎么接电容?该用多大电容?怎么判断好坏?...
  9. MAC 使用技巧总结
  10. ftp上传文件到服务器上,ftp上传文件到服务器上