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

上传人:仙人指路1688 文档编号:2398753 上传时间:2023-02-17 格式:DOC 页数:62 大小:2.08MB
返回 下载 相关 举报
广州银联网络支付有限公司支付网关商户接口标准(银联在线支付).doc_第1页
第1页 / 共62页
广州银联网络支付有限公司支付网关商户接口标准(银联在线支付).doc_第2页
第2页 / 共62页
广州银联网络支付有限公司支付网关商户接口标准(银联在线支付).doc_第3页
第3页 / 共62页
广州银联网络支付有限公司支付网关商户接口标准(银联在线支付).doc_第4页
第4页 / 共62页
广州银联网络支付有限公司支付网关商户接口标准(银联在线支付).doc_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《广州银联网络支付有限公司支付网关商户接口标准(银联在线支付).doc》由会员分享,可在线阅读,更多相关《广州银联网络支付有限公司支付网关商户接口标准(银联在线支付).doc(62页珍藏版)》请在三一办公上搜索。

1、广州银联网络支付有限公司支付网关商户接口标准(银联在线支付)文档属性文档名称:广州银联网络支付有限公司支付网关商户接口标准(银联在线支付项目名称:版本号:3.4文档编号:PG-20040426001撰写者:技术管理部日期:2012-1-8复核者:日期:负责者:日期:审批者:日期:版本历史:版本号修改内容撰写者发布日期版权声明:此文档的版权归广州银联网络支付有限公司所有,作为本系统的最终用户,可以拥有该份文档的使用权,但未征得广州银联网络支付有限公司的书面批准,不得向第三方借阅、出让、出版该文档。目录-1.文档介绍41.1.读者对象41.2.参考文献41.3.术语与缩写解释42.商户接口概述52

2、.1.接口结构图52.2.支付接口62.2.1.支付数据流程图62.2.2.支付数据流程解释72.3.数字信封82.3.1.数字信封格式82.3.2.数字信封格式示例82.3.3.订单数据92.3.4.订单数据示例92.3.5.支付结果数据92.3.6.支付结果数据示例102.3.7.后台发送支付结果数据102.3.8.对账结果数据102.3.9.对账结果数据示例112.3.10.对账结果数据的签名及数据格式112.3.11.支付结果响应码123.商户端部署指南153.1.系统环境154.COM版商户接口函数164.1.接口函数164.1.1.EncryptMsg()164.1.2.Decry

3、ptMsg()174.1.3.SignMsg()174.1.4.VerifyMsg()184.1.5.GetResult()184.1.6.LastResult属性194.1.7.LastErrMsg属性204.1.8.CurrVer属性205.NET版商户接口函数215.1.接口函数215.1.1.encryptMsg()215.1.2.decryptMsg()225.1.3.signMsg()235.1.4.verifyMsg()245.1.5.GetResult()245.1.6.getCurrVer()256.JAVA版商户接口函数266.1.接口函数266.1.1.EncryptMs

4、g()266.1.2.DecryptMsg()276.1.3.SignMsg()276.1.4.VerifyMsg()286.1.5.GetResult()286.1.6.LastResult属性296.1.7.LastErrMsg属性306.1.8.CurrVer属性306.1.9.setTestServer (boolean isTestServer)方法306.1.10.setConvertEncode(boolean isConvertEncode)方法316.2.关于Java加密扩展的出口限制(NJCE版)316.2.1.替换程序包316.2.2.生成gpk文件316.2.3.调用商

5、户接口327.PHP版商户接口函数337.1.接口函数347.1.1.EncryptMsg()347.1.2.DecryptMsg()357.1.3.SignMsg()367.1.4.VerifyMsg()377.1.5.GetResult()387.1.6.LastResult属性397.1.7.LastErrMsg属性397.1.8.CurrVer属性397.2.密钥文件转换说明408.错误代码419.渠道参数表421. 文档介绍1.1. 读者对象商户系统设计人员、编程人员及测试人员1.2. 参考文献银行卡联网联合技术规范RSA Security Lab: RSA Cryptography

6、 FAQ中国人民解放军总参谋部56所SJY42证书服务器密码机使用说明1.3. 术语与缩写解释缩写、术语解 释安全服务器主要的功能是通过硬件方式实现各种密码算法,安全保存密钥及发放证书,安全服务器采取了多种安全措施,能够安全的保存一些重要的密钥,特别适合于对密钥安全性要求特别高的应用。Verisign证书银联向美国VerySign公司申请的,用来向顾客认证银联支付网关唯一性的证书。该证书能够使用内置于Internet Explore浏览器中的VerySign公司的根证书进行认证,顾客无需安装银联服务器证书。商户证书银联通过安全服务器给商户颁发的数字签名证书。银联通过安全服务器认证商户的商户证书

7、,该证书的有效期为一年。支付接口银联颁发给商户的服务器端控件,用于通过安全的方式传送订单数据到银联及接收银联实时返回的支付结果。对账接口银联颁发给商户的服务器端控件,用于批量接收符合商户查询条件的支付结果。订单管理系统银联提供给商户的基于B/S结构的订单管理界面。2. 商户接口概述2.1. 接口结构图2.2. 支付接口2.2.1. 支付数据流程图2.2.2. 支付数据流程解释1、 用户在商户系统生成订单;2、 商户系统使用银联证书的公钥对订单数据进行加密;3、 商户系统使用商户证书的私钥对订单数据进行数字签名,数字签名中包括商户证书的公钥及商户系统当前时间,加密后的订单数据+订单数据数字签名构

8、成一份订单数字信封;4、 商户系统通过表单方式将订单数字信封下载到用户浏览器,并通过用户浏览器自动提交到银联在线;5、 银联在线接收到订单数字信封后,使用银联证书的私钥对加密后的订单数据进行解密;6、 银联在线使用商户证书验证订单数据数字签名的合法性(用于签名的证书是否有效及证书序列号是否一致);7、 银联在线生成支付单;8、 银联在线传送支付单数据至支付网关,并引导用户进入支付网关;9、 用户在支付网关输入银行卡信息(银行卡号、卡密码、信用卡有效期、证件号码)执行支付;10、 支付完毕后,向用户显示支付结果,并弹出一个新窗口将支付结果返回给银联在线;11、 银联在线接收到支付结果后,使用商户

9、证书的公钥对支付结果数据进行加密;12、 银联在线使用银联证书的私钥对订单数据进行数字签名,数字签名中包括银联证书的公钥及银联在线当前时间,加密后的订单数据+订单数据数字签名构成一份支付结果数字信封;13、 银联在线通过表单方式将支付结果数字信封下载到用户浏览器,并通过用户浏览器自动提交到商户系统;14、 商户系统接收到支付结果数字信封后,使用商户证书的私钥对加密后的支付结果数据进行解密;15、 商户系统使用银联证书验证订单数据数字签名的合法性(用于签名的证书是否有效及证书序列号是否一致);16、 商户系统将支付结果输出到用户浏览器,并根据支付结果为用户提供产品或服务。2.3. 数字信封2.3

10、.1. 数字信封格式订单数字信封包括EncodeMsg、SignMsg二部分,均由订单数据或支付结果数据产生而成。1、 如为订单数据,使用银联证书公钥对订单数据加密产生EncodeMsg域,使用商户证书私钥对订单数据签名产生SignMsg域;2、 如为支付结果数据,使用商户证书私钥对EncodeMsg域解密产生支付结果数据,再使用银联证书公钥对SignMsg域进行合法性验证;二个域将通过隐藏表单下载到用户浏览器,并由用户浏览器自动提交到数字信封接收方。域名称长度类型说明EncodeMsg无限制Base64字符串加密后订单数据SignMsg无限制Base64字符串订单数据数字签名2.3.2. 数

11、字信封格式示例2.3.3. 订单数据订单数据是指构造成订单数字信封的原始数据,由各个数据元组成,每个数据元由(数据元名称=数据元值)组成,各个数据元之间使用字符串&进行分隔。数据元名称长度类型说明MerId3字符串商户IDOrderNoMax(20)字符串商户订单号(要求唯一)OrderAmountMax(12)字符串订单金额,格式:元.角分CurrCodeMax(3)字符串货币代码,值为:CNYCallBackUrlMax(400)字符串支付结果接收URLResultMode1字符串支付结果返回方式0=成功和失败支付结果均返回1=仅返回成功支付结果BankCode,8字符串填”0001000

12、0”Reserved01Max(100)字符串保留域1Reserved02Max(100)字符串保留域22.3.4. 订单数据示例MerId=001&OrderNo=20031106100001&OrderAmount=59.32& CurrCode=CNY&CallBackUrl= ResultMode=0& Reserved01=&Reserved02=2.3.5. 支付结果数据支付结果数据是指构造成支付结果数字信封的原始数据,由各个数据元组成,每个数据元由(数据元名称=数据元值)组成,各个数据元之间使用字符串&进行分隔。数据变量名长度类型说明OrderNoMax(20)字符串商户订单号P

13、ayNo6字符串支付单号PayAmountMax(12)字符串支付金额,格式:元.角分CurrCodeMax(3)字符串货币代码SystemSSNMax(15)字符串系统参考号RespCode2字符串响应码SettDate4字符串清算日期,格式:月月日日Reserved01Max(100)字符串保留域1Reserved02Max(100)字符串保留域22.3.6. 支付结果数据示例OrderNo=20031106100001&PayNo=103450&PayAmount=59.32& CurrCode=CNY&SystemSSN=120034120034&RespCode=00&SettDat

14、e=1106&Reserved01=&Reserved02=2.3.7. 后台发送支付结果数据1.商户可以增加一个后台支付结果接收页面,用来接收处理广州银联网络支付有限公司通过服务器发送的支付结果。2.商户在自己服务器增加的后台支付结果接收页面,接收到的数据跟2.3.5支付结果数据相同。区别在于处理完数据后不需要再显示支付结果给客户,而是直接输出OK给银联网络服务器端。银联网络接收到OK后将不再发送,否则将一直发送到原来设置的发送次数上限。3.商户如果需要该功能,需要通过书面方式提交后台支付结果接收页面的URL和后台发送次数上限给银联网络业务人员进行设置。2.3.8. 对账结果数据对账结果数据

15、是指构造成对账结果的数据,每条记录用Chr(10)分隔,每列用n分隔订单的格式:订单日期n支付金额n商户订单号n支付单号n系统参考号n响应码n数据变量名长度类型说明ShoppingDate8字符串交易日期(YYYYMMDD)PayAmountMax(12)字符串支付金额,格式:元.角分OrderNoMax(20)字符串商户订单号PayNo24字符串交易日期-商户终端号-支付单号SystemSSNMax(15)字符串系统参考号RespCode2字符串响应码20040426n12.34n20040426100001n20040326-99800001-100001n100001100001n00n

16、2.3.9. 对账结果数据示例2.3.10. 对账结果数据的签名及数据格式有商户提到我司提供的对账结果数据中无签名,比较担心拿到的对账结果数据的可信度。对此,我司提供一个新的对账结果数据查询URL(路径与以前的URL相同,只是由GetPayResult.asp改为GetPayResultSign.asp),商户只需用新的URL替换即可。返回数据时第一行(256字节)为签名数据,行分隔符之后即为对账结果明文数据(不包含第一行之后的行分隔符)。验签时,通过调用本接口中提供的VerifyMsg()对对账结果数据进行签名验证。其中CertFile为我司提供的证书文件路径。返回的数据格式与以前的定义相同

17、,但是为了提供一定的灵活度,可以对行、列分隔符进行定制。定义如下:参数名类型说明FileSpliter字符串作为每列数据的分隔符,不设置则为原来的“n”RowSpliter字符串作为每行数据的分隔符,不设置则为原来的CHR(10)例如,在接口配置文件中将GetResultUrl设为:2.3.11. 支付结果响应码CodeAction含 义显示内容00Approve承兑或交易成功交易成功01Decline查发卡方交易失败,请联系发卡行02Decline查发卡方的特殊条件交易失败,请联系发卡行03Decline无效商户交易失败,请联系发卡行04Pick-up没收卡交易失败,请联系发卡行05Decl

18、ine不予承兑交易失败,请联系发卡行06Decline出错交易失败,请联系发卡行07Pick-up特殊条件下没收卡交易失败,请联系发卡行09Decline请求正在处理中交易失败,请重试12Decline无效交易交易失败,请联系发卡行13Decline无效金额金额有误,请重试14Decline无效卡号(无此账号)无效卡号,请换卡重试15Decline无此发卡方此卡不能受理17Decline拒绝但不没收卡交易失败,请联系发卡行19Decline重新送入交易交易失败,请重试20Decline无效响应交易失败,请联系发卡行21Decline不能采取行动交易失败,请联系发卡行22Decline -故障怀

19、疑操作有误,请重试23Decline不可接受的交易费交易失败,请联系发卡行25Decline找不到原始交易交易失败,请联系发卡行30Decline格式错误交易失败,请联系发卡行31Decline交换中心不支持的银行此卡不能受理33Decline过期的卡卡片过期,请联系发卡行34Pick-up有作弊嫌疑交易失败,请联系发卡行35Pick-up受卡方与代理方联系(没收卡)交易失败,请联系发卡行36Pick-up受限制的卡此卡有误,请换卡重试37Pick-up受卡方电话通知代理方安全部门交易失败,请联系发卡行38Decline超过允许的PIN试输入密码错误次数超限39Decline无贷记账户交易失败

20、,请联系发卡行40Decline请求的功能尚不支持交易失败,请联系发卡行41Pick-up挂失卡交易失败,请联系发卡行42Decline无此账户交易失败,请联系发卡行43Pick-up被窃卡交易失败,请联系发卡行44Decline无此投资账户交易失败,请联系发卡行51Decline资金不足余额不足,请查询52Decline无此支票账户交易失败,请联系发卡行53Decline无此储蓄卡账户交易失败,请联系发卡行54Decline过期的卡卡片过期,请联系发卡行55Decline不正确的PIN密码错,请重试56Decline无此卡记录交易失败,请联系发卡行57Decline不允许持卡人进行的交易该卡

21、不支持此项服务,请联系发卡行58Decline不允许终端进行的交易交易失败,请联系发卡行59Decline有作弊嫌疑交易失败,请联系发卡行60Decline受卡方与代理方联系(不没收卡)交易失败,请联系发卡行61Decline超出金额限制金额超限62Decline受限制的卡交易失败,请联系发卡行63Decline侵犯安全交易失败,请联系发卡行64Decline原始金额错误交易失败,请联系发卡行65Decline超交易次数交易失败,请联系发卡行66Decline受卡方通知受理方安全部门交易失败,请联系发卡行67Pick-up强行受理(要求在自动会员机上没收此卡)交易失败,请联系发卡行68Decl

22、ine接收的响应超时交易超时,请稍后重试75Decline允许的输入PIN次数超限密码错误次数超限76Decline无效账户交易失败,请联系发卡行77Decline此卡需密码交易失败,请联系发卡行78Decline无效终端交易失败,请联系发卡行90Decline正在日终处理(系统终止一天的活动,开始第二天的活动,交易在几分钟后可再次发送)交易失败,请稍后重试91Decline发卡方不能操作交易失败,请稍后重试92Decline金融机构或中间网络设施找不到或无法达到交易失败,请稍后重试93Decline交易违法、不能完成交易失败,请联系发卡行94Decline重复交易交易失败,请稍后重试95De

23、cline核对差错交易失败,请稍后重试96Decline交换中心系统异常、失效交易失败,请稍后重试97Decline无此终端交易失败,请稍后重试98Decline交换中心收不到发卡方应答交易超时,请稍后重试99DeclinePIN 格式错交易失败,请稍后重试A0DeclineMAC鉴别失败交易失败,请稍后重试A2Approve交换中心转发了原交易请求,但未收到发卡方应答时,交换中心直接向受理方应答为有缺陷的成功交易交易结果请查询发卡行BFDecline 深银联支付号/授权码与银行卡号不匹配交易失败,请联系发卡行XXDecline超时已冲正交易失败,请稍后重试3. 商户端部署指南3.1. 系统环

24、境接口版本操作系统/系统平台开发语言备注COM版本Windows NT4.0Windows 2000ASPVBMicrosoft .Net版本.NET Framework 2.0/3.0/3.5C#.NETVB.NETJava版本JRE 1.3.1JRE 1.4.2JRE 1.5.0JavaPHP(注:如果使用JRE1.3.1版本,需要把jce-1_2_2.zip解压后得到的jce1.2.2目录下lib文件夹中的四个jar文件拷贝到JRE1.3.1安装目录的lib文件夹中的ext文件夹下面,并在ext同级目录的security文件夹中修改java.security文件,在其中添加securit

25、y.provider.3=com.sun.crypto.provider.SunJCE)Java版本(NJCE)JRE 1.4.2JRE 1.5.0Java解决了Java加密扩展的出口限制,而且商户无法修改安全策略文件的情况。且修改了BC包的命名空间,防止与商户系统中的其它版本的BC包产生冲突。对于采用Java环境的商户,建议采用NJCE版。PHP版本PHP4.4.8及其以上版本PHP私钥文件只支持PEM格式,需采用工具将pfx转换为PEM格式4. 银联在线支付商户端LOGO使用说明银联在线支付LOGO:使用方式请参考附件“银联在线支付”品牌标识布放规范5. COM版商户接口函数对象名称方法/

