精华内容
下载资源
问答
  • %> > //页面交易接收URL,长度不要超过80个字节,必填 > //支付网关号,可选 //商户私有域,长度不要超过60个字节,可选 > //256字节长的ASCII码,为此次交易提交关键数据的数字签名,必填 > form1.submit();...

    首先需要三样东西

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

    //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);

    展开全文
  • 【实例简介】银联在线支付的测试案例代码【实例截图】【核心代码】PayOnLine└── PayOnLine├── src│ ├── acp_sdk.properties│ └── com│ └── unionpay│ └── acp│ └── demo│ ├── ...

    【实例简介】

    银联在线支付的测试案例代码

    【实例截图】

    【核心代码】

    PayOnLine

    └── PayOnLine

    ├── src

    │   ├── acp_sdk.properties

    │   └── com

    │   └── unionpay

    │   └── acp

    │   └── demo

    │   ├── BackRcvResponse.java

    │   ├── DemoBase.java

    │   ├── Form_6_2_AppConsume.java

    │   ├── Form_6_2_FrontConsume.java

    │   ├── Form_6_3_ConsumeUndo.java

    │   ├── Form_6_4_Refund.java

    │   ├── Form_6_5_Query.java

    │   ├── Form_6_6_FileTransfer.java

    │   ├── Form_6_7_1_AuthDeal_App.java

    │   ├── Form_6_7_1_AuthDeal_Front.java

    │   ├── Form_6_7_2_AuthUndo.java

    │   ├── Form_6_7_3_AuthFinish.java

    │   ├── Form_6_7_4_AutnFinishUndo.java

    │   ├── FrontRcvResponse.java

    │   └── ReadMe.txt

    └── WebRoot

    ├── index.jsp

    ├── META-INF

    │   └── MANIFEST.MF

    ├── test.html

    ├── utf8_result.jsp

    └── WEB-INF

    ├── classes

    │   ├── acp_sdk.properties

    │   └── com

    │   └── unionpay

    │   └── acp

    │   └── demo

    │   ├── BackRcvResponse.class

    │   ├── DemoBase.class

    │   ├── Form_6_2_AppConsume.class

    │   ├── Form_6_2_FrontConsume.class

    │   ├── Form_6_3_ConsumeUndo.class

    │   ├── Form_6_4_Refund.class

    │   ├── Form_6_5_Query.class

    │   ├── Form_6_6_FileTransfer.class

    │   ├── Form_6_7_1_AuthDeal_App.class

    │   ├── Form_6_7_1_AuthDeal_Front.class

    │   ├── Form_6_7_2_AuthUndo.class

    │   ├── Form_6_7_3_AuthFinish.class

    │   ├── Form_6_7_4_AutnFinishUndo.class

    │   ├── FrontRcvResponse.class

    │   └── ReadMe.txt

    ├── lib

    │   ├── bcprov-jdk16-1.45.jar

    │   ├── commons-codec-1.6.jar

    │   ├── commons-lang-2.5.jar

    │   ├── log4j-1.2.17.jar

    │   ├── slf4j-api-1.5.11.jar

    │   ├── slf4j-log4j12-1.5.11.jar

    │   └── upacp_sdk-1.0.0.jar

    └── web.xml

    15 directories, 44 files

    展开全文
  • 银联支付Java开发

    2018-06-27 13:47:00
    注:原来来源于: 《 银联支付Java开发 》银联的demo写的不错,基本上可以直接使用。首先是对acp_sdk.properties的内容修改,注意这个文件的文件名不能进行修改。对于文件内的证书路径以及证书对应的密码进行修改。 ...


    注:原来来源于: 《  银联支付Java开发  》


    银联的demo写的不错,基本上可以直接使用。 
    首先是对acp_sdk.properties的内容修改,注意这个文件的文件名不能进行修改。 
    对于文件内的证书路径以及证书对应的密码进行修改。

    修改完这个文件后,需要对DemoBase这个类中的frontUrl,backUrl进行修改,这个是银联支付后向服务器通知的前台以及后台地址。 
    frontUrl主要处理的前台界面展示,backUrl主要处理后台业务逻辑。

    注意:这两个地址需要是外网地址,否则将无法收到回调信息。

    然后对于Form_6_2_FrontConsume类中的信息进行相应的修改,直接访问服务,会返回给你一段html字符串,把这段html直接传到前台加到页面上。这段代码会自动提交数据,会弹出银联支付的界面。

    注意:测试环境下,微信浏览器无法弹出支付界面,需要换生成环境的证书才能正常的弹出支付界面。

    支付成功后,银联会向你设置的backUrl发送成功信息,具体接受方法如下:

    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    支付成功后,界面会有一个返回商户的按钮,那个按钮返回的界面就是在frontUrl设置。获取回调信息的方法与上面相同,就是在后面需要把界面导向你想要显示的界面,顺便带上返回的参数。

    这样就顺利的完成了银联支付的流程。

    转载于:https://www.cnblogs.com/ios9/p/9233528.html

    展开全文
  • %> > //页面交易接收URL,长度不要超过80个字节,必填 > //支付网关号,可选 //商户私有域,长度不要超过60个字节,可选 > //256字节长的ASCII码,为此次交易提交关键数据的数字签名,必填 > form1.submit();...

    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

    展开全文
  • 一、环境1、Eclipse Juno R22. Tomcat 73. Jersey 2.7 下载地址(https://jersey.java.net/download.html)二、流程1.Eclipse 中创建一个 Dynamic Web Project ,1、下载jar包netpayclient.jar;...这个要向银联方...
  • 开发官网:银联支付开发平台 支付流程: 正常的支付流程都是一样, 2 是支付请求,将返回的支付结果html在浏览器打开返回给用户 5 是同步支付结果写入(这里是完成支付后点击返回商户按钮触发) 6 是异步支付结果...
  • 各位路过的大神 小女纸在此求微信支付开发 和银联支付开发的教程!!谢谢!!!!!~~~~~
  • 注:原文来源与 《 Java 银联支付官网demo测试及项目整合代码 》银联支付(网关支付B2C) 一、测试官网demo a)下载官网开发包,导入eclipse等待修改(下载的开发包没有servlet jar包自己在Tomcat找一个) b)...
  • 由于公司App开发的支付需求,需要后台用Java来完成银联支付接入接口。首先你要先进入银联开发登录地址open.unionpay.com找到手机控件支付模块,完成相应的入网步骤准备工作做完之后银联会对你发放相应的技术文档这里...
  • 3.根据需求(这里我们肯定使用JAVA)选择不同的开发包,导入到项目中 4.修改 Java Version SDK (通用版)\ACPSample_B2C\src 文件中acp_sdk.propertites 证书以及配置回调的地址,源码压缩包中有测试需要使用的证书 ...
  • 对接银联支付接口详解java版mac开发

    千次阅读 2018-02-14 11:44:00
    首先,这是一篇工具类的文章了,也是为了备忘,需求就是微信公众号的开发后台对接支付,有银联,支付宝,微信等,我负责写银联的接口。明天大年三十,今天在公司码完字也要灰走了,祝大家新年快乐,发大财。 先说...
  • 银联在线支付接口 开发文档+开发包(java)

    千次下载 热门讨论 2010-02-07 16:02:39
    银联在线支付 开发文档+开发jar包 for java NetPayClient2.5 内含1pdf+1jar包+1说明txt
  • 下载,选择网关支付,下载网管支付产品技术开发包,里面有一些文档,你也可以下载下来看看。3、开发工具Eclipse+Tomcat7.04、导入工程 工程下面有一个readme.txt 可以先看看了解一下工程目录正文开始一、修...
  • UnionPay 中国银联在线支付 开发包 (Java)
  • 最新银联网关支付产品技术开发java net php 包括demo和接入文档
  • 银联支付-手机网页支付接口开发

    千次阅读 2015-11-18 21:43:09
    这2天因为项目需要,银联支付的手机网页支付,已经把测试ok了, 所以这里做个记录。 1,到银联的官网下载demo,注意官网是按照平台区别的(pc端、手机网页、手机控件),下载手机网页版本的demo。demo又根据服务器...
  • 3.下载开发包,此处用网关支付产品开发包  4.导入eclipse  5把下载的商户私钥证书重命名为acp_test_sign.pfx  把下载的银联公钥证书重命名为acp_test_verify_sign.cer  在D盘新建文件夹certs,把工程sr/...

空空如也

空空如也

1 2 3 4 5
收藏数 99
精华内容 39
关键字:

java银联支付开发

java 订阅