分享]top自动授权页面,方便大家调试top应用
top调试时总是需要重复输入进行授权,比较郁闷现在分享一下我的top自动授权:
创建一个JSP文件,内容如下:
现在沙箱不稳定,有不少的问题出现:
- 提示账户不存在:如果确认账户确实存在(如自己注册的沙箱账户或者系统默认账户),再试一下
- 在页面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));
}
}
/**
if (request.getParameter("appKey") != null) {
appKey = request.getParameter("appKey");
zhxz = request.getParameter("zhxz");
nick = request.getParameter("nick");
url = request.getParameter("url");
URL authorUrl = new URL("http://open.taobao.com/isv/authorize.php?appkey=" + appKey);
HTTPRequest httpRequest = new HTTPRequest(authorUrl, HTTPMethod.POST);
String payload = "zhxz=" + zhxz
+ "&nick=" + URLEncoder.encode(nick, "UTF-8")
+ "&url=" + URLEncoder.encode(url, "UTF-8");
httpRequest.setPayload(payload.getBytes());
HTTPResponse httpResponse = URLFetchServiceFactory.getURLFetchService().fetch(httpRequest);
String tmp = new String(httpResponse.getContent());
int pos = tmp.indexOf("<input type=\"text\" id=\"autoInput\"value=\"") + "<input type=\"text\" id=\"autoInput\"value=\"".length();
String authCode = tmp.substring(pos, tmp.indexOf('"', pos));
response.sendRedirect("http://container.api.tbsandbox.com/container?authcode=" + authCode);
}
*/
%>
<!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. **OAuth模块**:用于处理OAuth认证流程,包括获取请求令牌、授权页面、交换为访问令牌等步骤。 2. **API调用模块**:封装了对TopAPI的具体调用,可能包含错误处理和重试机制。 3. **数据解析模块**:淘宝API返回...
`error.aspx`是错误处理页面,当发生未捕获的异常时,ASP.NET会自动重定向到这个页面,显示错误信息。在实际开发中,我们需要确保这个页面既能够提供足够的调试信息,又不会泄露过多敏感信息。 `web.config`文件是...
9. **Web API帮助页面**:为了方便API的文档化和调试,Web API 2 提供了帮助页面功能,可以自动生成关于API操作的文档。 10. **异步操作**:Web API 2 支持异步操作,可以提高服务性能,特别是在处理I/O密集型任务...
6. **Web.config**: 这是ASP.NET应用程序的核心配置文件,包含应用程序的全局配置信息,如数据库连接字符串、身份验证和授权设置、错误处理等。在大学23事CMS中,Web.config可能定义了数据库的访问细节,以及应用...
这涉及到向用户展示授权页面,获取Access Token,以及刷新Token的流程。Java中可使用第三方库如Spring Security OAuth或者OkHttp等来简化这一过程。 5. **JSON处理**:淘宝接口返回的数据通常以JSON格式,因此你...
- **应用场景**: 防止未经授权的用户通过该组合键重启系统。 **131016 查看RedHat的版本号** - **知识点**: 可以通过`cat /etc/redhat-release`命令查看。 - **应用场景**: 确认当前系统版本,便于后续操作。 **...
这个概念常用于安全性较高的环境中,以确保只有授权的个体才能访问敏感信息。 #### 辅助功能选项 (Accessibility Options) 辅助功能选项允许用户根据自身的需求调整软件界面和操作方式。这包括改变字体大小、启用...
- **DDMS**:Device Debug Monitor System,用于调试Android应用,包括监控内存、CPU使用情况等。 - **TraceView**:用于分析应用的性能,特别是方法调用的耗时情况。 #### 38. Java中引用本地语言 - **使用JNI ...
2.1.1 Left、Top、Width和Height属性21 2.1.2 ForeColor和BackColor属性21 2.1.3 Font属性23 2.1.4 Caption和Text属性24 2.1.5 Parent和Container属性25 2.1.6 Enabled和Visible属性25 2.1.7 hWnd属性26 2.1.8 ...
2.1.1 Left、Top、Width和Height属性21 2.1.2 ForeColor和BackColor属性21 2.1.3 Font属性23 2.1.4 Caption和Text属性24 2.1.5 Parent和Container属性25 2.1.6 Enabled和Visible属性25 2.1.7 hWnd属性26 2.1.8 ...