`
skzr.org
  • 浏览: 365945 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

淘宝top自动授权页面,方便大家调试top应用

阅读更多

top调试时总是需要重复输入进行授权,比较郁闷现在分享一下我的top自动授权:
创建一个JSP文件,内容如下:
现在沙箱不稳定,有不少的问题出现:

  1. 提示账户不存在:如果确认账户确实存在(如自己注册的沙箱账户或者系统默认账户),再试一下
  2. 在页面http://container.api.tbsandbox.com/container?authcode=XXX 时提示服务错误:不用管刷新页面就好了,或者等10秒继续刷新就好了,我的一般刷新4、5次就好了

好了暂时还没有遇到其他问题,祝大家愉快^ ^
记得修改里面对应的地方为自己的阿:

  • 应用appkey
  • 自己的沙箱名
  • 成功登录后自己的回调地址

 

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

String appKey, zhxz = "2", nick = "", url;
String msg = null;
if (request.getParameter("appKey") != null) {
    appKey = request.getParameter("appKey");
    zhxz = request.getParameter("zhxz");
    nick = request.getParameter("nick");
    url = request.getParameter("url");
    DefaultHttpClient client = new DefaultHttpClient();
    HttpPost post = new HttpPost(new URI("http://open.taobao.com/isv/authorize.php?appkey=" + appKey));
    List<NameValuePair> nvps = new ArrayList<NameValuePair>();
    nvps.add(new BasicNameValuePair("zhxz", zhxz));
    nvps.add(new BasicNameValuePair("nick", nick));
    nvps.add(new BasicNameValuePair("url", url));
    post.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
    HttpResponse hr = client.execute(post);
    String tmp = new String(EntityUtils.toString(hr.getEntity()));
    int pos = tmp.indexOf("<input type=\"text\" id=\"autoInput\"value=\"") + "<input type=\"text\" id=\"autoInput\"value=\"".length();
    if (pos != -1) {
        try {
            String authCode = tmp.substring(pos, tmp.indexOf('"', pos));
            response.sendRedirect("http://container.api.tbsandbox.com/container?authcode=" + authCode);
        } catch (StringIndexOutOfBoundsException e) {
            String einfo = "请求authrize出错:\n" + tmp;
            LoggerFactory.getLogger(this.getClass()).warn(einfo, e);
            log(einfo, e);
        }
    }
    pos = tmp.indexOf("alert('") + "alert('".length();
    if (pos != -1) {
        msg = tmp.substring(pos, tmp.indexOf("')", pos));
    }
}
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <base href="<%=basePath%>jsp/">
        <%@include file="common/head.jsp"%>
        <script type="text/javascript">
        function nickEcho(v) {
            var es = document.getElementsByName("nickS");
            if (v == 1) {
                es[0].style.display = "";
                es[1].style.display = "none";
                es[2].style.display = "none";
            } else {
                es[0].style.display = "none";
                es[1].style.display = "";
                es[2].style.display = "";
            }
        }
        function writeUrl(select) {
            document.getElementsByName("url")[0].value =select.selectedIndex != 0 ? select.options[select.selectedIndex].text :"请填写您的应用回调URL";
        }
        function writeNick(select) {
            document.getElementsByName("nickS")[1].value =select.selectedIndex != 0 ? select.options[select.selectedIndex].text :"--请输入测试昵称--";
        }
        function processSubmit() {
            var es = document.getElementsByName("nickS");
            var nick = es[0].style.display != "none" ? es[0].value : es[1].value;
            if (nick == "" || nick == "--请输入测试昵称--") {
                alert("--请输入测试昵称--");
                es[1].focus();
                return false;
            }
            var url = document.getElementsByName("url")[0];
            if (url.value == "" || url.value == "请填写您的应用回调URL") {
                alert("请填写您的应用回调URL");
                url.focus();
                return false;
            }
            
            document.getElementsByName("nick")[0].value = nick;
            return true;
        }
        </script>
    </head>
    <body>
        <%
        if (msg != null) {
        %>
            <center>
                <h1>
                    <font color="red">
                        <%=msg %>
                    </font>
                </h1>
            </center>
        <%
        }
        %>
        <form onsubmit="return processSubmit();" method="get">
            <table align="center">
                <caption>开始测试系统</caption>
                <tr><td><img src="http://open.taobao.com/assets/images/top_logo.gif"></td></tr>
                <tr><td>
                    选择应用:
                    <select name="appKey">
                        <option value="12010160" selected="selected">盘龙</option><!--这里是我的应用appKey-->
                    </select>
                </td></tr>
                <tr><td>
                    帐号选择:
                        <input type="radio" name="zhxz" value="1" onclick="nickEcho(this.value);">系统默认
                        <input type="radio" name="zhxz" value="2" checked="checked" onclick="nickEcho(this.value);">自定义
                        <input type="hidden" name="nick" value="">
                </td></tr>
                <tr><td>
                    <select name="nickS" style="display: none;">
                        <option value="sandbox_c_1" selected="selected">sandbox_c_1</option>
                        <option value="sandbox_c_2">sandbox_c_2</option>
                        <option value="sandbox_c_3">sandbox_c_3</option>
                        <option value="sandbox_c_4">sandbox_c_4</option>
                        <option value="sandbox_c_5">sandbox_c_5</option>
                        <option value="sandbox_c_6">sandbox_c_6</option>
                        <option value="sandbox_c_7">sandbox_c_7</option>
                        <option value="sandbox_c_8">sandbox_c_8</option>
                        <option value="sandbox_c_9">sandbox_c_9</option>
                        <option value="sandbox_c_10">sandbox_c_10</option>
                        <option value="sandbox_c_11">sandbox_c_11</option>
                        <option value="sandbox_c_12">sandbox_c_12</option>
                        <option value="sandbox_c_13">sandbox_c_13</option>
                        <option value="sandbox_c_14">sandbox_c_14</option>
                        <option value="sandbox_c_15">sandbox_c_15</option>
                        <option value="sandbox_c_16">sandbox_c_16</option>
                        <option value="sandbox_c_17">sandbox_c_17</option>
                        <option value="sandbox_c_18">sandbox_c_18</option>
                        <option value="sandbox_c_19">sandbox_c_19</option>
                        <option value="sandbox_c_20">sandbox_c_20</option>
                        <option value="sandbox_c_21">sandbox_c_21</option>
                        <option value="sandbox_c_22">sandbox_c_22</option>
                        <option value="sandbox_c_23">sandbox_c_23</option>
                        <option value="sandbox_c_24">sandbox_c_24</option>
                        <option value="sandbox_c_25">sandbox_c_25</option>
                        <option value="sandbox_c_26">sandbox_c_26</option>
                        <option value="sandbox_c_27">sandbox_c_27</option>
                        <option value="sandbox_c_28">sandbox_c_28</option>
                        <option value="sandbox_c_29">sandbox_c_29</option>
                        <option value="sandbox_c_30">sandbox_c_30</option>
                        <option value="alipublic00">alipublic00</option>
                        <option value="alipublic01">alipublic01</option>
                        <option value="alipublic02">alipublic02</option>
                        <option value="alipublic03">alipublic03</option>
                        <option value="alipublic04">alipublic04</option>
                        <option value="alipublic05">alipublic05</option>
                        <option value="alipublic06">alipublic06</option>
                        <option value="alipublic07">alipublic07</option>
                        <option value="alipublic08">alipublic08</option>
                        <option value="alipublic09">alipublic09</option>
                        <option value="alipublic10">alipublic10</option>
                        <option value="alipublic11">alipublic11</option>
                        <option value="alipublic12">alipublic12</option>
                        <option value="alipublic13">alipublic13</option>
                        <option value="alipublic14">alipublic14</option>
                        <option value="alipublic15">alipublic15</option>
                        <option value="alipublic16">alipublic16</option>
                        <option value="alipublic17">alipublic17</option>
                        <option value="alipublic18">alipublic18</option>
                        <option value="alipublic19">alipublic19</option>
                        <option value="alipublic20">alipublic20</option>
                        <option value="alipublic21">alipublic21</option>
                        <option value="alipublic22">alipublic22</option>
                        <option value="alipublic23">alipublic23</option>
                        <option value="alipublic24">alipublic24</option>
                        <option value="alipublic25">alipublic25</option>
                        <option value="alipublic26">alipublic26</option>
                        <option value="alipublic27">alipublic27</option>
                        <option value="alipublic28">alipublic28</option>
                        <option value="alipublic29">alipublic29</option>
                    </select>
                    <input type="text" name="nickS"value="--请输入测试昵称--" onfocus="if (this.value =="--请输入测试昵称--") this.value = "";"onblur="if (this.value == "")this.value="--请输入测试昵称--";">
                    <select name="nickS" onchange="writeNick(this);">
                        <option selected="selected">清空昵称</option>
                        <option>时空之蕊</option><!--这里输入你在沙箱中注册的呢称即可,一般新申请的沙箱账户过一段时间后才会生效-->
                    </select>
                </td></tr>
                <tr><td>
                    <input type="text" name="url"value="请填写您的应用回调URL" size="40" onfocus="if('请填写您的应用回调URL' ==this.value) this.value='';" onblur="if('' == this.value)this.value='请填写您的应用回调URL';">
                </td></tr>
                <tr><td>
                    回调:
                    <select onchange="writeUrl(this);">
                        <option selected="selected">清空</option>
                        <option><%=basePath %>topLogin.do</option><!--这里是我的top登录入口,用于接收淘宝授权后的回调页面-->
                    </select>
                </td></tr>
                <tr><td align="center">
                    <input type="submit" value="授权-->登录系统">
                </td></tr>
            </table>
        </form>
        <%@include file="/common/times.jsp"%>
        <%@include file="common/copyRight.jsp"%>
    </body>
</html>
1
0
分享到:
评论
1 楼 海hai 2015-01-11  
您好我对这篇文章很敢兴趣可以和你请教下吗?我qq903441847

相关推荐

    淘宝top开发包,可以方便开发出taobao应用

    淘宝TOP开发包是一款专为.NET开发者设计的工具包,它简化了与淘宝平台进行交互的过程,使得开发者能够更高效地创建淘宝应用。该开发包主要适用于C#或VB.NET等.NET框架下的编程语言,帮助开发者实现诸如商品管理、...

    c#调用topsdk、调用topapi最新C#调用淘宝sdk_demo

    TopSDK是淘宝官方提供的一个开发工具包,用于帮助开发者方便地与淘宝平台进行交互,实现各种功能,如商品查询、订单管理、用户信息获取等。在C#环境下,TopSDK为开发者提供了一套完整的接口,使得C#开发者可以轻松地...

    淘宝客TOPAPI 程序 淘客TOP源码 淘客TOP 网站

    淘宝客是中国淘宝网推出的一种网络营销服务,允许个人或企业通过推广淘宝网的商品赚取佣金。淘宝客TOP API程序和淘客TOP源码是用于构建淘宝客网站的关键技术资源,它们帮助开发者和站长接入淘宝客平台,获取商品信息...

    淘宝开放平台TOP,官方发布的最新SDK。

    简称TOP)是淘宝提供给开发者的一个综合性的服务平台,它允许第三方开发者通过API接口访问和操作淘宝的各种功能,如商品管理、订单处理、用户信息查询等,以此来构建与淘宝生态系统相关的应用和服务。在这个过程中,...

    淘宝开放平台(TOP)的API测试工具客户端

    淘宝开放平台(Taobao Open Platform,简称TOP)是淘宝提供给开发者进行应用开发的平台,它允许第三方开发者通过API接口访问淘宝的各种数据和服务,从而创建各种创新应用。在这个平台上,开发者可以利用淘宝的商品...

    淘宝top40万类目词库-pc端.xlsx

    淘宝top40万类目词库-pc端 电脑端

    淘宝topsdk

    【淘宝TOP SDK】是淘宝开放平台提供的一种SDK(Software Development Kit),它允许开发者通过编程方式与淘宝接口进行交互,实现各种电商功能。该SDK通常包括客户端和服务端组件,支持.NET平台,因此`TopSdk.dll`...

    Drupal 集成淘宝TOP用户认证

    2. **OAuth协议**:淘宝TOP API基于OAuth 2.0协议,这是一种广泛使用的授权框架,允许第三方应用安全地代表用户访问资源。开发者需要理解OAuth的工作原理,设置客户端ID和秘密,以及处理授权码和访问令牌的交换。 3...

    淘宝Top api

    "淘宝Top API"是淘宝开放平台提供的一套接口服务,允许开发者通过编程方式与淘宝进行数据交互,实现个性化应用或电商服务。这个标题暗示我们将探讨的是如何利用这些API来访问和操作淘宝的数据。 首先,"sessionkey...

    淘宝 TOP版最新源码

    淘宝 TOP版最新源码 淘宝客 TOP版最新源码 皇冠店铺源码推荐

    PHP+SQL 带后台自动采集的淘宝TOP程序

    【PHP+SQL 带后台自动采集的淘宝TOP程序】是一种基于PHP编程语言和SQL数据库技术的电商数据采集系统,特别适用于淘客(Taobao Affiliate)进行数据分析和商品推广。这个程序具有自动化采集功能,能够定期从淘宝网...

    淘宝全类目top20w关键词表.xlsx

    电商,淘宝全类目TOP20万搜索词记录表

    淘宝top-api接口模块asp源码,只有一个文件

    【淘宝top-api接口模块asp源码详解】 在互联网电商领域,淘宝网作为中国最大的C2C平台,提供了丰富的API接口供开发者使用。本资源提供的是一款基于ASP(Active Server Pages)语言编写的淘宝top-api接口模块,它...

    价值300元的两套"最新淘宝TOPAPI最新版淘宝客程序共享

    价值300元的两套"最新淘宝TOPAPI最新版淘宝客程序 限时共享。 图片: 新淘宝TOPAPI淘宝客程序新版本增加了两个功能 功能一 产品图片部分直接跳转淘宝相关产品页面, 方便用户使用 文字说明部分链接产品介绍...

    淘宝客程序最新top平台api淘宝客程序.zip

    什么是tbk1kg? tbk1kg是我们为广大的淘宝客用户设计的一种方便、快捷、便利得推荐程序,能够让您推荐到更多的商品,从而获得更多得利益;并且,使用我们的不用重复得操作,节约了您得...7.采用淘宝官方最新TOP平台API

    淘宝top20万类目词库-无线端.xlsx

    淘宝top20万类目词库

    最新淘宝TopApi.dll

    2013年最新淘宝TopApi.dll,功能非常强大

    Delphi版本的淘宝接口(TopAPI)开发.rar

    OAuth是淘宝API的授权机制,它允许应用代表用户访问其在淘宝上的数据,而无需获取用户的登录凭据。 接下来,我们要理解TopAPI的结构。淘宝API由多个服务组成,如TaobaoItem、TaobaoTrade、TaobaoUser等,分别对应...

    TOP264vg规格书_中文

    同时,TOP264vg规格书还提供了丰富的保护功能,包括自动重启动、输出短路保护、输出过流保护、输出过载保护、输出过压保护等。 TOP264vg规格书的主要特点包括: 1. 高效率:TOP264vg规格书能够提供极高的能效,在...

    TOP系列开关电源应用

    【TOP系列开关电源应用】 开关电源是现代电子设备中广泛使用的电源转换技术,因其高效、体积小、重量轻等优点而备受青睐。其中,TOP系列开关电源集成电路是业界较为知名的一种,尤其在低功率应用中表现出色。这个...

Global site tag (gtag.js) - Google Analytics