开放商户支付接口V34银联在线支付.docx

上传人:b****0 文档编号:9895892 上传时间:2023-05-21 格式:DOCX 页数:50 大小:980.09KB
下载 相关 举报
开放商户支付接口V34银联在线支付.docx_第1页
第1页 / 共50页
开放商户支付接口V34银联在线支付.docx_第2页
第2页 / 共50页
开放商户支付接口V34银联在线支付.docx_第3页
第3页 / 共50页
开放商户支付接口V34银联在线支付.docx_第4页
第4页 / 共50页
开放商户支付接口V34银联在线支付.docx_第5页
第5页 / 共50页
开放商户支付接口V34银联在线支付.docx_第6页
第6页 / 共50页
开放商户支付接口V34银联在线支付.docx_第7页
第7页 / 共50页
开放商户支付接口V34银联在线支付.docx_第8页
第8页 / 共50页
开放商户支付接口V34银联在线支付.docx_第9页
第9页 / 共50页
开放商户支付接口V34银联在线支付.docx_第10页
第10页 / 共50页
开放商户支付接口V34银联在线支付.docx_第11页
第11页 / 共50页
开放商户支付接口V34银联在线支付.docx_第12页
第12页 / 共50页
开放商户支付接口V34银联在线支付.docx_第13页
第13页 / 共50页
开放商户支付接口V34银联在线支付.docx_第14页
第14页 / 共50页
开放商户支付接口V34银联在线支付.docx_第15页
第15页 / 共50页
开放商户支付接口V34银联在线支付.docx_第16页
第16页 / 共50页
开放商户支付接口V34银联在线支付.docx_第17页
第17页 / 共50页
开放商户支付接口V34银联在线支付.docx_第18页
第18页 / 共50页
开放商户支付接口V34银联在线支付.docx_第19页
第19页 / 共50页
开放商户支付接口V34银联在线支付.docx_第20页
第20页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

开放商户支付接口V34银联在线支付.docx

《开放商户支付接口V34银联在线支付.docx》由会员分享,可在线阅读,更多相关《开放商户支付接口V34银联在线支付.docx(50页珍藏版)》请在冰点文库上搜索。

开放商户支付接口V34银联在线支付.docx

开放商户支付接口V34银联在线支付

广州银联网络支付有限公司

支付网关商户接口标准(银联在线支付)

 

文档属性

文档名称:

