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.//页面接收参数并自动提交
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接口开发相关推荐
- java 调用支付宝支付接口
最近公司在做支付模块,在接入过程中遇到了很多坑,费了不少事,现在分享一下接入方法,也记录一下,以后可能还用的到.用的是支付宝的即时到帐支付功能和微信的扫码支付功能,相比起来,个人感觉支付宝的文档和接入 ...
- 使用Java完成网上支付(1. 银联)
一. 账号申请 1. 打开网址,并注册 https://merchant.unionpay.com/cas/login?service=http%3A%2F%2Fmerchant.unionpay.c ...
- java 银联支付反馈,微信支付/支付宝支付/银联支付,对比加总结(Java服务端)
今天来说讲支付.前端 工做到如今,接入过好几个项目的支付,其中涉及到了微信支付.支付宝支付.银联支付.服务器 三种支付的对接感觉其实总体上大同小异.都遵循同一个流程:微信 1).商户APP向商户服务器 ...
- java商户平台微信支付宝支付_微信支付/支付宝支付/银联支付,对比加总结(Java服务端)...
今天来讲讲支付. 工作到现在,接入过好几个项目的支付,其中涉及到了微信支付.支付宝支付.银联支付. 三种支付的对接感受其实整体上大同小异.都遵循同一个流程: 1).商户APP向商户服务器请求生成订单 ...
- java调用webservice_笃学私教:Java开发网站架构演变过程-从单体应用到微服务架构详解...
原标题:笃学私教:Java开发网站架构演变过程-从单体应用到微服务架构详解 Java开发网站架构演变过程,到目前为止,大致分为5个阶段,分别为单体架构.集群架构.分布式架构.SOA架构和微服务架构.下 ...
- android之银联支付,android端银联支付
简单记录一下如何继承银联支付 下载银联支付的demo 1:拷贝sdk目录下的UPPayAssistEx.jar到libs目录下 2.data.bin至工程的res/drawable目录下 3:根据需要 ...
- java调用c语言编辑器_如何用java调用c语言编译器实现在线编译c语言?
要在java中调用c语言的库,需要使用Java提供了JNI. 举例说明 在c语言中定义一个 void sayHello()函数(打印Hello World);然后在Java中调用这个函数显示Hello ...
- android java 调用js_android WebApp 集成方式怎么使用java调用js
WebAPP集成,本地打包,有两种方式java js通信 1.DCloud插件模式,参考SDK DEMO的H5Plugin, Java:继承StandardFeature写接口. public cla ...
- mac java调用浏览器_mac osx 下 浏览器 开启 java
工作环境mac osx 浏览器 chrome:63.0.3239.132 (Official Build) (64-bit) firefox: 57.0.4 (64 位) safari:Version ...
- Java调用支付宝支付接口
一.场景:公司需要在网站上进行支付宝支付. 二.API:使用支付宝开放平台的支付能力-即时到账接口.支付宝开放平台链接 三.分析: 1.支付宝的文档比较容易看,主要是有相应的DEMO,我这里看的DEM ...
最新文章
- ACE_Select_Reactor 一 ——入门
- 【Maps】【E都市】
- 简单的线路的界面的调用方法
- Linux常用命令(补充)--其他
- 广东省8月份同城快递和上门签收分析-你的签收率是多少?
- 【霸指拓客】抖音自动引流脚本源码终端开发
- 学习笔记(二十一)—— 使用SMTP发送电子邮件
- android appwidget桌面插件,Android:AppWidget、桌面小部件
- 小白刷LeeCode(算法篇)3
- QT 字符串转二维码
- java protobuffer序列化_Java数据通讯中使用Googgle Protobuf 序列化与反序列化
- css文字和数字或者英文对不齐解决方案
- continue语句可以用在switch语句和3种循环语句中_必须知道的C语言知识细节:break、continue语句区别...
- 猜拳游戏python实现
- 数字时钟程序c语言,C语言实现电子时钟程序
- mac的rubywoo怎么读_迪奥999和mac ruby woo哪个更好看_有什么区别
- Horizon8基础环境准备02——ADDNSDHCP
- matplotlib从绘图到排版
- 事业编职业技能测试刷题软件,事业单位考试做题软件哪个好?试试这个简直不要太好用啦!...
- java sca_SCA java编码入门
热门文章
- 论文阅读 Safe Local Exploration for Replanning in Cluttered Unknown Environments
- 【元胞自动机】元胞自动机地铁火灾疏散模型【含Matlab源码 246期】
- Nginx 实现文件夹上传(保留目录结构)
- Django毕业设计题目推荐电影推荐系统
- 【算法】独立任务最优调度问题
- Unity-tweak-tool插件
- linux如何查看证书过期时间,shell脚本:通过域名获取证书的过期时间
- 【多媒体编解码】Openmax IL (一)官方文档概述
- 苹果 iOS/iPadOS 14.4 beta 2新功能
- PCB相关知识-焊盘Pad