`
stephen830
  • 浏览: 3001985 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

step-by-step集成阿里巴巴的阿里软件平台(alisoft)接口(上篇)

    博客分类:
  • java
阅读更多
★★★ 本篇为原创,需要引用转载的朋友请注明:《 http://stephen830.iteye.com/blog/259244 》 ,谢谢支持!★★★


本篇将详细讲述如何与集成阿里巴巴的阿里软件平台接口,关于阿里软件的具体信息可以访问http://www.alisoft.com进行查看。

说明:以下所作的任何操作都是免费的.

集成了alisoft平台后就能进行以下事情:
(1)通过阿里平台统一认证
(2)用户免登录进入(从阿里软件平台直接过来,无需再次登录)自己开发的软件
(3)淘宝网信息:淘宝商品发布目录、淘宝商品显示目录
(4)获取别人在淘宝网店铺内的宝贝
(5)个人淘宝网店铺信息:店铺目录、商品信息(仓库里的宝贝、出售中的宝贝、已卖出的宝贝)
(6)将自己的软件发布到阿里软件平台上供别人使用,从中收取费用.

这第6点是我们最关注的,做1个受市场欢迎的软件,发布到阿里软件平台上,借助阿里巴巴巨大的人气,可以被众多的客户看到,很可能就成为你人生的一个转折点.
btw:在平台上发布软件要交5000元保证金(目前),不过以后再发布第2个,第3个等等就不用再交了.



在开始之前,你需要在alisoft上注册一个旺号,另外最好能在淘宝网上开个店铺放几个商品,这样能更好的对自己的程序进行测试。

怎么样才能把自己的程序与阿里软件alisoft平台挂钩起来呢?其实,也很简单.

(1)注册一个旺号
(2)登录alisoft.com后到[开发者加盟] (图1)

(图1)

(3)到[去我的工作台](图2)

(图2)

(4)注册新软件(图3)

(图3)


(5)注册好新软件后,你就可以得到阿里软件给你的2个编号:APP_ID 和CERT_CODE (图4)

(图4)

(6)编辑软件信息,设置软件测试入口(图5),这个url允许用本地地址,即可以填写http://127.0.0.1:8081/test/alisoft/alisoft.jsp类似的页面地址,这样子就可以从阿里软件平台直接登录你开发的系统中了.(当然,在软件完成后发布前,必须将这2个地址改为互联网的地址,这样才能被别人使用)

(图5)

(7)ok.这样子,当你下次登录阿里软件平台,点[图6中的软件名称]就可以直接进入自己开发的系统了.

(图6)


关于阿里软件平台的api接口文档地址 http://isp.alisoft.com/apidoc/api/apiIndex.html


从阿里软件平台登录自己系统入口的jsp例子(这个jsp页面就是前面图5中设置的软件测试入口的jsp页面名字):
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ page import="com.soft4j.utility.AliSoft"%>
<%@ page import="com.soft4j.bo.Employee"%>
<%@ page import="com.soft4j.bo.EmployeeMgr"%>
<%
	response.setHeader("Cache-Control","no-cache");
	response.setHeader("Expires","Thu,01 Jan 1970 00:00:01 GMT");
	
	String[] ret = null;
	String[] apiParams = null;
	String[] parseParams = null;
	String itemFields = null;
	
	StringBuffer data = new StringBuffer();
	data.append("\n<br>");
	boolean showXmlSource = false;
	
	String userId = request.getParameter("user_id");
	String errInfo = "";
	try{
		//alisoft.validateAppUser
		//调用api接口 alisoft.validateAppUser 进行判断是否为合法用户
		//该api接口说明:http://isp.alisoft.com/apidoc/api/isp_alisoft/1/alisoft.validateUser.html
		String validateAppUserResult = "";
		boolean bValidateAppUser = false;
		data.append("<hr size=1>");
		ret = AliSoft.callApi(request,"alisoft.validateAppUser",null);
		validateAppUserResult=(String)AliSoft.parseResult("alisoft.validateAppUser",ret[1],null);
		data.append("<B>alisoft.validateAppUser</B>["+userId+"]="+ret[0]+",");
		data.append(validateAppUserResult);
		data.append("\n<br>");
		//1 应用的订购者 订购者就是订购该服务的人 
		//0 应用的使用者 使用者就是使用该服务的人,只有被订阅者授权(邀请)以后才可以使用该服务 
		if("0".equals(validateAppUserResult)||"1".equals(validateAppUserResult)){
			bValidateAppUser = true;
		}else{
			throw new Exception("很抱歉,您没有订阅本软件。");
		}
		
		//api:alisoft.getUsingUser
		//获取已经订阅你软件的用户列表
		String allUsingUsers = "";
		data.append("<hr size=1>");
		itemFields = "userId,userName";
		parseParams = new String[]{itemFields};
		ret = AliSoft.callApi(request,"alisoft.getUsingUser",null);
		allUsingUsers=(String)AliSoft.parseResult("alisoft.getUsingUser",ret[1],parseParams);
		data.append("<B>alisoft.getUsingUser</B>="+ret[0]+"|");
		data.append(allUsingUsers);
		data.append("\n<br>");
		//计算当前登录的用户id对应的用户name
		String userName = null; 
		if(bValidateAppUser){//当前用户必须为软件的订阅者或者使用者
			String[] users = allUsingUsers.split(",");
			for(int i=0;i<users.length;i++){
				if(userId.equals(users[i])){
					userName = users[i+1];
					break;
				}else{
					i++;
				}
			}
			data.append("<B>合法用户:"+userName+"</B>");
		}
		if(userName==null){
			throw new Exception("很抱歉,在软件订阅列表中没有查到您的资料。");
		}
		//userId,userName 在本地应用系统中进行免登陆
        //用户第一次来的话,存入本地数据库内  
        //第2次来的话,就无需存入数据库中,直接进入系统 
		Employee employee = EmployeeMgr.checkLogin(userId,userName,request);
		if(employee!=null){
			response.sendRedirect("employee/menuframe.htm");
		}else{
			throw new Exception("很抱歉,您暂时不能登录应用软件。");
		}
	}catch(Exception e){
		errInfo = e.getMessage();
	}finally{
		
	}
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>后台管理</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="styles/default.css" type="text/css" rel="stylesheet" />
</head>
<body bgcolor="#ffffff" topmargin="150px" leftmargin="20px" rightmargin="20px">
<%=errInfo%><br>
<%=data.toString()%>
</body>
</html>




例子中使用到的java方法将在下面列出几个重点地部分:

//...
        public static final String SIP_APP_KEY = "xxxx";//这里填写alisoft给你的app_id
	public static final String SIP_APP_SECRET = "yyyy";//这里填写alisoft给你的cert_code

	// http://sipdev.alisoft.com/sip/rest 测试环境
	// http://sip.alisoft.com/sip/rest 正式环境
        // 请使用正式环境地址,不要使用阿里软件平台的测试环境地址,阿里提供的测试环境数据都是不准确的,会给软件开发测试增加难度.
	public static final String SIP_REST_URL = "http://sip.alisoft.com/sip/rest";

//...

/**
	 * 调用api.
	 * @param url api接口对应的url地址.
	 * @return
	 */
	public static String[] invokeRest(String url) {
		HttpURLConnection conn = null;
		BufferedReader reader = null;
		try {
			conn = (HttpURLConnection) new URL(SIP_REST_URL).openConnection();
			conn.setRequestMethod("POST");
			conn.setDoOutput(true);
			conn.connect();
			conn.getOutputStream().write(url.getBytes());
			reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));// 设置编码
			StringBuffer outbuffer = new StringBuffer();
			String line = null;
			while ((line = reader.readLine()) != null) {
				outbuffer.append(line);
			}
			String code = conn.getHeaderField("sip_status");//返回的状态码
			String result = outbuffer.toString();//返回内容
			return new String[] {code,result};
		} catch (Exception e) {
			e.printStackTrace();
		} finally{
			if(reader!=null){
				try {
					reader.close();//关闭流
				} catch (IOException e1) {
					e1.printStackTrace();
				}
			}
			if(conn!=null){
				conn.disconnect();//关闭url连接
			}
		}
		return null;
	}
//...

/**
	 * 生成api调用所需的url.
	 * @param hm
	 * @param charset
	 * @param exts 附加参数.
	 * @return
	 * @throws Exception
	 */
	public static String makeUrl(HashMap hm, String charset) throws Exception {
		List keys = new ArrayList(hm.keySet());
		Collections.sort(keys);
		StringBuffer content = new StringBuffer();
		content.append(SIP_APP_SECRET);
		for (int i = 0; i < keys.size(); i++) {
			content.append(keys.get(i));
			content.append(hm.get(keys.get(i)));
		}
		MessageDigest md = MessageDigest.getInstance("MD5");
		String sign = byte2hex(md.digest(content.toString().getBytes(charset)));
		content.delete(0, content.length());
		for (int i=0;i<keys.size();i++) {
			content.append(keys.get(i));
			content.append("=");
			content.append(URLEncoder.encode(hm.get(keys.get(i)).toString(),charset));
			content.append("&");
		}
		content.append("sip_sign=");
		content.append(sign);
		keys.clear();
		keys = null;
		return content.toString();
	}
//...




上面java类的完整文件已经放在最后的zip压缩包内。

本篇讲了如何开始与阿里软件平台集成,并如何将自己的软件与阿里软件挂钩起来,通过阿里软件平台进行免登录。

下篇将讲述如何与淘宝网店铺进行绑定,然后获取店铺中的宝贝数据。

关于本篇需要用到的java方法可以参考附件压缩包中.
附件内容:
<1>alisoft.jsp:从阿里软件平台过来调用的jsp
<2>AliSoft.java:与阿里软件平台api接口类
<3>DateTool.java:日期工具类


-------------------------------------------------------------
分享知识,分享快乐,希望文章能给需要的朋友带来小小的帮助。























  • 大小: 9.8 KB
  • 大小: 3.1 KB
  • 大小: 1.8 KB
  • 大小: 19 KB
  • 大小: 8.4 KB
  • 大小: 8.3 KB
9
2
分享到:
评论

相关推荐

    阿里巴巴API开发sdk .net平台

    阿里巴巴开放平台 SDK 运行样例。 调用阿里巴巴开放平台的API你是不是获取不到访问口令,看一下我的例子吧,原因是后台已经更改,而网站的说明没有更新。 IniFile ini = new IniFile(); Dictionary, string&gt; sl ...

    alisoft-xplatform-asf-cache-2.5.1.jar

    本文将深入探讨alisoft-xplatform-asf-cache-2.5.1.jar,这是一个由阿里巴巴软件的架构师岑文初精心封装的Memcached客户端库,旨在提供更便捷、高效的Memcached操作体验。 alisoft-xplatform-asf-cache-2.5.1.jar是...

    阿里软件互联平台入门手册v_1_3.pdf

    通过以上分析,《阿里软件互联平台入门手册v_1_3.pdf》为ISV提供了全面的指导和支持,使他们能够快速地将软件集成到ASSP中,利用阿里巴巴集团的强大资源实现快速推广和盈利。从注册到最终用户的使用,每个环节都设计...

    ASSP平台ISV订购接口规范

    为了确保ASSP平台ISV订购接口能够顺利执行并符合阿里巴巴平台的商业规则,这里列出了一些重要的规则补充: - 订购开始时间一经设定,不得更改。 - 订单结束时间必须小于等于`appEndDate`。 - 对于续订操作,无论是未...

    alisoft-xplatform-asf-cache-2.5.1-src.jar

    alisoft-xplatform-asf-cache-2.5.1-src.jar

    alisoft用户接口代码

    在本案例中,我们关注的是"alisoft用户接口代码",这显然涉及到一个名为Alisoft的软件平台或库的用户交互层面。让我们深入探讨一下这个主题。 首先,"alisoft用户接口"可能是一个专为Alisoft定制的API(应用程序...

    memached alisoft

    本文将重点探讨阿里巴巴开源项目“alisoft-xplatform-asf-cache-2.5.1”与流行的分布式缓存系统Memcached之间的关联及各自的技术特性。 首先,我们来看“alisoft-xplatform-asf-cache-2.5.1”。这是一个由阿里云...

    Memcache需要的依赖包

    在这个压缩包文件中,我们看到一个由阿里巴巴软件的架构师岑文初封装的版本——alisoft-xplatform-asf-cache。这个封装可能包含了一些特定的优化和适应性改进,使得它更适用于阿里巴巴的软件平台。 在描述中提到,...

    钱掌柜Beta——免费在线管理软件

    “钱掌柜”客户端是阿里巴巴集团投资10亿打造的中小企业在线管理软件“钱掌柜”的一部分。用于帮助中小企业老板、业务人员、财会人员等更方便地登录使用“钱掌柜”。 软件的主要特点: 1、简单易用:无需输入序列号...

    阿里旺旺显IP最新版

    旺旺显IP是一款绿色软件不写注册表,直接删除即可。 5. 自动发送的图片太明显了,我可以发送自己的图片来获取对方IP吗? 完全可以。不过你要确保你要发送的图片对方未曾接收过,建议你使用旺旺的“截图贴图”功能...

    java_memcached所需jar包

    2. **alisoft-xplatform-asf-cache-2.5.1** 这是阿里云开发的XPlatform ASF Cache组件,也是一个Java Memcached客户端。这个版本2.5.1可能包含以下特点: - 针对阿里巴巴内部框架和环境优化,适合大规模分布式系统...

    旺旺群API发布_IM

    本篇文章将对旺旺群API发布_IM的标题、描述、标签和部分内容进行详细解释,并对每个API接口进行详细介绍。 错误处理代码设计 旺旺群API发布_IM提供了统一的错误处理代码设计,共有10个错误代码: * 10000:成功 *...

    淘宝自动上架,上架管理,宝贝自动上架

    淘宝自动上架,宝贝自动上架,阿里软件的 淘宝自动上架 工具吧-自动上架 可以 自动定时均匀上架宝贝 软件地址 http://mall.alisoft.com/apps/shopwindow/showDetailAppAction!show.jspa?app.appId=18237 订购地址 ...

    memcached使用说明.doc

    - `alisoft-xplatform-asf-cache-2.5.1`:阿里巴巴软件团队封装的客户端,依赖于 `commons-logging`, `hessian`, `log4j`, `stax-api`, 和 `wstx-asl` 等 jar 包。 **六、Java 示例代码** 以下是一个使用 `java_...

    memcache所需要的jar包

    alisoft-xplatform-asf-cache-2.5.1.jar,commons-logging-1.1.1.jar,hessian-4.0.7.jar,log4j-1.2.11.jar,stax-api-1.0.1.jar,wstx-asl-3.2.9.jar

    memcached完全剖析ehcache memcached redis 缓存技术总结

    文件“alisoft-xplatform-asf-cache”可能是指阿里巴巴开源的XPlatform中的ASF Cache模块,这是一个分布式缓存框架,结合了上述缓存技术的一些特点,可能包含有对这些缓存系统的研究和实现,适用于大型分布式系统。...

    Hessian的学习笔记

    * 可扩展性:Hessian具有高可扩展性,易于集成到现有的应用程序中。 五、Hessian的应用场景 Hessian可以应用于以下场景: * 远程过程调用(RPC):Hessian可以用于实现远程过程调用,例如远程调用服务端方法。 * ...

    java - memcached所需要的jar包

    java - memcached所需要的jar包 ... alisoft-xplatform-asf-cache-2.5.1.jar B. commons-logging-1.0.4.jar C. hessian-3.0.1.jar D. log4j-1.2.9.jar E. stax-api-1.0.1.jar F. wstx-asl-2.0.2.jar

Global site tag (gtag.js) - Google Analytics