`
qinhanbin
  • 浏览: 12610 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于UPP中与支付渠道的接口和参数信息

阅读更多

JAVA接口安装与初始化

chinapay.jar安装到服务器的classpath下。将提供给SPMerPrk.keyPgPubk.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)


数据签名函数signOrder

方法说明:

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(支付网关号),则消费者将直接进入支付页面,否则进入网关选择页面。具体网

关见表1Priv1 为商户私有域,商户通过此字段向Chinapay 发送的信息,Chinapay 依原样

填充返回给商户。当使用版本号20040916”时,BgRetUrl PageRetUrl 必须至少填写一

项,也就是说,此两项URL 不能同时为空。

1 Chinapay 支持的网关列表

网关号 网关名称

0001 中国银联

0005 工商银行

0007 招商银行

0008 农业银行(电子支付卡)

0009 兴业银行

0010 中国建设银行

 

 

验证交易应答函数verifyTransResponse

方法说明:

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位。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics