将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位。
分享到:
相关推荐
在这个特定的案例中,我们关注的是TMS320C6748 DSP通过其内置的Ultra Parallel Port (uPP)接口与FPGA进行通信的实现。下面我们将深入探讨uPP接口的特点、DSP与FPGA的通信流程,以及可能涉及到的相关代码结构。 1. *...
一种基于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] ...
1. **配置和初始化**:在DSP端,需要对uPP接口进行初始化,设置合适的时钟、数据宽度、地址空间等参数,确保与FPGA的接口匹配。 2. **数据传输协议**:理解并正确实现uPP协议,包括读写操作的时序、握手信号(如ACK...
其中,通用并行接口(Universal Parallel Port, UPP)是OMAPL138中的一个重要组成部分,用于高速数据传输,例如图像和视频数据。 UPP接口设计用于连接外部设备,如摄像头、LCD屏幕或者闪存存储器,提供了一个灵活的...
在这款处理器中,通用并行端口(UPP)是一个重要的外设接口,它提供了高速的数据传输能力,适用于多种外设连接。本资料包“upp_test_tms320c6657upp”正是针对TMS320C6657的UPP模块进行调试及应用的实践资料,包含了...
在实现UPP通信的过程中,DSP的硬件特性,如并行处理单元和高速内存接口,是关键。通过精心设计的算法,可以充分利用这些硬件资源,达到最佳的性能。例如,使用FFT(快速傅里叶变换)进行频域分析,可以有效检测和滤...
DSP通过自带的uPP并行口与FPGA通信,uPP支持半双工通信,DSP型号为TMS320C6748。FPGA将前端采集到的原始数据发送给DSP,DSP进行处理后将计算后的结果传回FPGA,已经汇总,请大家参考。
- **支付接口文件**:对接不同支付渠道的SDK或API,处理支付请求和响应。 - **测试类**:用于单元测试和集成测试,确保代码功能的正确性。 通过对这些源代码的学习,开发者可以深入了解如何构建一个完整的支付系统...
在这一章节中,我们将详细讨论uPP与外部设备的连接和通信方式。uPP可以作为主设备驱动多种外设,例如ADC、DAC、LED控制器等。驱动设计包括配置寄存器、建立中断服务程序、处理数据同步等问题。此外,还会讲解如何...
"upp项目"是一个基于SSH(Struts2、Spring和Hibernate)框架构建的统一支付平台,采用了典型的B/S(Browser/Server)架构。SSH是Java Web开发中的一个经典组合,广泛应用于企业级应用系统中,提供了高效、灵活和可...
根据提供的文件信息,本文将对“upp用户手册”进行详细解析,主要围绕c6657 DSP中的Universal Parallel Port(uPP)展开介绍。 ### 一、简介 #### 1.1 uPP 外设的目的 uPP(Universal Parallel Port)是一种高...
在ULTIMATE++中,`.lay`文件用于存储界面设计的布局信息,包括控件的位置、大小、属性等,使得开发者可以方便地管理和调整用户界面。 5. `GuiLock.upp`:这个名字可能表示一个特定的类或模块,专门处理GUI(图形...
3. **UPP接口设计**:设计UPP接口电路,确保DSP6655与FPGA之间的数据传输正确无误。 4. **DSP编程**:编写DSP端的驱动程序和控制逻辑,控制UPP总线的读写操作。 5. **测试与调试**:通过硬件测试板和仿真工具进行...
通用并行端口外设(uPP)是一种专用数据线和最小的控制信号的多通道高速并行接口。设计用于每通道高达16bits数据宽度的ADCs、DACs传输,也可以用于FPAG和其他uPP外设。它可以工作在接收模式下,发射模式,或双工模式...
在Word中使用Bibtex4word自动制作参考文献,三种作者名显示大小写的bst文件。将bst文件放到MiKTeX的...GBT7714-2005NLang_Upp.bst 就在Bibtex4word刷子中输入GBT7714-2005NLang_Upp/nsch^p,可以中英文显示,不乱码。
首先,我们来看标题中的"upp_ThreadFileSearchDemo.rar",这是一个压缩包文件,包含了项目的所有源代码和资源。upp可能指的是UPP(Unicode Portable Programmers' Package),一种 Delphi 的扩展库,支持Unicode编程...
在UPP-crx插件中,用户可以利用正则表达式来定义复杂的数据查找规则,从而精确地抓取网页中的特定数据。正则表达式的运用需要一定的学习和理解,但一旦掌握,就能灵活处理各种格式的数据,无论是电话号码、邮箱地址...
此外,《准则》显然愿意接受UPP的筛选,但没有明确考虑如何将合并竞争者不可避免的积极UPP与动态供应响应或效率相权衡,这值得关注。 在UPP屏幕上消除这种潜在的阻力,可以使代理商在实践中具有巨大的潜力,可以...