阿里软件接口开发一

简介:

 

首先必须在阿里软件中注册,然后获得相应的app_id,后进行测试

测试代码如下:

 

复制代码
 protected void Page_Load(object sender, EventArgs e)
{
HttpRequest request
= HttpContext.Current.Request;
//在软件应用中心跳转到ISV应用时的URL参数中取得,user_id、app_instance_id和token
string aepUserId = request.Params["user_id"];
string aepInstanceId = request.Params["app_instance_id"];
string appId = request.Params["app_id"]; //软件注册时获得
string token = request.Params["token"]; //每次点击生成不一样的token,并只有10秒钟有效
string code = "58b43970b12711ddb3e6cfd602199686";//软件注册时获得
System.DateTime timestamp = System.DateTime.Now;//时间获得当前系统时间

//sip_sign签名字段的生成,将CERT CODE和所有接口要传的参数进行组合,再将组装好的字符串进行md5加密后转成16进制后得到一个32位的密文
string sipsign = code + "appId" + appId + "appInstanceId" + aepInstanceId + "sip_apinamealisoft.validateUser" + "sip_appkey" + appId + "sip_timestamp" + timestamp + "token" + token + "userId" + aepUserId;

MD5CryptoServiceProvider md5
= new MD5CryptoServiceProvider();
sipsign
= BitConverter.ToString(md5.ComputeHash(Encoding.UTF8.GetBytes(sipsign))).Replace("-", "");
//sip_sign生成END

//系统级参数拼装,包括sip_appkey、sip_apiname、sip_timestamp和sip_sign,sip_apiname是接口名这里举validateUser为例
string SIPdate = "sip_appkey=" + appId + "&sip_apiname=alisoft.validateUser&sip_timestamp=" + timestamp + "&sip_sign=" + sipsign;
//接口级参数拼装
string apidate = "&userId=" + aepUserId + "&appId=" + appId + "&appInstanceId=" + aepInstanceId + "&token=" + token;

ASCIIEncoding encoding
= new ASCIIEncoding();
byte[] postdata = encoding.GetBytes(SIPdate + apidate);//所有要传参数拼装
// Prepare web request
//目前阿里软件的服务集成平台(SIP)的接口测试地址是:http://sipdev.alisoft.com/sip/rest,生产环境地址是:http://sip.alisoft.com/sip/rest,
//这里使用测试接口先,到正式上线时需要做切换
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://sipdev.alisoft.com/sip/rest");
myRequest.Method
= "POST";
myRequest.ContentType
= "application/x-www-form-urlencoded";
myRequest.ContentLength
= postdata.Length;
Stream newStream
= myRequest.GetRequestStream();
// Send the data.
newStream.Write(postdata, 0, postdata.Length);
newStream.Close();
// Get response
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
StreamReader reader
= new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
string content = reader.ReadToEnd();

//解析接口返回值,这里选用XML格式的解析,接口默认返回是XML格式
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(content);
XmlNode xn
= xmlDoc.SelectSingleNode("String");
XmlElement xe
= (XmlElement)xn;
string result = xe.InnerText;
if ("1".Equals(result))
{
//如果是使用者。。。。
windowalert("使用者");
}
else if ("0".Equals(result))
{
//如果是订阅者。。。。
windowalert("订阅者");
}
}

private void windowalert(string str)
{
HttpResponse Response
= HttpContext.Current.Response;
Response.Write(
"<script>alert('" + str + "');window.close(true);</script>");
}
复制代码
 
 
如上所以述返回的xml格式一般为:
正常返回格式 
XML数据格式 
<?xml version="1.0" encoding="utf-8" ?> 
<String>0</String>
返回值 返回值描述 返回值说明 
1 应用的订购者 订购者就是订购该服务的人 
0 应用的使用者 使用者就是使用该服务的人,只有被订阅者授权(邀请)以后才可以使用该服务 
-1 尚未订购该应用 表示尚未订购该应用的用户 
-2 非法用户 表示非法用户(没有正常登录软件互联平台,或者URL已过期失效) 
正常情况下如果在阿里旺旺中点击 使用软件时返回的是1
转载请注明出处[ http://samlin.cnblogs.com/] 
作者赞赏
 


刚做的招标网: 八爪鱼招标网 请大家多意见
分类:  Works

本文转自Sam Lin博客博客园博客,原文链接:http://www.cnblogs.com/samlin/archive/2008/11/13/1332800.html,如需转载请自行联系原作者
目录
相关文章
|
1天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1056 0
|
10天前
|
人工智能 运维 安全
|
1天前
|
弹性计算 Kubernetes jenkins
如何在 ECS/EKS 集群中有效使用 Jenkins
本文探讨了如何将 Jenkins 与 AWS ECS 和 EKS 集群集成,以构建高效、灵活且具备自动扩缩容能力的 CI/CD 流水线,提升软件交付效率并优化资源成本。
242 0
|
8天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
8天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。
|
9天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
729 23