26、属性功能OpenVendorV34.NetTranEncryptMsg()方法数字信封加密DecryptMsg()方法数字信封解密SignMsg()方法数字信封签名VerifyMsg()方法数字信封验证签名GetResult()方法获取订单数据LastResult属性上次调用后的返回结果LastErrMsg属性上次调用后的出错信息CurrVer属性控件版本5.1. 接口函数5.1.1. EncryptMsg()Function EncryptMsg( ByVal TobeEncrypted As Variant, ByVal CertFile As Variant, ) As Long功能:对

27、数字信封进行加密参数:Variant TobeEncrypted:待加密的数字信封,输入值Variant CertFile: 公钥证书的路径地址,输入值返回值:Long型0为调用成功,密文见LastResult属性-1为调用失败,失败原因见LastErrMsg属性5.1.2. DecryptMsg()Function DecryptMsg( ByVal TobeDecrypted As Variant, ByVal KeyFile As Variant, ByVal PassWord As Variant) As Long功能:对数字信封进行解密参数:Variant TobeDecrypted

28、:待解密的数字信封,输入值Variant KeyFile:存放私钥的PFX文件的路径地址,输入值Variant PassWord:保存私钥的密码,输入值返回值:Long型0为调用成功,解密后的明文见LastResult属性-1为调用失败,失败原因见LastErrMsg属性5.1.3. SignMsg()Function SignMsg( ByVal TobeSigned As Variant, ByVal KeyFile As Variant, ByVal PassWord As Variant) As Long功能:使用数字信封发送者的私钥对未加密的数字信封进行数字签名参数:Variant

