淘宝API互联平台ASP版接入宝典

1.本示例代码是ASP的REST风格SAAS平台接入演示,自定义了三个函数
   1)validateUserforREST()封装validateUser的REST风格的请求参数。
   2)getHTTPPage()发送HTTP请求,调用validateUser接口。
   3)DOMXML()解析REST风格的响应。
2.本示例包含了两个asp文件,一个是 formatUtil.asp格式化日期函数,一个是 md5.asp加密函数
3.示例代码如下:
引用:
<!--#include file="md5.asp" -->
<!--#include file="formatUtil.asp"-->
<%

DIM userId,appId,appInstanceId,token,REST_REQUEST,REST_RESPONSE
Dim returnValue
'获取SIP平台的请求参数
userId=request("user_id")
appId=request("app_id")
appInstanceId=request("app_instance_id")
token=request("token")
target=validateUserforREST (userId,appId,appInstanceId,token) '组织输入参数,形成REST风格请求
REST_RESPONSE=getHTTPPage(target) '发送HTTP请求,调用validateUser接口
returnValue=DOMXML(REST_RESPONSE) '解析REST风格的响应
If(returnValue="1") Then
   session("rolename")="订购者"
   Response.Redirect("main.asp")

Else
   session("rolename")="使用者"
   Response.Redirect("main.asp")
End If


'自定义ASP 响应validteUserforREST风格的处理函数
Function validateUserforREST(userId,appId,appInstanceId,token)
dim sip_url_pre,sip_appkey,sip_apiname,sip_timestamp,sip_sign,sip_sessionid
dim cert_code
sip_appkey="10885" //您要接入的软件编号,开发者社区注册软件的时候提供
cert_code="0f0de9a02aff11ddb2e1bcf28e0b2955"//您要接入此软件的密钥,开发者社区注册软件的时候提供
sip_sessionid=Now()
sip_url_pre="http://sipdev.alisoft.com/sip/rest?" //发送REST请求到SIP测试平台,测试通过以后要改成正式URL: http://sip.alisoft.com/sip/rest?
sip_timestamp=getDate(date,"yyyy-mm-dd")&" "&getTime(time,"hh:mm:ss")
sip_sign_source=cert_code&"appId"&appId&"appInstanceId"&appInstanceId&"sip_apinamealisoft.validateUser"&"sip_appkey"&appId&"sip_sessionid"&sip_sessionid&"sip_timestamp"&sip_timestamp&"token"&token&"userId"&userId
sip_sign=md5(sip_sign_source)
sip_url=sip_url_pre&"sip_appkey="&sip_appkey&"&sip_apiname=alisoft.validateUser"&"&sip_timestamp="&sip_timestamp&"&sip_sign="&   _
sip_sign&"&userId="&userId&"&appId="&appId&"&appInstanceId="&appInstanceId&"&token="&token&"&sip_sessionid="&Now()
validateUserforREST=sip_url
End Function  


'发送HTTP请求给SaaS平台
Function getHTTPPage(url)
Dim objXMLHTTP, xml
Set xml = Server.CreateObject("Microsoft.XMLHTTP")

xml.Open "GET", url, False
' Pull the data from the web page
xml.Send

'Response.Write xml.responseText
getHTTPPage=bytesToBSTR(xml.responseBody,"GB2312")
Set xml = Nothing
End Function

Function BytesToBstr(body,Cset)
dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function

'解析validateUser接口返回的XML数据
Function   DOMXML(strXML)
   Set objXML = Server.CreateObject("Microsoft.XMLDOM")
   objXML.loadXML(strXML)
   set objRootElement = objXML.documentElement
   if not isObject(objRootElement) then
   DOMXML="no file loaded"
else
   DOMXML=(objRootElement.childnodes(0).text)
   end if
End Function

%>
包含文件formatUtil.asp格式化日期
引用:
<%
'功能描述:格式化日期函数
'输入参数:var_date 当前日期   var_format 日期格式
'输出参数:输出指定的日期格式 yyyy-mm-dd

function getDate(var_date,var_format)
   if var_format="yyyy-mm-dd" then
var_year=year(var_date)
var_month=month(var_date)
var_day=day(var_date)
if (var_month>=0 and var_month<=9) then
   var_month="0"&var_month  
end if
  
if (var_day>=0 and var_day<=9) then
   var_day="0"&var_day
end if
str_date=var_year&"-"&var_month&"-"&var_day
       getDate=str_date
  
   end if