广州银联网络支付有限公司支付网关商户接口标准(银联在线支付

项目名称:

版本号:

3.4

文档编号:

PG-20040426001

撰写者:

技术管理部

日期:

2012-1-8

复核者:

日期:

负责者:

日期:

审批者:

日期:

版本历史:

版本号

修改内容

撰写者

发布日期

 

版权声明:

此文档的版权归广州银联网络支付有限公司所有,作为本系统的最终用户,可以拥有该份文档的使用权,但未征得广州银联网络支付有限公司的书面批准,不得向第三方借阅、出让、出版该文档。

 

目录

-----------------------------------------------------------------------------------------------------

1.文档介绍4

1.1.读者对象4

1.2.参考文献4

1.3.术语与缩写解释4

2.商户接口概述5

2.1.接口结构图5

2.2.支付接口6

2.2.1.支付数据流程图6

2.2.2.支付数据流程解释7

2.3.数字信封8

2.3.1.数字信封格式8

2.3.2.数字信封格式示例8

2.3.3.订单数据9

2.3.4.订单数据示例9

2.3.5.支付结果数据9

2.3.6.支付结果数据示例10

2.3.7.后台发送支付结果数据10

2.3.8.对账结果数据10

2.3.9.对账结果数据示例11

2.3.10.对账结果数据的签名及数据格式11

2.3.11.支付结果响应码12

3.商户端部署指南15

3.1.系统环境15

4.COM版商户接口函数16

4.1.接口函数16

4.1.1.EncryptMsg()16

4.1.2.DecryptMsg()17

4.1.3.SignMsg()17

4.1.4.VerifyMsg()18

4.1.5.GetResult()18

4.1.6.LastResult属性19

4.1.7.LastErrMsg属性20

4.1.8.CurrVer属性20

5..Net版商户接口函数21

5.1.接口函数21

5.1.1.encryptMsg()21

5.1.2.decryptMsg()22

5.1.3.signMsg()23

5.1.4.verifyMsg()24

5.1.5.GetResult()24

5.1.6.getCurrVer()25

6.Java版商户接口函数26

6.1.接口函数26

6.1.1.EncryptMsg()26

6.1.2.DecryptMsg()27

6.1.3.SignMsg()27

6.1.4.VerifyMsg()28

6.1.5.GetResult()28

6.1.6.LastResult属性29

6.1.7.LastErrMsg属性30

6.1.8.CurrVer属性30

6.1.9.setTestServer(booleanisTestServer)方法30

6.1.10.setConvertEncode(booleanisConvertEncode)方法31

6.2.关于Java加密扩展的出口限制(NJCE版)31

6.2.1.替换程序包31

6.2.2.生成gpk文件31

6.2.3.调用商户接口32

7.PHP版商户接口函数33

7.1.接口函数34

7.1.1.EncryptMsg()34

7.1.2.DecryptMsg()35

7.1.3.SignMsg()36

7.1.4.VerifyMsg()37

7.1.5.GetResult()38

7.1.6.LastResult属性39

7.1.7.LastErrMsg属性39

7.1.8.CurrVer属性39

7.2.密钥文件转换说明40

8.错误代码41

9.渠道参数表42

1.文档介绍

1.1.读者对象

商户系统设计人员、编程人员及测试人员

1.2.参考文献

《银行卡联网联合技术规范》

《RSASecurityLab:

RSACryptographyFAQ》

《中国人民解放军总参谋部56所SJY42证书服务器密码机使用说明》

1.3.术语与缩写解释

缩写、术语

解释

安全服务器

主要的功能是通过硬件方式实现各种密码算法,安全保存密钥及发放证书,安全服务器采取了多种安全措施,能够安全的保存一些重要的密钥,特别适合于对密钥安全性要求特别高的应用。

Verisign证书

银联向美国VerySign公司申请的,用来向顾客认证银联支付网关唯一性的证书。

该证书能够使用内置于InternetExplore浏览器中的VerySign公司的根证书进行认证,顾客无需安装银联服务器证书。

商户证书

银联通过安全服务器给商户颁发的数字签名证书。

银联通过安全服务器认证商户的商户证书,该证书的有效期为一年。

支付接口

银联颁发给商户的服务器端控件,用于通过安全的方式传送订单数据到银联及接收银联实时返回的支付结果。

对账接口

银联颁发给商户的服务器端控件,用于批量接收符合商户查询条件的支付结果。

订单管理系统

银联提供给商户的基于B/S结构的订单管理界面。

 

2.商户接口概述

2.1.接口结构图

 

2.2.支付接口

2.2.1.支付数据流程图

 

2.2.2.支付数据流程解释

1、用户在商户系统生成订单;

2、商户系统使用银联证书的公钥对订单数据进行加密;

3、商户系统使用商户证书的私钥对订单数据进行数字签名,数字签名中包括商户证书的公钥及商户系统当前时间,加密后的订单数据+订单数据数字签名构成一份订单数字信封;

4、商户系统通过表单方式将订单数字信封下载到用户浏览器,并通过用户浏览器自动提交到银联在线;

5、银联在线接收到订单数字信封后,使用银联证书的私钥对加密后的订单数据进行解密;

6、银联在线使用商户证书验证订单数据数字签名的合法性(用于签名的证书是否有效及证书序列号是否一致);

7、银联在线生成支付单;

8、银联在线传送支付单数据至支付网关,并引导用户进入支付网关;

9、用户在支付网关输入银行卡信息(银行卡号、卡密码、信用卡有效期、证件号码)执行支付;

10、支付完毕后,向用户显示支付结果,并弹出一个新窗口将支付结果返回给银联在线;

11、银联在线接收到支付结果后,使用商户证书的公钥对支付结果数据进行加密;

12、银联在线使用银联证书的私钥对订单数据进行数字签名,数字签名中包括银联证书的公钥及银联在线当前时间,加密后的订单数据+订单数据数字签名构成一份支付结果数字信封;

13、银联在线通过表单方式将支付结果数字信封下载到用户浏览器,并通过用户浏览器自动提交到商户系统;

14、商户系统接收到支付结果数字信封后,使用商户证书的私钥对加密后的支付结果数据进行解密;

15、商户系统使用银联证书验证订单数据数字签名的合法性(用于签名的证书是否有效及证书序列号是否一致);

16、商户系统将支付结果输出到用户浏览器,并根据支付结果为用户提供产品或服务。

2.3.数字信封

2.3.1.数字信封格式

订单数字信封包括EncodeMsg、SignMsg二部分,均由订单数据或支付结果数据产生而成。

1、如为订单数据,使用银联证书公钥对订单数据加密产生EncodeMsg域,使用商户证书私钥对订单数据签名产生SignMsg域;

2、如为支付结果数据,使用商户证书私钥对EncodeMsg域解密产生支付结果数据,再使用银联证书公钥对SignMsg域进行合法性验证;

二个域将通过隐藏表单下载到用户浏览器,并由用户浏览器自动提交到数字信封接收方。

域名称

长度

类型

说明

EncodeMsg

无限制

Base64字符串

加密后订单数据

SignMsg

无限制

Base64字符串

订单数据数字签名

2.3.2.数字信封格式示例

2.3.3.订单数据

订单数据是指构造成订单数字信封的原始数据,由各个数据元组成,每个数据元由(数据元名称=数据元值)组成,各个数据元之间使用字符串&进行分隔。

数据元名称

长度

类型

说明

MerId

3

字符串

商户ID

OrderNo

Max(20)

字符串

商户订单号(要求唯一)

OrderAmount

Max(12)

字符串

订单金额,格式:

元.角分

CurrCode

Max(3)

字符串

货币代码,值为:

CNY

CallBackUrl

Max(400)

字符串

支付结果接收URL

ResultMode

1

字符串

支付结果返回方式

0=成功和失败支付结果均返回

1=仅返回成功支付结果

BankCode,

8

字符串

填”00010000”

Reserved01

Max(100)

字符串

保留域1

Reserved02

Max(100)

字符串

保留域2

2.3.4.订单数据示例

MerId=001&OrderNo=20031106100001&OrderAmount=59.32&CurrCode=CNY&CallBackUrl=ResultMode=0&Reserved01=&Reserved02=

 

2.3.5.支付结果数据

支付结果数据是指构造成支付结果数字信封的原始数据,由各个数据元组成,每个数据元由(数据元名称=数据元值)组成,各个数据元之间使用字符串&进行分隔。

数据变量名

长度

类型

说明

OrderNo

Max(20)

字符串

商户订单号

PayNo

6

字符串

支付单号

PayAmount

Max(12)

字符串

支付金额,格式:

元.角分

CurrCode

Max(3)

字符串

货币代码

SystemSSN

Max(15)

字符串

系统参考号

RespCode

2

字符串

响应码

SettDate

4

字符串

清算日期,格式:

月月日日

Reserved01

Max(100)

字符串

保留域1

Reserved02

Max(100)

字符串

保留域2

2.3.6.支付结果数据示例

OrderNo=20031106100001&PayNo=103450&PayAmount=59.32&CurrCode=CNY&SystemSSN=120034120034&RespCode=00&SettDate=1106&Reserved01=&Reserved02=

 

2.3.7.后台发送支付结果数据

1.商户可以增加一个后台支付结果接收页面,用来接收处理广州银联网络支付有限公司通过服务器发送的支付结果。

2.商户在自己服务器增加的后台支付结果接收页面,接收到的数据跟2.3.5支付结果数据相同。

区别在于处理完数据后不需要再显示支付结果给客户,而是直接输出"OK"给银联网络服务器端。

银联网络接收到"OK"后将不再发送,否则将一直发送到原来设置的发送次数上限。

3.商户如果需要该功能,需要通过书面方式提交后台支付结果接收页面的URL和后台发送次数上限给银联网络业务人员进行设置。

2.3.8.对账结果数据

对账结果数据是指构造成对账结果的数据,每条记录用Chr(10)分隔,每列用\n分隔

订单的格式:

订单日期\n支付金额\n商户订单号\n支付单号\n系统参考号\n响应码\n

数据变量名

长度

类型

说明

ShoppingDate

8

字符串

交易日期(YYYYMMDD)

PayAmount

Max(12)

字符串

支付金额,格式:

元.角分

OrderNo

Max(20)

字符串

商户订单号

PayNo

24

字符串

交易日期-商户终端号-支付单号

SystemSSN

Max(15)

字符串

系统参考号

RespCode

2

字符串

响应码

2.3.9.

20040426\n12.34\n20040426100001\n20040326-99800001-100001\n100001100001\n00\n

对账结果数据示例

 

2.3.10.对账结果数据的签名及数据格式

有商户提到我司提供的对账结果数据中无签名,比较担心拿到的对账结果数据的可信度。

对此,我司提供一个新的对账结果数据查询URL(路径与以前的URL相同,只是由GetPayResult.asp改为GetPayResultSign.asp),商户只需用新的URL替换即可。

返回数据时第一行(256字节)为签名数据,行分隔符之后即为对账结果明文数据(不包含第一行之后的行分隔符)。

验签时,通过调用本接口中提供的VerifyMsg()对对账结果数据进行签名验证。

其中CertFile为我司提供的证书文件路径。

 

返回的数据格式与以前的定义相同,但是为了提供一定的灵活度,可以对行、列分隔符进行定制。

定义如下:

参数名

类型

说明

FileSpliter

字符串

作为每列数据的分隔符,不设置则为原来的“\n”

RowSpliter

字符串

作为每行数据的分隔符,不设置则为原来的CHR(10)

例如,在接口配置文件中将GetResultUrl设为:

 

2.3.11.支付结果响应码

Code

Action

含义

显示内容

00

Approve

承兑或交易成功

交易成功

01

Decline

查发卡方

交易失败,请联系发卡行

02

Decline

查发卡方的特殊条件

交易失败,请联系发卡行

03

Decline

无效商户

交易失败,请联系发卡行

04

Pick-up

没收卡

交易失败,请联系发卡行

05

Decline

不予承兑

交易失败,请联系发卡行

06

Decline

出错

交易失败,请联系发卡行

07

Pick-up

特殊条件下没收卡

交易失败,请联系发卡行

09

Decline

请求正在处理中

交易失败,请重试

12

Decline

无效交易

交易失败,请联系发卡行

13

Decline

无效金额

金额有误,请重试

14

Decline

无效卡号(无此账号)

无效卡号,请换卡重试

15

Decline

无此发卡方

此卡不能受理

17

Decline

拒绝但不没收卡

交易失败,请联系发卡行

19

Decline

重新送入交易

交易失败,请重试

20

Decline

无效响应

交易失败,请联系发卡行

21

Decline

不能采取行动

交易失败,请联系发卡行

22

Decline--

故障怀疑

操作有误,请重试

23

Decline

不可接受的交易费

交易失败,请联系发卡行

25

Decline

找不到原始交易

交易失败,请联系发卡行

30

Decline

格式错误

交易失败,请联系发卡行

31

Decline

交换中心不支持的银行

此卡不能受理

33

Decline

过期的卡

卡片过期,请联系发卡行

34

Pick-up

有作弊嫌疑

交易失败,请联系发卡行

35

Pick-up

受卡方与代理方联系(没收卡)

交易失败,请联系发卡行

36

Pick-up

受限制的卡

此卡有误,请换卡重试

37

Pick-up

受卡方电话通知代理方安全部门

交易失败,请联系发卡行

38

Decline

超过允许的PIN试输入

密码错误次数超限

39

Decline

无贷记账户

交易失败,请联系发卡行

40

Decline

请求的功能尚不支持

交易失败,请联系发卡行

41

Pick-up

挂失卡

交易失败,请联系发卡行

42

Decline

无此账户

交易失败,请联系发卡行

43

Pick-up

被窃卡

交易失败,请联系发卡行

44

Decline

无此投资账户

交易失败,请联系发卡行

51

Decline

资金不足

余额不足,请查询

52

Decline

无此支票账户

交易失败,请联系发卡行

53

Decline

无此储蓄卡账户

交易失败,请联系发卡行

54

Decline

过期的卡

卡片过期,请联系发卡行

55

Decline

不正确的PIN

密码错,请重试

56

Decline

无此卡记录

交易失败,请联系发卡行

57

Decline

不允许持卡人进行的交易

该卡不支持此项服务,请联系发卡行

58

Decline

不允许终端进行的交易

交易失败,请联系发卡行

59

Decline

有作弊嫌疑

交易失败,请联系发卡行

60

Decline

受卡方与代理方联系(不没收卡)

交易失败,请联系发卡行

61

Decline

超出金额限制

金额超限

62

Decline

受限制的卡

交易失败,请联系发卡行

63

Decline

侵犯安全

交易失败,请联系发卡行

64

Decline

原始金额错误

交易失败,请联系发卡行

65

Decline

超交易次数

交易失败,请联系发卡行

66

Decline

受卡方通知受理方安全部门

交易失败,请联系发卡行

67

Pick-up

强行受理(要求在自动会员机上没收此卡)

交易失败,请联系发卡行

68

Decline

接收的响应超时

交易超时,请稍后重试

75

Decline

允许的输入PIN次数超限

密码错误次数超限

76

Decline

无效账户

交易失败,请联系发卡行

77

Decline

此卡需密码

交易失败,请联系发卡行

78

Decline

无效终端

交易失败,请联系发卡行

90

Decline

正在日终处理(系统终止一天的活动,开始第二天的活动,交易在几分钟后可再次发送)

交易失败,请稍后重试

91

Decline

发卡方不能操作

交易失败,请稍后重试

92

Decline

金融机构或中间网络设施找不到或无法达到

交易失败,请稍后重试

93

Decline

交易违法、不能完成

交易失败,请联系发卡行

94

Decline

重复交易

交易失败,请稍后重试

95

Decline

核对差错

交易失败,请稍后重试

96

Decline

交换中心系统异常、失效

交易失败,请稍后重试

97

Decline

无此终端

交易失败,请稍后重试

98

Decline

交换中心收不到发卡方应答

交易超时,请稍后重试

99

Decline

PIN格式错

交易失败,请稍后重试

A0

Decline

MAC鉴别失败

交易失败,请稍后重试

A2

Approve

交换中心转发了原交易请求,但未收到发卡方应答时,交换中心直接向受理方应答为有缺陷的成功交易

交易结果请查询发卡行

BF

Decline

深银联支付号/授权码与银行卡号不匹配

交易失败,请联系发卡行

XX

Decline

超时已冲正

交易失败,请稍后重试

3.商户端部署指南

3.1.系统环境

接口版本

操作系统/系统平台

开发语言

备注

COM版本

WindowsNT4.0

Windows2000

ASP

VB

Microsoft.Net版本

.NETFramework2.0/3.0/3.5

C#.NET

VB.NET

Java版本

JRE1.3.1

JRE1.4.2

JRE1.5.0

Java

PHP

(注:

如果使用JRE1.3.1版本,需要把jce-1_2_2.zip解压后得到的jce1.2.2目录下lib文件夹中的四个jar文件拷贝到JRE1.3.1安装目录的lib文件夹中的ext文件夹下面,并在ext同级目录的security文件夹中修改java.security文件,在其中添加security.provider.3=com.sun.crypto.provider.SunJCE)

Java版本(NJCE)

JRE1.4.2

JRE1.5.0

Java

解决了Java加密扩展的出口限制,而且商户无法修改安全策略文件的情况。

且修改了BC包的命名空间,防止与商户系统中的其它版本的BC包产生冲突。

对于采用Java环境的商户,建议采用NJCE版。

PHP版本

PHP4.4.8及其以上版本

PHP

私钥文件只支持PEM格式,需采用工具将pfx转换为PEM格式

4.银联在线支付商户端LOGO使用说明

银联在线支付LOGO:

使用方式请参考附件《“银联在线支付”品牌标识布放规范》

5.COM版商户接口函数

对象名称

方法/属性

功能

OpenVendorV34.NetTran

EncryptMsg()方法

数字信封加密

DecryptMsg()方法

数字信封解密

SignMsg()方法

数字信封签名

VerifyMsg()方法

数字信封验证签名

GetResult()方法

获取订单数据

LastResult属性

上次调用后的返回结果

LastErrMsg属性

上次调用后的出错信息

CurrVer属性

控件版本

5.1.接口函数

5.1.1.EncryptMsg()

FunctionEncryptMsg(

ByValTobeEncryptedAsVariant,

ByValCertFileAsVariant,

)AsLong

功能:

对数字信封进行加密

参数:

VariantTobeEncrypted:

待加密的数字信封,输入值

VariantCertFile:

公钥证书的路径地址,输入值

返回值:

Long型

0为调用成功,密文见LastResult属性

-1为调用失败,失败原因见LastErrMsg属性

5.1.2.DecryptMsg()

FunctionDecryptMsg(

ByValTobeDecryptedAsVariant,

ByValKe

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2