29、TobeSigned:待进行数字签名的、未加密的数字信封,输入值Variant KeyFile:存放私钥的PFX文件的路径地址,输入值Variant PassWord:保存私钥的密码,输入值返回值:Long型0为调用成功,签名内容见LastResult属性-1为调用失败,失败原因见LastErrMsg属性5.1.4. VerifyMsg()Function VerifyMsg( ByVal TobeVerified As Variant, ByVal PlainText As Variant, ByVal CertFile As Variant) As Long功能:验证数字信封签名是否合法参

30、数:Variant TobeVerified:待验证签名的数字签名,输入值Variant PlainText:未加密的数字信封,输入值Variant CertFile: 公钥证书的路径地址,输入值返回值:Long型0为调用成功-1为调用失败,失败原因见LastErrMsg参数5.1.5. GetResult()Function GetResult( ByVal MerId As Variant, ByVal UserId As Variant, ByVal Pwd As Variant, ByVal PaySuc As Variant, ByVal ShoppingTime As Varian

31、t, ByVal BeginTime As Variant, ByVal EndTime As Variant, ByVal OrderNo As Variant, ) As Long功能:从好易联支付网关下载符合条件的交易结果数据参数:Variant MerId: 好易联商户IDVariant UserId: 好易联对账用户IDVariant Pwd: 好易联对账用户密码Variant PaySuc: 交易结果类型(0-失败订单,1-成功订单,2-全部订单)Variant ShoppingTime: 交易日期(查询ShoppingTime到现在的交易结果数据,此域不为空时,BeginTime

32、及EndTime失效,格式为:yyyy-mm-dd hh:mm:ss)Variant BeginTime: 开始时间(查询BeginTime到EndTime的交易结果数据,格式为:yyyy-mm-dd hh:mm:ss)Variant EndTime: 结束时间(查询BeginTime到EndTime的交易结果数据,格式为:yyyy-mm-dd hh:mm:ss)Variant OrderNo:商户订单号(可以为空)对账接口URL在安装路径下的OpenVendor.ini文件中配置,上生产时需要修改返回值:long型0为调用成功,订单数据见LastResult属性-1为调用失败,失败原因见La

