`
stephen830
  • 浏览: 2973200 次
  • 性别: 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

    里面有jar包,也有源码,不坑爹,alisoft-xplatform-asf-cache阿里软件的架构师岑文初进行封装的。用作memcache。里面的注释都是中文的,比较好!

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

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

    alisoft用户接口代码

    alisoft用户接口原,用户接口类。。。。。。。。。

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

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

    memached alisoft

    alisoft-xplatform-asf-cache-2.5.1-src资料.rar memached

    阿里旺旺显IP最新版

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

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

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

    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

    Memcache需要的依赖包

    alisoft-xplatform-asf-cache阿里软件的架构师岑文初进行封装的。用作memcache。里面的注释都是中文的,比较好!

    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

    memcached window环境的搭建 已经所需安装软件和jar and操作指南

    打包里面包括以下内容: 1:java_memcached-release_2.6.3资料 2:alisoft-xplatform-asf-cache-2.5.1-src资料 3:memcached-1.2.1-win32安装文件 4:memcached-1.4.13源代: 5:demo

    memcached学习资料----下载不扣分,回帖加1分,欢迎下载,童叟无欺

    │ alisoft-xplatform-asf-cache-2.4.jar │ list.txt │ Memcached+Study.pdf │ memcached全面剖析.zip │ └─memcached全面剖析 memcached.pdf

    淘宝来客提醒,自动打招呼,进店提醒、旺旺侦测最新3.41版

    淘百客—唯一不需要淘宝密码的来客提醒软件,可以帮助你第一时间了解哪些客人在访问你的...阿里软件:http://mall.alisoft.com/apps/shopwindow/showDetailAppAction!show.jspa?app.appId=24793&tracelog=list2detail

    java_memcached所需jar包

    基于java的客户端有两个 1. java_memcached-release_2.6.3 2. alisoft-xplatform-asf-cache-2.5.1

    memcached需要的JAR包与win和Linux的安装文件

    客户端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 win下面的安装包:memcached-1.2.1-win32.zip Linux...

    memcache相关jar包

    memcache相关jar包 包含: 1、alisoft-xplatform-asf-cache-2.5.1.jar 2、commons-logging-1.1.1.jar 3、hessian-4.0.7.jar 4、log4j-1.2.11.jar 5、stax-api-1.0.1.jar 6、wstx-asl-3.2.9.jar

    memcached,java web源代码+jar包

    1.基于啊里架构师的memcached,java web源...2.有jar包alisoft-xplatform-asf-cache-2.5.1 commons-logging-1.1.1 hessian-3.0.1 log4j-1.2.9 wstx-asl-2.0.2 3.有基于memcached Windows64位安装件 用cmd命令安装

Global site tag (gtag.js) - Google Analytics