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

[color=blue]★★★ 本篇为原创,需要引用转载的朋友请注明:《 http://stephen830.iteye.com/blog/259244 》 ,谢谢支持!★★★[/color]


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

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

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

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


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

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

(1)注册一个旺号
(2)登录alisoft.com后到[开发者加盟] (图1)
[align=center][img]http://stephen830.iteye.com/upload/attachment/45765/07d71237-4a7e-384e-8c5c-3656417e6319.png[/img]
(图1)[/align]
(3)到[去我的工作台](图2)
[align=center][img]http://stephen830.iteye.com/upload/attachment/45767/323ccec8-242f-39a8-bcdd-b9d65710eb79.png[/img]
(图2)[/align]
(4)注册新软件(图3)
[align=center][img]http://stephen830.iteye.com/upload/attachment/45769/3e689931-76f4-37bd-b93d-cad4c2784590.png[/img]
(图3)[/align]

(5)注册好新软件后,你就可以得到阿里软件给你的2个编号:APP_ID 和CERT_CODE (图4)
[align=center][img]http://stephen830.iteye.com/upload/attachment/45771/c94bcb65-c812-35ad-9105-abb1fc4c086f.png[/img]
(图4)[/align]
(6)编辑软件信息,设置软件测试入口(图5),这个url允许用本地地址,即可以填写http://127.0.0.1:8081/test/alisoft/alisoft.jsp类似的页面地址,这样子就可以从阿里软件平台直接登录你开发的系统中了.[color=green][b](当然,在软件完成后发布前,必须将这2个地址改为互联网的地址,这样才能被别人使用)[/b][/color]
[align=center][img]http://stephen830.iteye.com/upload/attachment/45773/f0494446-2c7d-3bbe-a092-e7fd23674b3f.png[/img]
(图5)[/align]
(7)ok.这样子,当你下次登录阿里软件平台,点[图6中的软件名称]就可以直接进入自己开发的系统了.
[align=center][img]http://stephen830.iteye.com/upload/attachment/45775/23e141cb-6e6f-3724-a9db-961f314f87eb.png[/img]
(图6)[/align]

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

从阿里软件平台登录自己系统入口的jsp例子([color=red]这个jsp页面就是前面图5中设置的软件测试入口的jsp页面名字[/color]):

<%@ 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压缩包内。

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

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

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


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值