将chinapay.jar安装到服务器的classpath下。将提供给SP的MerPrk.key和PgPubk.key文件复制到服务器上可以访问的路经下,例如/app/usr/chinapay/keys。
初始化key文件。方法如下:
chinapay.PrivateKey key=new chinapay.PrivateKey();
chinapay.SecureLink t;
boolean flag;
flag=key.buildKey(MerId,0,"app/usr/chinapay/keys/MerPrk.key");
if (flag==false) {
System.out.println("build key error!");
return;
}
t=new chinapay.SecureLink (key)
○方法说明:
public String signOrder(String MerId, String OrdId, String TransAmt, String CuryId, String
TransDate, String TransType)
参数说明:
String MerId - 商户号,长度为15 个字节的数字串,由ChinaPay 或清算银行分配。
String OrdId - 订单号,长度为16 个字节的数字串,由商户系统生成,失败的订单号允
许重复支付。
String TransAmt - 交易金额,长度为12 个字节的数字串,例如:数字串"000000001234"
表示12.34 元。
String CuryId - 货币代码, 长度为3 个字节的数字串,目前只支持人民币,取值为"156" 。
String TransDate - 交易日期,长度为8 个字节的数字串,表示格式为:YYYYMMDD。
String TransType - 交易类型,长度为4 个字节的数字串,取值范围为:"0001"和"0002",
其中"0001"表示消费交易,"0002"表示退货交易。
返回值:
String CheckValue[256] - 即NetPayClient 根据上述输入参数生成的商户数字签名,长度
为256 字节的字符串。
○ 使用说明
商户在向消费者发送订单确认页面之前, 调用signOrder函数或方法产生订单签名
(CheckValue),然后生成订单确认页面(由SP生成),供消费者再次确认订单的内容,并允许消费者选
择支付或取消订单。订单确认页面中表单(FORM)的具体例子如下(注意各字段的大小写):
<form action="http://payment.chinapay.com:8081/pay/TransGet" METHOD=POST>
<input type=hidden name="MerId" value="123451234512345">
<input type=hidden name="OrdId" value="0000000000000001">
<input type=hidden name="TransAmt" value="000000001234">
<input type=hidden name="CuryId" value="156">
<input type=hidden name="TransDate" value="20000315">
<input type=hidden name="TransType" value="0001">
<input type=hidden name="Version" value="20040916">(接口版本号)
<input type=hidden name="BgRetUrl " value="http://www.XXX.com/pay/payback1.php"
>(后台交易接收URL,可选,长度不要超过80 个字节)
<input type=hidden name="PageRetUrl" value="http://www.XXX.com/pay/payback2.php"
>(页面交易接收URL,可选,长度不要超过80 个字节)
<input type=hidden name="GateId" value="0001">(支付网关号,可选)
<input type=hidden name="Priv1" value="Memo">(商户私有域,可选,长度不要超过
60 个字节)
<input type=hidden name="ChkValue" value="X…X">(256 字节长的ASCII 码)
</form>
注:其中GateId 和Priv1 为可选项,分别表示 “支付网关号”和“保留字段”。 如填
写GateId(支付网关号),则消费者将直接进入支付页面,否则进入网关选择页面。具体网
关见表1。Priv1 为商户私有域,商户通过此字段向Chinapay 发送的信息,Chinapay 依原样
填充返回给商户。当使用版本号“20040916”时,BgRetUrl 和PageRetUrl 必须至少填写一
项,也就是说,此两项URL 不能同时为空。
表1 Chinapay 支持的网关列表
网关号 网关名称
0001 中国银联
0005 工商银行
0007 招商银行
0008 农业银行(电子支付卡)
0009 兴业银行
0010 中国建设银行
○方法说明:
public boolean verifyTransResponse(String MerId, String OrdId, String TransAmt, String
CuryId, String TransDate, String TransType, String OrderStatus, String CheckValue)
参数说明:
String MerId - 商户号,长度为15 个字节的数字串,由ChinaPay 或清算银行分配。
String OrdId - 订单号,长度为16 个字节的数字串,由商户系统生成,失败的订单号允
许重复支付。
String TransAmt - 交易金额,长度为12 个字节的数字串,例如:数字串"000000001234"
表示12.34 元。
String CuryId - 货币代码, 长度为3 个字节的数字串,目前只支持人民币,取值为"156" 。
String TransDate - 交易日期,长度为8 个字节的数字串,表示格式为: YYYYMMDD。
String TransType - 交易类型,长度为4 个字节的数字串,取值范围为:"0001"和"0002",
其中"0001"表示消费交易,"0002"表示退货交易。
String OrderStatus - 交易状态,长度为4 个字节的数字串。0001代表成功。
String CheckValue - 校验值,即ChinaPay 对交易应答的数字签名,长度为256 字节的字
符串。
返回值:
true - 表示成功,即该交易应答为ChinaPay 所发送,商户根据“交易状态”进行后续处
理;否则表示失败,即无效应答,商户可忽略该应答或记入“垃圾箱”。
说明:在银联支付时,订单号前4是自定义的,可以根据sp业务的不同,头四位不同,
例如ET业务为4000,邮件业务为5000,实物销售业务为6000等。此外订单号的5-9位必须为商户号的最后5位。
分享到:
相关推荐
一种基于FPGA的UPP接口代码实现connect_debug_port u_ila_0/probe45 [get_nets [list tx2_lock]] create_debug_port u_ila_0 probe set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe46] ...
DSP芯片的uPP接口与FPGA通信代码+omapl38双核通信 UPP通信
OMAPL138中DSP的UPP接口代码
DSP通过自带的uPP并行口与FPGA通信,uPP支持半双工通信,DSP型号为TMS320C6748。FPGA将前端采集到的原始数据发送给DSP,DSP进行处理后将计算后的结果传回FPGA。
DSP通过自带的uPP并行口与FPGA通信,uPP支持半双工通信,DSP型号为TMS320C6748。FPGA将前端采集到的原始数据发送给DSP,DSP进行处理后将计算后的结果传回FPGA,已经汇总,请大家参考。
c6657中upp模块调试文件及相关例程,实测可用
dsp 实现upp数据通信功能,采用CCS5.5编写,可以作为大家学习的参考,非常有用
内部的FIFo(First In First out)数据缓冲器实现FPGA与DSP的接口方案,它实现了逻辑芯片FPGA和数字 信号处理器DsP之间无缝连接,大大提高了DSP的使用效率,解决了数据采集和数据处理(数字滤波)之间相 冲突的矛盾。
通用并行端口外设(uPP)是一种专用数据线和最小的控制信号的多通道高速并行接口。设计用于每通道高达16bits数据宽度的ADCs、DACs传输,也可以用于FPAG和其他uPP外设。它可以工作在接收模式下,发射模式,或双工模式...
c6657dsp的upp数据手册。
自己写的U++项目 备份一下 会后续开发 使用ULIMATE++开发
在Word中使用Bibtex4word自动制作参考文献,三种作者名显示大小写的bst文件。将bst文件放到MiKTeX的...GBT7714-2005NLang_Upp.bst 就在Bibtex4word刷子中输入GBT7714-2005NLang_Upp/nsch^p,可以中英文显示,不乱码。
用SSH框架写的统一支付平台项目,B/S架构,希望对你们有帮助
12-3-2-通用并行端口 uPP-外设及驱动 12-3-1-通用并行端口 uPP-相关例程演示 12-3-2-通用并行端口 uPP-外设及驱动
此外,《准则》显然愿意接受UPP的筛选,但没有明确考虑如何将合并竞争者不可避免的积极UPP与动态供应响应或效率相权衡,这值得关注。 在UPP屏幕上消除这种潜在的阻力,可以使代理商在实践中具有巨大的潜力,可以...
dsp6655通过upp总线与FPGA通信传输视频数据实现一个图像处理平台
upp_ics_v5.0 for delphi
代码为基于TI公司OMAPL138双核器件C语言实现,基于SYSLINK实现双核通信,ARM端基于linux3.3, DSP端基于SYSBIOS实时操作系统,以UPP以8位并行口中断方式回环通信,对于需要使用双核通信与UPP的项目,绝对值得拥有
由创龙工程师联合一众电子开发爱好者联合翻译的...太阳能微型逆变器和转换器 雷达 数字电源 智能抄表 汽车运输 电力线通信 软件定义无线电 TMS320C28x,TMS320F2837x,工业核心板,开发板,中文手册,数据手册,创龙,嵌入式
一个用 Observer 模式实现的 Thread 线程文件搜索例子 upp_ThreadFileSearchDemo.rar