通联支付接口疑难问题处理开发者文档

  • 格式:pdf
  • 大小:652.50 KB
  • 文档页数:26

1如何接入网关测试环境A:技术人员在本地开发环境,加载压缩包中的程序代码;B:找到程序代码中的post.html,修改merchantId、key、pickupUrl、receiveUrl、orderNo (唯一的,订单号不可以重复);C:action提交地址为通联测试地址(邮件正文地址);D: 在receiveUrl接收页面加后台处理代码;E:将证书放至指定目录。

做好以上准备工作后,即可在本地进行测试测试环境支付时仅有虚拟银行,虚拟银行的卡号和密码为任意数字。

2服务器环境要求1.Java环境1) 环境准备,JDK1.4以上。

2) 安装MPI:拷贝allinpay-security-xxx.jar、及与JDK版本对应的bcprov-jdkxx-xxx.jar到开发环境的classpath 目录下。

2.ASP和dotNet环境1) 环境准备。

2) 安装MPI:确保Microsoft .NET Framework2.0已安装;执行regasm /codebase 命令向操作系统注册ETSClient.dll文件,并将BouncyCastle.Crypto.dll 文件放在与ETSClient.dll相同的目录下;配置文件证书(可采用任一配置方式):方式一、商户指定证书路径,验签时需对PaymentResult对象设置证书路径,paymentResult.setCertPath(“指定证书TLCert.cer路径”);方式二、若未指定证书路径,也可拷贝TLCert.cer到%System%\system32目录下,商户需确保有权限访问system32下证书信息;方式三、或者编辑tlprop.ini文件,并保存到%system%目录下,并根据ini文件设置拷贝证书文件到相应目录,tlprop.ini文件内容参看开发包示例。

3.PHP环境windows环境在apache2.0.59 + php4.4.7+mysql下测试通过linux环境在apache2.2.3 + php5.2.13下测试通过确保Apache、php、mysql已正确安装。

确保Apache可以正确调用php环境解析php文件。

Linux环境下,需导入php高精度函数库,编译php时请加上–enable-bcmat参数。

如不加此参数,系统可能提示:bcmul() 函数不可用,因为php的高精度函数,需要在编译php的时候加入bcmat模块,在编译脚本里增添“–enable-bcmath”后重新编译、重启apache即可。

拷贝php-rsa.php文件到应用系统。

注意文件的调用配置,本示例中所有的文件都在相同目录下。

post.html为样例入口页面,请商户自行修改“通联支付网关地址”,修改pickupUrl和receiveUrl 为接受结果地址。

参数修改请参考样例中的注释。

3数字证书设置数字证书用于对通联返回的支付结果进行验证签名,确保支付结果的真实性。

1.ASP和配置方式:A、windows(32位)直接把这个证书放在C:\Windows\system32目录下;windows(64位)放在C:\Windows\SysWOW64目录下。

如果依然读取不到cert文件,可以手动设置个证书路径:paymentResult.setCertPath(HttpContext.Current.Server.MapPath("./cert/TLCert.cer"));B、编辑tlprop.ini文件,然后把这个文件放在证书所在目录下。

2.Linux配置方式:建议最好不要放在项目目录下,而是放在_home或者_user下,例如“/usr/local/etc/publickey.txt4B2C&B2B测试环境相关参数(PC快捷无测试环境)接口参数:测试商户号:100020091218001MD5 Key:1234567890订单提交地址:/gateway/index.do单笔查询提交地址:/gateway/index.do批量查询提交地址:/mchtoq/index.do单笔退款提交地址:/gateway/index.do商户服务平台参数:登录地址:/member/merchant/login/auth.do测试商户号:100020091218001操作员:admin密码:1111111!5生产环境相关参数接口参数:商户号:以实际分配的商户号为准初始MD5 Key:1234567890 (可登录商户服务平台修改)订单提交地址:https:///gateway/index.do单笔查询提交地址:https:///gateway/index.do批量查询提交地址:https:///mchtoq/index.do单笔退款提交地址:https:///gateway/index.do商户服务平台参数:登录地址:https:///ms/merchant/login/index平台用户名和密码默认都是生产商户号6通联支付支持哪几种支付方式支持直连和间连两种支付方式:1.“直连”是指持卡人在商户的平台上选择银行后页面直接跳转到银行网银页面,中间不出现任何通联相关的页面和信息,类似商户直连网银;2.“间连”是指持卡人在通联的网关支付页面选择银行后再进入到网银。

