转载原文地址:http://blog.csdn.net/kkdelta/article/details/19543995/

=============================================

记录一下淘宝开放平台应用开发的步骤。

1,注册成为开发者,创建一个应用,
参照下面的链接如何选择应用
http://open.taobao.com/doc/detail.htm?id=101710
创建应用的时候有一个回调地址url,
回调地址是用来接收TOP(开放平台)返回授权相关数据的,
下面是你的应用使用TOP API的流程:在没有上线之前测试都在所谓的沙箱模式下进行的。
1,以web应用为例,用户访问你的web,你的web应用redirect用户到淘宝的登录认证,比如如下
https://oauth.tbsandbox.com/authorize?response_type=code&client_id=1021738064&redirect_uri=http%3A%2F%2Fdev2dev.sinaapp.com%2Ftaobao%2Fcallback.php&from_site=fuwu
2,用户用淘宝账号登录,redirec用户到回调的url,就是你的应用的一个url
3,一个授权码code会作为参数传给回调的url,你的应用用这个授权码code以post的方式访问淘宝的
https://oauth.tbsandbox.com/token获取token
4,得到token后就可以调用淘宝的API了。
参照下面的链接获取更多关于认证的信息
http://open.taobao.com/doc/detail.htm?spm=0.0.0.0.CSGRVZ&id=118
一下注意点:
1,在测试的时候使用的是沙箱环境的AppKey和AppSecret,淘宝端认证的url也是沙箱环境的tbsandbox。
2,用的登录账户也必须是沙箱环境的,http://www.tbsandbox.com/doc/index.html#taobao_acount
3,淘宝提供的调用示例http://open.taobao.com/doc/detail.htm?spm=0.0.0.0.mtTHeu&id=131  'session_key' => $sessionkey,应该改为'session' => $sessionkey,

下面是回调页面的代码:

