骏网直充产品接口开发参考文档V0.docx
JUNNETl骏网骏网直充产品接口开发参考文档V3.0北京骏网联合科技有限公司文档历史修订日期修订内容修订版本修订人2008-5-12创建1.0王红伟 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。错误!未定义书签。2.1.普通事例错误!未定义书签。3各种语言实例错误!未定义书签。3.1. Aspx3.2. Asp3.3. Java3.4. Jsp3.5. Php36接口测试步骤错误!未定义书签错误!未定义书签错误!未定义书签 错误!未定义书签 错误!未定义书签 错误!未定义书签4.XML实例.错误!未定义书签。目录L引言错误!未定义书签。1.1. 编写目的,1.2. 背景.1.3. 定义1.4. 参考资料2.参数概述.4.1.XML5.附录错误!未定义书签。错误!未定义书签。1引言1.1 .编写目的本系统采用公开标准Web方式实现骏网平台和合作厂商产品充值服务器的通讯,由合作厂商产品冲值服务器为骏网提供充值接口,骏网通过访问该接口实现为用户充值的目的。接口内部实现由产品运营商(或开发商)完成。指导运营商技术人员实现与电子商务接口的顺利对接12背景为了提高运营商开发的速度和实时性,简单举例说明媚种语言的接收参数方法。13定义骏网平台直充参考文档,需要实现每种语言的举例,说明一些细节的格式,等通用的功能。14参考资料2 .参数概述21普通事例1、数据传送:骏网平台通过运营商提供的接口url,PoSt数据给运营商。Url=Method=POSTEncoding=GB2312/Encoding=UTF-S(双方可以协定)Parameters=ServerID=O&AreaID=O&Username=test&CardType=10&JNetBillID=C611&Sign=4d1f312ffe48794ae9e38c72bc5da745接受数据:iServerID=s"ServerID"iAreaID=sAreaID"sUsername=s"Username"1;iCardType=s"CardType"iBillID=shJNetBniIDn;iSign=s"Sign"2、系统安全:a.IP限制:通过骏网到产品充值服务器的访问IP为骏网服务器(组)的固定IP,产品充值服务器限制只允许骏网的IP访问该接口,其他尝试访问该接口的IP均为非法IP。获取访问的IP:RequestIP=ing().Trim();b.数据加密:主要应用标准32位MD5数据加密算法,开发双方约定一个共同的MD5加密KEY,进行MD5不可逆加密,产品充值服务器程序在收到骏网请求的时候,需比较该加密字符串,如果不符合双方加密约定,则该访问为非法。3、返回信息的格式充值:Return=xxx&ServerlD=xxx&AreaID=xxx&Usemame=xxx&CardType=xxx&JNetBillID=xxx&MChBinlD=XXX&Sign=xxx&Message=xxx查询:Retum=xxx&JNetBillID=xxx&MchBillID=xxx&Sign=xxxxxx3 .各种语言实例3.1 Aspx1、接受参数:stringRequestURL=;stringRequestIP=;stringSerVerID=;此参数为XmI文件里面的SerVerIJD的值,由用户自己选择stringAreaID=;用户所选择SerVejID下对应的Area_ID,由用户自己选择stringUsername=;用户所在产品服务器上的账号stringCardType=;用户所选择的包含在XmI里面的卡类型ID,对应字段为CarCLTypeDstringJNetBillID=;用户直冲产品时,在JCard平台生成的账单号,其值唯一StringSign=;/加密Key,在开发时由双方协商确定ServerID=s"ServerID"AreaID=s',AreaID"Username=s"Usemame"CardType=s"CardType"JNetBillID=s"JNetBillID"Sign=Srsign"RequestIP=ing().Trim();if(rVariables"Request_Method"!="GET")(RequestURL=.ToStringO+"7ServerID="+ServerID+<feAreaID="+AreaID+"&Usemame="+Usemame+"&CardType="+CardType+"cfeJNetBilllD="+JNetBillID÷"&Sign="+Sign;)else(RequestURL=.ToString();)2、MD5加密.asswordForStoringInConfigFile(str,"MD5")3.2 Asp1、接受参数:dimserverID,AreaID,UserName,CardType,JNetBilIID,Sign,RequestIPServerID=request("ServerID)AreaID=request("AreaID)'UserName=requestC'userName")CardType=request("CardTypeH)JNetBillID=request("JNetBillID")Sign=request("Sign,')RequestIP=rVariables(,'REMOTE.ADDR")3.3 Java1、接受参数:StringiServerID=rameter("ServerID");服务器IDStringiAreaID=rameler("AreaID");/分区IDStringsUsemame=rameter("Usemame");/用户帐号名StringiCardType=rameter("CardType")J/产品对应编码StringIJNetBillID=rameter(NNetBiID");骏网单据号StringiSign=rameter("Sign");签名StringSClientIP=moteAddr();充值人客户端IP3.4 Jsp1、接受参数<%()pagelanguage="java"ContentType=*'text/html;charset=gb2312"%><%pageimport="PayMd5,ConfigKey"%>PayMd5是引用的md5包的名称/ConfigKey是引用密钥包的名称<%Stringkey=yValue("keyValue");/商家密钥StringiServerID=rameter("ServerID");/服务器IDStringiAreaID=rameter("AreaID");/分区IDStringsUsername=rameter("Usemame");/用户帐号名StringiCardType=rameter("CardType");/产品对应编码StringiJNetBillID=rameterfJNetBilHD");骏网单据号StringiSign=rameter("Sign");签名判断参数是否为空/获得MD5签名hmac=5(sUsemame+iCardType+iJNetBiIlID+key);判断签名是否一致判断其他参数是否合法村在%>3.5 Php1、接受参数3.6 接口测试步骤测试用的Key=alb2c31 .测试充值接口,组织一个测试串在浏览器地址栏输入注意:Sign=md5(Username+CardType+JNetBiIUD+Key)Sign=md5(testName15C521a1b2c3)充值接口返回串的格式:在成功的单据:Return=OOO&ServerID=O&AreaID=O&Usemame=testName&CardType=15&JNetBilIID=C521&MChBiHlD=(X)O002&Sign=2a3b9e76eaee29de4ed26823a4529f6d&sMessage=充值成功!失败的单据:Return=555&ServerID=0&AreaID=0&Usemame=testName&CardType=15&JNetBillID=C521&MchBillID=&Sign=a852417be4bb1d648f2ecddaaIaaOlI&sMessage=数字签名Md5错误2 .测试查询接口,组织一个测试串在浏览器地址栏输入注意:Sign=md5(JNetBillID+Key)Sign=md5(C52Ialb2c3)查询接口返回串的格式:在查询成功:Retum=(X)0JNetBillID=C521&MchBillID=000002&Sign=45b823f6c9de41258bd154380ae42951查询失败:Retuni=(X)9&JNetBillID=C521&MchBillID=&Sign=3cOeO6fDb5O3b6110d8ebecba7634eae4 .XML实例<ServerInfo><GameServerInfo><Server_ID>O</Server_ID>VSerVeJName>九城服务器v/SerVeJName><GameServerInf><GameAreaInf><Area_ID>1</Area_ID><Server_ID>O</Server_ID><Area>一区(电信)<Area><GameAreaInfo><GameAreaInf><Area_ID>2</Area_ID><Server_ID>O</Server_ID>vArea>二区(电信)<Area><GameAreaInfb><GameCardType><Card_Type_ID>ll</Card_Type_ID>VCard_Type>九城卡15元包月v/Card_Type><Card_Value>15</Card_Value><GameCardType><GameServerInfo>:每个服务器的信息<ServerJD>:服务器的ID对应充值接口的参数SerVerlD<Server_Name>:服务器的名称<GameAreaInfo>:每个区域的信息<AreaJD>:区域的ID对应充值接口的参数ArealD<ServejID>:区域所属的服务器ID<Area>:区域的名称<GameCardType>:对应产品的信息<Card_Type_ID>;产品的类型(产品的对应编码)对应充值接口的参数CardTyPe<Card_Type>:产品的名称<Card_Value>:产品的面值(RMB)4.1 XML1、有区服的XML配置<ServerInfo><GameServerInfo><S