测试环境只能通过虚拟银行进行支付,直连与间连的设置方式如下:直连:paytype=1 issuerid=vbank间连:paytype=0 issuerid为空7中文乱码问题通联的支付接口支持UTF-8编码下传递中文,如果是GBK或者GB2312编码的商户,可以通过使用UTF-8转换来规避乱码问题;还有一种方式,可通过对字符串作BASE64,经过BASE64后,中文会变成数字加英文的字符串,再进行md5后就不会再存在编码问题。

8网关页面为何是英文商户上送支付请求中有language字段,上送1表示中文,2表示繁体,3表示英文,若商户不上送则根据其浏览器默认语言设置,一般安装的系统默认都是中文,少部分用户安装的系统默认为英文,此时商户若不上送language字段值,则默认显示英文网关。

9错误信息:暂未开通该支付方式联系分公司客户经理,检查商户在ETS系统的支付开通业务参数是否正确。

10错误代码:10019参数报文版本号不正确1.版本号version填写错误。

2.其他字段内容填写错误。

3.有可能是商户提交的数据丢失,通联接收不到任何数据。

请检查提交方式,http改为https提交方式,或检查form表单提交的地址是否正确。

11错误代码:10020参数签名信息不正确可能出现该问题的原因:1.若signType=0则用MD5算法进行验签,检查MD5Key设置的是否与商服平台下配置的一致(测试环境默认值1234567890);若signType=1则用通联提供的公钥证书进行验签,注意证书的存放位置应与商户验签代码中设的位置相同,另外请商户分清证书是测试证书还是生产证书。

2.商户提交的数据字符集是否是UTF-83.如果是商户自己根据规范组装报文的,要看签名源串的组装是否按照顺序来处理的,数据为空的参数不参与签名4.商户组签名原串时签名字段收尾含有空格5.验签时,post方式交易返回商户的receiveUrl结果信息是不按接口顺序排列的,而签名的话一定要按顺序排列进行签名。

6.检查form表单传送的参数是否完整,例如<input type="hidden" name="pickupUrl"value="<%=pickupUrl%>"/>等其他参数是否正常传送。

7.商户报海关的情况下可能原因:商户form表单提交的时候customsExt字段没有上送给通联,会造成我们系统中ext2的合法性的时候报签名失败,让商户在form表单中新增customsExt。

8.如果签名源串正确,生成的签名串正确,则检查signMsg参数是否上送。

12错误代码:30005商户支付配置错误原因:1.商户未开通此支付方式,可让商户联系分公司提申请到运营开通。

2.可能由于商户提交的环境不对,环境下面的商户号没有配置。

3.检查提交订单的报文数据,可能商户号不存在。

13工行支付,工行返回:提交表单接口名称错误或商户上送数据有误如果商户间联网银的时候,遇到连接工行接口失败,需要注意,post页面提交的时候,只能用post方式(method="post"),不能用get方式通联的接口原则上支持post和get两种提交方式,但是工行只能用post提交。

14交易结果的通知机制为了保证交易成功通知,正常情况下,同个地址,我们会发送2次成功通知;通联确认交易成功后,返回商户交易成功结果,若是通联确认商户服务器成功接收到交易结果,不再继续发送交易通知。

交易掉单后,通联的重复通知频率,若出现掉单,25小时以内最多通知8次,发送交易通知的间隔频率如下,2分钟、5分钟、10分钟、1小时、2小时、6小时、15小时。

15支付成功后多次返回成功通知的原因会,为防止掉单,银行对于支付成功的交易会返回多次,我方会同样返回给商户。

支付成功结束后,通联还时不时有向receiveUrl发起连接请求,造成同一订单重复处理,这是因为银行会响应多次结果给通联,通联也会多次将结果转发至商户。

若是通联确认商户服务器成功接收到交易结果,不再继续发送交易通知。

若出现掉单,最多通知8次。

商户需要有处理重复通知的机制。

16pickupUrl和receiveUrl的作用和区别pickupUrl是商户取货地址,即浏览器导向地址,持卡人支付成功后,通联会将持卡人的浏览器页面导向到商户传送的pickupUrl上,同时将支付结果也一同通过这个地址传达;receiveUrl是后台通知地址,是通联网关服务器发起后台通知的地址。

两个地址都可以接收到支付结果的通知,为了避免调单,建议商户两个地址都配置,并将订单处理逻辑加在receiveUrl地址上。

pickupUrl 和receiveUrl这两个地址需要对公可访问,同时生产环境端口限制为:80,443,8081,10001,90,15004,11610,28080,8094,8088,10032。

但后台通知到receiveUrl地址只收到外网数据www开头的外网地址。

测试环境下,一般pickupURL 和receiveURL地址只支持IP地址,不支持域名。

17商户的接收结果地址是否可自带参数get方式提交的时候,pickupURL和receiveURL地址后不能带参数,post方式提交时支持客户自带参数,但是参数名不能和我们接口的参数名重复。