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.//页面接收参数并自动提交

METHOD=POST>

//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码,为此次交易提交关键数据的数字签名,必填

>

form1.submit();

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 调用支付宝支付接口

    最近公司在做支付模块,在接入过程中遇到了很多坑,费了不少事,现在分享一下接入方法,也记录一下,以后可能还用的到.用的是支付宝的即时到帐支付功能和微信的扫码支付功能,相比起来,个人感觉支付宝的文档和接入 ...

  2. 使用Java完成网上支付(1. 银联)

    一. 账号申请 1. 打开网址,并注册 https://merchant.unionpay.com/cas/login?service=http%3A%2F%2Fmerchant.unionpay.c ...

  3. java 银联支付反馈,微信支付/支付宝支付/银联支付,对比加总结(Java服务端)

    今天来说讲支付.前端 工做到如今,接入过好几个项目的支付,其中涉及到了微信支付.支付宝支付.银联支付.服务器 三种支付的对接感觉其实总体上大同小异.都遵循同一个流程:微信 1).商户APP向商户服务器 ...

  4. java商户平台微信支付宝支付_微信支付/支付宝支付/银联支付,对比加总结(Java服务端)...

    今天来讲讲支付. 工作到现在,接入过好几个项目的支付,其中涉及到了微信支付.支付宝支付.银联支付. 三种支付的对接感受其实整体上大同小异.都遵循同一个流程: 1).商户APP向商户服务器请求生成订单 ...

  5. java调用webservice_笃学私教:Java开发网站架构演变过程-从单体应用到微服务架构详解...

    原标题:笃学私教:Java开发网站架构演变过程-从单体应用到微服务架构详解 Java开发网站架构演变过程,到目前为止,大致分为5个阶段,分别为单体架构.集群架构.分布式架构.SOA架构和微服务架构.下 ...

  6. android之银联支付,android端银联支付

    简单记录一下如何继承银联支付 下载银联支付的demo 1:拷贝sdk目录下的UPPayAssistEx.jar到libs目录下 2.data.bin至工程的res/drawable目录下 3:根据需要 ...

  7. java调用c语言编辑器_如何用java调用c语言编译器实现在线编译c语言?

    要在java中调用c语言的库,需要使用Java提供了JNI. 举例说明 在c语言中定义一个 void sayHello()函数(打印Hello World);然后在Java中调用这个函数显示Hello ...

  8. android java 调用js_android WebApp 集成方式怎么使用java调用js

    WebAPP集成,本地打包,有两种方式java js通信 1.DCloud插件模式,参考SDK DEMO的H5Plugin, Java:继承StandardFeature写接口. public cla ...

  9. mac java调用浏览器_mac osx 下 浏览器 开启 java

    工作环境mac osx 浏览器 chrome:63.0.3239.132 (Official Build) (64-bit) firefox: 57.0.4 (64 位) safari:Version ...

  10. Java调用支付宝支付接口

    一.场景:公司需要在网站上进行支付宝支付. 二.API:使用支付宝开放平台的支付能力-即时到账接口.支付宝开放平台链接 三.分析: 1.支付宝的文档比较容易看,主要是有相应的DEMO,我这里看的DEM ...

最新文章

  1. ACE_Select_Reactor 一 ——入门
  2. 【Maps】【E都市】
  3. 简单的线路的界面的调用方法
  4. Linux常用命令(补充)--其他
  5. 广东省8月份同城快递和上门签收分析-你的签收率是多少?
  6. 【霸指拓客】抖音自动引流脚本源码终端开发
  7. 学习笔记(二十一)—— 使用SMTP发送电子邮件
  8. android appwidget桌面插件,Android:AppWidget、桌面小部件
  9. 小白刷LeeCode(算法篇)3
  10. QT 字符串转二维码
  11. java protobuffer序列化_Java数据通讯中使用Googgle Protobuf 序列化与反序列化
  12. css文字和数字或者英文对不齐解决方案
  13. continue语句可以用在switch语句和3种循环语句中_必须知道的C语言知识细节:break、continue语句区别...
  14. 猜拳游戏python实现
  15. 数字时钟程序c语言,C语言实现电子时钟程序
  16. mac的rubywoo怎么读_迪奥999和mac ruby woo哪个更好看_有什么区别
  17. Horizon8基础环境准备02——ADDNSDHCP
  18. matplotlib从绘图到排版
  19. 事业编职业技能测试刷题软件,事业单位考试做题软件哪个好?试试这个简直不要太好用啦!...
  20. java sca_SCA java编码入门

热门文章

  1. 论文阅读 Safe Local Exploration for Replanning in Cluttered Unknown Environments
  2. 【元胞自动机】元胞自动机地铁火灾疏散模型【含Matlab源码 246期】
  3. Nginx 实现文件夹上传(保留目录结构)
  4. Django毕业设计题目推荐电影推荐系统
  5. 【算法】独立任务最优调度问题
  6. Unity-tweak-tool插件
  7. linux如何查看证书过期时间,shell脚本:通过域名获取证书的过期时间
  8. 【多媒体编解码】Openmax IL (一)官方文档概述
  9. 苹果 iOS/iPadOS 14.4 beta 2新功能
  10. PCB相关知识-焊盘Pad