end function

'功能描述:格式化时间函数
'输入参数:var_time 当前时间   var_format 日期格式
'输出参数:输出指定的日期格式 hh:mm:ss
function getTime(var_time,var_format)
   if var_format="hh:mm:ss" then
var_hour=hour(time)
       var_minute=minute(time)
       var_second=second (time)
      
       if (var_hour>=0 and var_hour<=9) then
         var_hour="0"&var_hour
       end if
      
       if (var_minute>=0 and var_minute<=9) then
         var_minute="0"&var_minute
       end if
      
       if (var_second>=0 and var_second<=9) then
         var_second="0"&var_second
       end if
      
       str_time=var_hour&":"&var_minute&":"&var_second
getTime=str_time
   end if

end function
%>
ASP的MD5加密请到网上有很多。
JS JSP ASP .NET J2AM API接口和返回的本 目前所有本的JS JSP ASP .NET J2AM 都是提供源代码的,对于一些脚本语言来说,直接解压缩之后就可以使用了,不需要什么安装步骤。另外一些需要编译的语言,则提供了编译用的 shell 文件(Linux/Unix 下使用)和 bat 文件(Windows 下使用),或者直接提供编译好的二进制库文件。 不过为了让读者能够更清楚如何安装,我们还是对每种语言的安装都做详细的讲解,你可以在安装列表里找到你感兴趣的语言的安装方法。 示例 如果你已经把 JS JSP ASP .NET J2AM 安装好了,那么接下来就让我们开始第一个小程序吧。按照惯例,第一个演示程序几乎总是 HelloWorld,我们也不想打破这个惯例,不过对于 PHPRPC 来说,有服务器端就要有客户端,否则我们就没有什么好演示的啦,所以我们的第一个演示程序实际上是两个,一个是服务器端,另一个是客户端。我们都先用 PHP 语言来写好了。 服务器端 view plaincopy to clipboardprint? <?php include ("php/phprpc_server.php"); function HelloWorld() { return 'Hello World!'; } $server = new PHPRPC_Server(); $server->add('HelloWorld'); $server->start(); ?> 客户端 view plaincopy to clipboardprint? <?php include ("php/phprpc_client.php"); $client = new PHPRPC_Client('http://127.0.0.1/server.php'); echo $client->HelloWorld(); ?> 对于服务器端程序,我们应该将它命名为 server.php(这是因为客户端调用时用的是这个名字,而不是 PHPRPC 的什么规定),然后把它放在本地 Web 服务器的根目录下,并保证服务器可以正常运行 PHP 程序,之后在浏览器或命令行下运行客户端程序,你就可以看到结果了。 这两个程序几乎简单到无需解释的地步,所以如果你已经明白它们的意思,那么就可以直接跳过下面的解释,继续看后面的例子。 服务器端第 1 句是将 它的服务器端程序包含到你的程序里,之后的 2 - 4 句是定义一个远程调用的函数,你会发现它与本地函数没有任何区别。第 5 句是创建服务器端对象,第 6 句是添加要发布的方法,这里添加的就是刚刚定义的 HelloWorld 函数,在 PHP 中,添加的发布方法是函数名的字符串表示,在其它语言中可能略有不同。第 7 句是启动服务。 客户端就更简单了,第 1 句是将 它的客户端程序包含到你的程序里。第 2 句是创建客户端对象,其中的参数就是服务器端的地址。第 3 句是对远程方法(函数)的调用,之后通过 echo 将它显示出来。如果顺利的话,执行后你就会看到输出的 Hello World!。 上面的例子是发布的是函数,下面我们来看一下类中的静态方法如何发布: view plaincopy to clipboardprint? <?php include ("php/phprpc_server.php"); class Hello { static function HelloWorld() { return 'Hello World!'; } } $server = new PHPRPC_Server(); $server->add('HelloWorld', 'Hello'); $server->start(); ?> 这个服务器端只要它的名字与发布的地址与上面那个发布函数的例子一样的话,上面的那个客户端就可以得到同样的结果,也就是说,在客户端看来是没有任何区别的。 它并不是只可以在 PHP 中使用,它同样支持其它语言的服务器和客户端,而且还可以无差别的相互调用。 现在我们来看一下如何在 Java 中调用这个 PHP 的服务器方法: view plaincopy to clipboardprint? import org.phprpc.*; interface IHello { public String helloWorld(); } public class HelloWorld
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值