Php开发银行接口之浦发银行
Php开发银行接口之浦发银行
(提示:下面的经验都是按照开发文档一步一步踩坑过来的,但是不能不看开发文档!!!)
第一步:开发准备
1,安装java,百度下载JDK很方便(我自己网盘有,然后配置环境变量参照http://jingyan.baidu.com/article/3c343ff70bc6ea0d377963df.html)
2,java.zip(开发文档包里面,如果没有这个开发包请联系浦发银行,或者联系我)解压后放到项目中,例:/项目根目录/java/。(其实你放哪儿都行,只要能引入就ok)
2、开发文档包所有的JAR 放到D:/certtest/jar(目前我是测试环境,所以我就放在D盘了) 。
编辑spdb_merchant.properties文件,修改cafile=jks文件路径/ spdbmerchant.jks项,正确指向JKS的存放目录。
3、修改完成后,请将spdb_merchant.properties打包至properties.jar中。命令如下:
(如果该jar命令无法使用,应该是环境变量没配对,可能要cd到java安装目录的bin目录下去执行,如果还是不行就重新安装一个版本,)
jar -cvf properties.jarspdb_merchant.properties
4、在命令行模式cmd下,当前目录为第2步JAR放置目录,输入
java -jar JavaBridge.jar SERVLET:8019
请注意,该命令需要使用本机8019端口,如果被占用,可自行订置端口号,并且需要修改java目录下的java.inc文件中的相应端口号。
java/Java.inc文件:
修改第12行:define("JAVA_HOSTS", "127.0.0.1:8019");
5, 为了php能调用java,安装phpjavabridge(参照:http://blog.csdn.net/qhdcsj/article/details/49131387)
l 保证上面安装了java的环境 JDK安装成功
l 下载php-java-bridge包。地址:http://sourceforge.NET/projects/php-java-bridge/files,点击Binary package 下载JavaBridgeTemplate621.war。使用winrar解压,找到WEB-INF\lib下的JavaBridge.jar文件。
l 使用java.exe打开这个文件:java-jar JavaBridge.jar,在弹出的窗口中选择8080端口。(如果环境变量改对了,应该直接双击这个文件就可以)
l 新建一个php文件测试是否成功。文件内容如下:
l <?php
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
$System = java("java.lang.System");
echo $System->getProperties();
?>
l 在上面中使用URL地址包含,所以需要在php.ini文件allow_url_include设为On。
l 编辑自己的java类,并使用jar.exe打包。将所有需要的包放入jre7/lib/ext目录下。(有新的包放入时需要重新启动JavaBridge.jar。
第二步:安装商户支付网关证书
1,Cmd窗口进入上面提到的certest文件夹下面,并且保证把下面的pfx文件也放在同一个文件夹下面
测试证书:获得测试商户证书 2000615499.pfx(开发文档中有,或者找浦发银行)
将密钥导入商户私钥容器spdbmerchant.jks ,cmd窗口输入命令:
pfx2jks spdb_merchant.properties <pfxfile name> <pfx passwd>-keypassword –new <key passwd>
参数说明:
spdb_merchant.properties 配置文件名称,一般不需要修改名称
<pfx file name> 导出的商户证书私钥文件
<pfx passwd> 导出私钥文件时指定的密码
<key passwd> 商户为自己的证书新设定的密码
测试证书导入,如下所示:(如果无法执行,请看下面的报错解决提示)
1
注意:
1.在导入前,如果您没有修改密钥容器文件的密码!则请不要修改对应的spdb_merchant.properties文件。如果修改了密码则请同时修改该配置文件。
2.这里指定的merchant_key的密码是222222,(我又执行了一次把这个merchant_key的密码写111111)。客户需要按照自己的实际情况输入,并在spdb_merchant.properties文件中的key_password保持一致。
第三步:开始测试:
保证上面提到的java -jarJavaBridge.jar SERVLET:8019 已经执行
测试签名:
在项目中写一个php文件
require_once("java/Java.inc");
java_require("properties.jar;spdbmerchant.jar;spdbmerchant.jar;bcprov-jdk14-127.jar;jsse.jar;jnet.jar;jcert.jar;jce.jar;");
header("content-type:text/html;charset=utf-8");
$merverify = newJava('com.csii.payment.client.core.MerchantSignVerify');
$plain="TranAmt=1.8|transName=MerchantTest|MercCode=990108160003311|TranAbbr=IPER|TermSsn=15144037|OAcqSsn=|MercDtTm=20090615144037|TermCode=001|Remark1=|Remark2=|submit=%3F%A8%A2%3F%3F|OSttDate=|MercUrl=http%3A%2F%2F10.112.9.182%3A81%2Flocal%2Freceive.asp";
$signature=$merverify->merchantSignData_ABA($plain);
print$signature.'<br>';
这里应该返回一个加密后的字符串,goodluck;
报错解决:
1, Notice:undefined property:java_client::$cancelProxyCreationTag……..
打开java/java.inc文件,找到下面的位置,添加下面第二个红框里面的内容。
1, 上面的pfx2jks命令 是非常egg疼的一个问题,开发文档里面直接就使用了这个命令,实际上,这个还需要一个bat文件。我已经上传到资源里面了。
下载后,放到上面提到的jar/文件夹下面,然后cd到jar文件夹执行pfx2jks的命令
Php开发银行接口之浦发银行的更多相关文章
- get_k_data 接口文档 全新的免费行情数据接口
get_k_data 接口文档 全新的免费行情数据接口 原创: Jimmy 挖地兔 2016-11-06 前言在tushareAPI里,曾经被用户喜欢和作为典范使用的API get_hist_data ...
- 支付宝-API接口解析-转账到银行
支付宝-API接口解析-转账到银行 扫码转账 测试地址 解析内容: alipays://platformapi/startapp?appId=09999988&actionType=toCar ...
- App开发:模拟服务器数据接口 - MockApi
为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现Moc ...
- 干货来袭-整套完整安全的API接口解决方案
在各种手机APP泛滥的现在,背后都有同样泛滥的API接口在支撑,其中鱼龙混杂,直接裸奔的WEB API大量存在,安全性令人堪优 在以前WEB API概念没有很普及的时候,都采用自已定义的接口和结构,对 ...
- 12306官方火车票Api接口
2017,现在已进入春运期间,真的是一票难求,深有体会.各种购票抢票软件应运而生,也有购买加速包提高抢票几率,可以理解为变相的黄牛.对于技术人员,虽然写一个抢票软件还是比较难的,但是还是简单看看123 ...
- Java基础Map接口+Collections工具类
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
- Java基础Map接口+Collections
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
- java基础_集合List与Set接口
List接口继承了Collection的方法 当然也有自己特有的方法向指定位置添加元素 add(索引,添加的元素); 移除指定索引的元素 remove(索引) 修改指定索引的元素 set ...
- 【WCF】自定义错误处理(IErrorHandler接口的用法)
当被调用的服务操作发生异常时,可以直接把异常的原始内容传回给客户端.在WCF中,服务器传回客户端的异常,通常会使用 FaultException,该异常由这么几个东东组成: 1.Action:在服务调 ...
随机推荐
- UVa 10382 Watering Grass (区间覆盖贪心问题+数学)
题意:有一块长为l,宽为w的草地,在其中心线有n个喷水装置,每个装置可喷出以p为中心以r为半径的圆, 选择尽量少的装置,把草地全部润湿. 析:我个去啊,做的真恶心,看起来很简单,实际上有n多个坑啊,首 ...
- Python 爬取数据入库mysql
# -*- enconding:etf-8 -*- import pymysql import os import time import re serveraddr="localhost& ...
- 微信小程序底部导航Tabbar
1,底部导航栏这个功能是非常常见的一个功能,基本上一个完成的app,都会存在一个导航栏,那么微信小程序的导航栏该怎么实现呢?经过无数的踩坑,终于实现了,好了,先看看效果图. 2,对于底部导航栏,小程序 ...
- MemCahced 使用及常见问题说明
前言 本文档是针对Memcached使用及常见问题的说明. 一.获取 1. MemCached 官网:http://www.memcached.org 下载:http://memcached.org/ ...
- NSString NSMutableString
// NSString //代开API文档 //Xcode -> help - Documentation and API Reference ...
- ubuntu 14.04查看java的安装路径
有时候,使用apt-get install 安装了某个软件之后,却不知道这个软件的安装路径在哪里. 那怎么样去找出这个软件的安装路径呢? 下面我们java 这个软件为例, 找出ubuntu 14.04 ...
- 构建Maven项目自动下载jar包
使用Maven 自动下载jar包 右键单击项目,将项目 转换成Maven 项目 然后进去Maven官网 http://mvnrepository.com/ 这里有大量的jar包供我们使用,比如我现在要 ...
- [翻译] FastReport 格式化和突出显示
一:格式化一个值 聚合函数的一个特征是,返回的数值没有格式化,如如下例子所示,它使用"SUM": 数据字段通常返回一个格式化的值,这是一个没有任何变化的"文本" ...
- 【算法30】从数组中选择k组长度为m的子数组,要求其和最小
原题链接:codeforce 267 Div2 C 问题描述: 给定长度为n的数组a[],从中选择k个长度为m的子数组,要求和最大. 形式描述为:选择$k$个子数组[$l_1$, $r_1$], [$ ...
- Jersey服务端
问世间情为何物,直叫人一声呵呵. 上个项目写的jersey restful服务端,怎么都是正确的,没什么问题.结果这个项目写了,呵呵了,真的呵呵了,怎么搞都有问题. 总是报错,对json的类型报错,无 ...