33、stErrMsg属性5.1.6. LastResult属性功能:返回上一次调用EncryptMsg()、DecryptMsg()、SignMsg()、GetResult()方法的输出值类型:String型5.1.7. LastErrMsg属性功能:返回上一次函数调用失败后的出错信息类型:String型LastErrMsg属性的返回值类似于:Error Number:-10005Error Description:ER_FIND_CERT_FAILED(找不到证书)5.1.8. CurrVer属性功能:返回当前接口的版本类型:String型CurrVer属性的返回值类似于:广州好易联支付网络有限

34、公司支付网关商户接口 版本号:3.4 最后编译日期:2004-09-096. .Net版商户接口函数对象名称方法/属性功能com.gnete.GneteCryptencryptMsg()方法数字信封加密decryptMsg()方法数字信封解密signMsg()方法数字信封签名verifyMsg()方法数字信封验证签名getCurrVer()方法控件版本6.1. 接口函数6.1.1. encryptMsg()public static bool encryptMsg(string toBeEncrypted, string certKey, out string result, out stri

35、ng errMsg)功能:对字符串进行加密参数:string toBeEncrypted对该字符串进行加密string certKey加密证书公钥Keyout string result加密后的密文out string errMsg错误信息返回值:bool型true为加密成功,密文见resultfalse为加密失败,失败原因见errMsg6.1.2. decryptMsg()public static bool decryptMsg(string toBeDecrypted, string keyFile, string password, out string result, out str

36、ing errMsg)功能:对加密后的密文进行解密参数:string toBeDecrypted对该字符串进行加密string keyFile解密私钥证书路径string password私钥证书密码out string result解密后的明文out string errMsg错误信息返回值:bool型true为解密成功,密文见resultfalse为解密失败,失败原因见errMsg6.1.3. signMsg()public static bool signMsg(string toBeSigned, string keyFile, string password, out string

37、result,out string errMsg) 功能:对字符串进行签名参数:string toBeSigned需要进行签名的字符串string keyFile私钥文件路径string password 私钥文件密码out string result签名后的数据out string errMsg错误信息返回值:bool型true为签名成功,签名数据见resultfalse为签名失败,失败原因见errMsg6.1.4. verifyMsg()public static bool verifyMsg(string toBeVerified, string plainText, string pu

38、bKey, out string errMsg) 功能:验证签名参数:string toBeVerified待验证签名的密文string plainText待验证签名的明文string pubKey签名者公钥证书Keyout string errMsg错误信息返回值:bool型true为验签成功false为验签失败,失败原因见errMsg6.1.5. GetResult()public bool GetResult(string strUrl, string MerId, string UserId, string Pwd, string PaySuc, string ShoppingTime

39、, string BeginTime, string EndTime, string OrderNo, out string Result, out string ErrMsg)功能:从好易联支付网关下载符合条件的交易结果数据参数:string strUrl:对帐接口地址string MerId:好易联商户IDstring UserId:好易联对账用户IDstring Pwd: 好易联对账用户密码string PaySuc: 交易结果类型(0-失败订单,1-成功订单,2-全部订单)string ShoppingTime: 交易日期(查询ShoppingTime到现在的交易结果数据,此域不为空时

40、,BeginTime及EndTime失效,格式为:yyyy-mm-dd hh:mm:ss)string BeginTime:开始时间(查询BeginTime到EndTime的交易结果数据,格式为:yyyy-mm-dd hh:mm:ss)string EndTime:结束时间(查询BeginTime到EndTime的交易结果数据,格式为:yyyy-mm-dd hh:mm:ss)string OrderNo:商户订单号(可以为空)out string Result:返回结果out string ErrMsg:错误信息返回值:boolean型true为调用成功,订单数据见Result属性false为调用失败,失败原因见ErrMsg属性6.1.6. getCurrVer()功能:返回当前接口的版本类型:strin

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号