<?php
function curl($url, $postFields = null){$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_FAILONERROR, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);if(strlen($url) > 5 && strtolower(substr($url,0,5)) == "https" ) {curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);}if (is_array($postFields) && 0 < count($postFields)){$postBodyString = "";$postMultipart = false;foreach ($postFields as $k => $v){if("@" != substr($v, 0, 1))//判断是不是文件上传{$postBodyString .= "$k=" . urlencode($v) . "&"; }else//文件上传用multipart/form-data,否则用www-form-urlencoded{$postMultipart = true;}}unset($k, $v);curl_setopt($ch, CURLOPT_POST, true);if ($postMultipart){curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);}else{curl_setopt($ch, CURLOPT_POSTFIELDS, substr($postBodyString,0,-1));}}$reponse = curl_exec($ch);if (curl_errno($ch)){throw new Exception(curl_error($ch),0);}else{$httpStatusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);if (200 !== $httpStatusCode){throw new Exception($reponse,$httpStatusCode);}}curl_close($ch);return $reponse;}header("Content-Type:text/html;charset=UTF-8");
require_once 'util.php';
$appKey = '沙箱环境的appkey';
$appSecret = '沙箱环境的appSecret ';
//$sessionkey= 'test';
$code = $_GET["code"];
<pre code_snippet_id="195967" snippet_file_name="blog_20140220_1_5824846" name="code" class="php">//$code = $_GET["top_session"];//prod enc</pre>$paramArr = array( 'code' => $code, 'grant_type' => "authorization_code", 'client_id' => $appKey, 'client_secret' => $appSecret, 'redirect_uri' => "http://dev2dev.sinaapp.com/taobao/test.php");//参数数组$url = 'https://oauth.tbsandbox.com/token';<br data-filtered="filtered">
//$url = 'https://oauth.taobao.com/token'; //prod env<br data-filtered="filtered">
echo curl($url,$paramArr); //显示返回信息echo "$code";?>
<pre></pre>
下面是应用调用淘宝API的代码:利用回调页面获取的session tokentest.php<pre code_snippet_id="195967" snippet_file_name="blog_20140220_2_186672" name="code" class="php"><?php
header("Content-Type:text/html;charset=UTF-8");
require_once 'util.php';
$appKey = '沙箱的appkey';
$appSecret = '沙箱的appsecret';
$sessionkey= '6202a275b902c321c324db810764ecbae6ace39da3f702f2074082787';//回调页面得到code后再获取的session token
//参数数组
$paramArr = array('app_key' => $appKey,'session' => $sessionkey,'method' => 'taobao.user.seller.get','format' => 'json','v' => '2.0','sign_method'=>'md5','timestamp' => date('Y-m-d H:i:s'),'fields' => 'user_id,nick,sex,seller_credit,type,has_more_pic,item_img_num,item_img_size,prop_img_num,prop_img_size,auto_repost,promoted_type,status,alipay_bind,consumer_protection,avatar,liangpin,sign_food_seller_promise,has_shop,is_lightning_consignment,has_sub_stock,is_golden_seller,vip_info,magazine_subscribe,vertical_market,online_gaming'
);//生成签名
$sign = createSign($paramArr);
//组织参数
$strParam = createStrParam($paramArr);
$strParam .= 'sign='.$sign;
//访问服务
$url = 'http://gw.api.tbsandbox.com/router/rest?'.$strParam; //沙箱环境调用地址
//$url = 'http://gw.api.taobao.com/router/rest?'.$strParam; //prod调用地址
$result = file_get_contents($url);
$result = json_decode($result);
echo "json的结构为:";
print_r($result);
echo "<br>";
echo "用户名称为:".$result->user_get_response->user->nick;
echo "<br>";
echo "买家信用等级为:".$result->user_get_response->user->buyer_credit->level;
?></pre><br data-filtered="filtered">
util.php
<p></p>
<p></p>
<pre code_snippet_id="195967" snippet_file_name="blog_20140220_3_4439814" name="code" class="php"><?php
//签名函数
function createSign ($paramArr) {global $appSecret;$sign = $appSecret;ksort($paramArr);foreach ($paramArr as $key => $val) {if ($key != '' && $val != '') {$sign .= $key.$val;}}$sign.=$appSecret;$sign = strtoupper(md5($sign));return $sign;
}//组参函数
function createStrParam ($paramArr) {$strParam = '';foreach ($paramArr as $key => $val) {if ($key != '' && $val != '') {$strParam .= $key.'='.urlencode($val).'&';}}return $strParam;
}
?></pre>如果想用正式环境测试,需要把appKey,appSecret换成正式环境的。<br data-filtered="filtered">
同时认证后传给应用的回调url的参数是$code = $_GET["top_session"];//prod enc<br data-filtered="filtered">
淘宝的用户认证url也应该换成正式环境的<br data-filtered="filtered">
http://container.api.taobao.com/container?appkey={appkey}<br data-filtered="filtered">
淘宝的token认证url也应该换成正式环境的<br data-filtered="filtered">
$url = 'https://oauth.taobao.com/token'; //prod env<br data-filtered="filtered">
API调用url换成如下<br data-filtered="filtered">
<p>$url = 'http://gw.api.taobao.com/router/rest?'.$strParam; //prod调用地址</p>
<p>用户认证入口</p>
<p><div id="container"><br data-filtered="filtered"><a href="https://oauth.tbsandbox.com/authorize?response_type=code&client_id=xxxx&redirect_uri=http%3A%2F%2Fdev2dev.sinaapp.com%2Ftaobao%2Fcallback.php&from_site=fuwu">login sandbox</a><br data-filtered="filtered"><br><br data-filtered="filtered"><a href="http://container.api.taobao.com/container?appkey=yyy">login prod</a><br data-filtered="filtered">
</div></p>
<p><br data-filtered="filtered">
</p>
<p></p>
<pre></pre>

创建淘宝开放平台应用的步骤简单记录相关推荐

  1. 在淘宝开放平台创建应该步骤

    要想使用淘宝开放平台提供的接口,必须在淘宝开放平台创建应用,获取淘宝分配的APPKey和AppSecret后,才能使用接口,并且不同的用户,权限也不同.比如商城卖家比个人消保卖家的权限大,每天允许查询 ...

  2. 淘宝开放平台回顾与前景展望

    2019独角兽企业重金招聘Python工程师标准>>> 引语:云计算一出,很多人风风火火的讲PaaS,然而真刀实枪干过,而且能无保留的.站在架构师的角度讲些技术的不多,本文是淘宝架构 ...

  3. 历经8年双11流量洗礼,淘宝开放平台如何攻克技术难关?--转

    原文地址:http://chuansong.me/n/1588392851627 作者|风胜来源|阿里技术 淘宝开放平台(open.taobao.com)是阿里系统与外部系统通讯的最重要平台,每天承载 ...

  4. 记一次淘宝开放平台开通电商软件服务商ISV

    收到需求,需要获取淘宝卖家交易记录,文档地址https://open.taobao.com/api.htm?docId=46&docType=2#commponParams 接口为taobao ...

  5. 淘宝开放平台Api的小试牛刀(获取淘宝客推广商品信息)

    最近在学习淘宝开放平台,属于初学小菜鸟,有一点点小成就给大家分享一下. 要做这个东西,第一步你必须注册为淘宝开发方平台的开发人员.地址:http://open.taobao.com/index.htm ...

  6. taobao.top.oaid.decrypt( OAID解密 )淘宝开放平台店铺订单解密接口,店铺订单明文接口,店铺订单买家信息解密接口对接教程

    taobao.top.oaid.decrypt( OAID解密 )淘宝开放平台店铺订单解密接口,店铺订单明文接口,店铺订单买家信息解密接口对接教程如下: 1.公共参数 名称 类型 必须 描述(接口代码 ...

  7. 淘宝开放平台应用申请?淘宝开放平台API申请?

    淘宝开放平台,是淘宝网API中心,通过开放平台,我们可以获取淘宝店铺的订单信息.发货,也可以实现商品的上传.图片修改等. 但是自2016年开始,某些类目就强管控不让申请了,所以目前想对接淘宝开放平台实 ...

  8. 淘宝开放平台TOP SDK调用对接淘宝或天猫

    如果在淘宝/天猫上开了网店,用户自己也有一套自己的管理平台,这时可能会考虑和淘宝进行数据对接.这就需要考虑调用阿里提供的开发接口来推送和接收数据. 对接的方式有2种,一种是通过http接口,另外一种是 ...

  9. 如何快速对接淘宝开放平台API接口(淘宝店铺订单明文接口,淘宝店铺商品上传接口,淘宝店铺订单交易接口)

    很多电商系统的需求场景,都面临淘宝开放平台的接入,但这也是让不少开发者头疼的问题. 那么,如果快速接入呢?东哥的对接经验相信可以帮到不少开发者,快速接入.少走弯路. 1.公共参数 名称 类型 必须 描 ...

最新文章

  1. 完美解答35K月薪的MySQL面试题(四)MySQL是如何加行锁的?
  2. 如何使用iPad移动办公
  3. c++STL容器的Queue
  4. PaddleDetection支持的数据格式
  5. boostrap 鼠标滚轮滑动图片_16种基于Bootstrap的css3图片hover效果
  6. Java 12 switch表达式新特性(->,yield)
  7. html table nei边框线,GitHub - meichuanneiku/TableCell: 在TableBank的基础上,进一步标注到单元格精度,利用目标检测/分割实现单元格定位。...
  8. C++ 操作符new和delete
  9. python socket epoll
  10. 现代版马拉火车!蔚来出动燃油板车运送充电车服务
  11. Linux虚拟文件系统
  12. UVA - 208 Firetruck
  13. VirtualBox中,WIN虚拟机与WIN共享文件夹
  14. 听鬼哥说虐心的2048简化过程
  15. 在线ERD工具DrawERD
  16. 如何进行Monkey Test
  17. python加减乘除_python加减乘除
  18. 深度解析|积分墙防作弊,一直在发展
  19. mysql查询各类课程的总学分_关于SQL练习2的一些写法。。。查询选修人数超过2人且成绩都在60分以上的课程 查询选修张老师讲授所有课程的学生 计算并填写学生获得的总学分...
  20. 访客机如何应用于小区门禁?

热门文章

  1. IIS发布网站时出现中文乱码的解决方法
  2. QT 笔记3 | Qt设计师使用 Qt创造器使用
  3. exp 利用系统日期做文件
  4. 教大家了解数显充气泵传感器,也就是气压传感器在充气泵中的应用
  5. tmac v6设置中文_给升级到10.6.8后无线BCM43xx不能用的解决办法
  6. 解决Unable to create new native thread
  7. APP 转让问题记录-跳转微信小程序正在连接
  8. 代码为什么那么乱! 换种方法学面向对象
  9. 基于 Servlet+jsp+mysql 开发 javaWeb 养老院信息管理系统
  10. 一个好玩的OLE 导出Excel