最近想要做一个基于淘宝API的东西,看了下SDK,发现淘宝自己提供的SDK真是啰嗦,非常简单的东西让它动的超级复杂,

还带了个很大的第三方库,非常之不方便(论坛上也有对其颇有微词的啊^_^),于是乎自己也简单的写了个。

声明:版权没有,盗版不纠

<?php /** * Filename: TopApi.php * Created: 2010-12-20 * Author: blog.csdn.net/jakieyoung * License: free */ if(!defined('ENVIRONMENT')) define('ENVIRONMENT', 'devel'); if (ENVIRONMENT == 'devel') { define('AppKey' , 'test'); define('AppSecret' , 'test'); define('Gateway' , 'http://gw.api.tbsandbox.com/router/rest'); } else if (ENVIRONMENT == 'product') { define('AppKey' , '12345678'); define('AppSecret' , '------------------------------------'); define('Gateway' , 'http://gw.api.taobao.com/router/rest'); } else { die("ENVIRONMENT is neither devel nor product"); } define('Format', 'json'); define('SignMethod', 'md5'); define('APIVersion', '2.0'); define('SDKVersion', 'top_api_php_1.0'); function sign($params) { $items = array(); foreach($params as $key => $value) $items[$key] = $value; ksort($items); $s = AppSecret; foreach($items as $key => $value) { $s .= "$key$value"; } $s .= AppSecret; return strtoupper(md5($s)); } function decode_top_parameters($top_parameters) { $params = array(); $param_array = explode('&', base64decode($top_parameters)); foreach($param_array as $p) { list($key, $value) = explode('=', $p); $params[$key] = $value; } return $params; } class TopRequest { private $method_name; private $api_params = array(); function TopRequest($method_name) { $this->method_name = $method_name; } function set_param($param_name, $param_vaule) { $this->api_params[$param_name] = $param_vaule; } function get_api_params() { return $this->api_params; } function get_method_name() { return $this->method_name; } function execute($session = '') { $client = new TopClient; return $client->execute($this, $session); } } class TopClient { function execute($request, $session = '') { $sys_params = array( 'app_key' => AppKey, 'format' => Format, 'v' => APIVersion, 'sign_method' => SignMethod, 'partner_id' => SDKVersion ); $api_params = $request->get_api_params(); $sys_params['method'] = $request->get_method_name(); $sys_params['timestamp'] = date("Y-m-d H:i:s"); if($session != '') { $sys_params['session'] = $session; } $sys_params['sign'] = sign(array_merge($sys_params, $api_params)); $param_string = ''; foreach($sys_params as $p => $v) { $param_string .= "$p=" . urlencode($v) . "&"; } $url = Gateway . '?' . substr($param_string, 0, -1); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $api_params); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $postResult = 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($postResult, $httpStatusCode); } } curl_close($ch); $obj = json_decode($postResult); foreach($obj as $k => $v) { $obj = $v; } return $obj; } } ?>

使用时很简单,导入TopApi.php,然后new 一个TopRequest,设置参数,最后execute即可得到返回值。

例子

<?php include_once('TopApi.php'); $top_session = "24523150b447abcb617cc1d7b58ce71ad7230"; $iid = 2304232983; $new_image_path = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'nvzhuang.jpg'; echo $new_image_path; $req = new TopRequest('taobao.item.img.upload'); $req->set_param('iid', $iid); $req->set_param('image', '@' . $new_image_path); //上传文件,在文件路径前加上AT符号 $req->set_param('is_major', 'true'); $result = $req->execute($top_session); // 对于不需要session的api,则可以不用session参数 var_dump($result);

因为我自己只使用json方式,所以没有提供xml格式的解析,需要者可以使用simplexml_load_string来解析返回的数据

欢迎指正

淘宝api的自己的封装相关推荐

  1. 淘宝API开发系列--开篇概述

    前阵子有空发现淘宝的API挺有意思的,就留意学习了一下,淘宝从2008.6月开始公测以来,API渐趋稳定,文档的相关说明也比较细致,不过基于淘宝API做应用的软件目前应该还不是很多,不过由于马云的影响 ...

  2. 淘宝API,api各种接口

    测试网址:登录 - 跨境电商平台接口提供商 数据采集公司 数据接口定制服务 企业级数据服务商 最近负责的项目,需要对接淘宝提供的 淘宝api,获取淘宝客的订单数据.在此过程中遇到了很多坑,特在此mar ...

  3. 淘宝api,各种接口

    最近负责的项目,需要对接淘宝提供的 淘宝api,获取淘宝客的订单数据.在此过程中遇到了很多坑,特在此mark一下,可能对于一些大佬来说很简单,如果发现有错误欢迎指出.所有过程如下所示: 基于Intel ...

  4. 淘宝开放平台是什么?与淘宝API 接口区别

    淘宝开放平台是基于淘宝各类电子商务业务的开放平台,提供外部合作伙伴参与服务淘宝用户的各类原材料,如业务API.账号体系.数据推送,奇门网关等,是淘宝电子商务基础服务的重要开放途径.即淘宝把数据开放进来 ...

  5. 淘宝api商品详情接口,视频主图,关键词搜索,商品评论,商品优惠价,淘宝商品历史价格,卖家买家订单列表等

    API是应用程序的开发接口,在开发程序的时候,我们有些功能可能不需要从到到位去研发,我们可以拿现有的开发出来的功能模块来使用,而这个功能模块,就叫做库(libary).比如说:要实现数据传输的安全,这 ...

  6. 淘宝API商家自用型应用程序全部源代码和详细的帮助文档(1元有偿提供)

    我曾写过一篇C#调用淘宝API流程整理,大体介绍过淘宝API的使用流程.如果你对淘宝API感兴趣,又找不到好的学习资料和实例程序作为参考,可以选择购买此教程.为什么选择有偿提供?一是作为对自己劳动的回 ...

  7. 淘宝API学习之道:淘宝API相关了解

    淘宝API开发平台,经过两年多的升级一系列动作,提供的api接口日渐稳定.看到淘宝api开发的浏览量还是较大,但那会写的DEMO如今已不能执行,淘宝改了链接地址,改了加密算法,为了不让大家浪费时间,特 ...

  8. 淘宝api 登录验证

    淘宝api登录验证代码 using System; using System.Collections.Generic; using System.ComponentModel; using Syste ...

  9. 如何用代码爬抓电商数据(附淘宝API调用实例)

    2019独角兽企业重金招聘Python工程师标准>>> 如何用代码爬抓电商数据(附淘宝API调用实例) http://www.21ds.cn/2190.html 转载于:https: ...

最新文章

  1. 无盘服务器pnp,深入解读无盘PNP方法,无盘系统PNP并不神秘
  2. 面向对象先导课程——PART3
  3. 24c语言程序设计是啥,《C语言程序设计》作业答案.docx
  4. C. Diverse Permutation(Codeforces Round #275(div2)
  5. Windows 10 下基于WSL的开源飞控开发环境配置(Ardupilot/PX4)
  6. Mysql 里的约束
  7. linux内核定时器 代码,Linux内核计时器
  8. uniapp调用c语言方法,uni-app 入坑指南-web开发
  9. php 管理数组数据库,【PHP】一个用PHP数组管理数据库表结构更新功能的烂代码~...
  10. 2018年湖南居民人均可支配收入25241元 出行餐饮成消费热点
  11. vue.js下载安装教程
  12. 亚马逊云科技成为Meta关键长期战略云服务提供商;触宝科技延伸业务布局聚焦元宇宙 | 全球TMT...
  13. 企业安全建设-蜜标(honeytokens)
  14. matlab 梯度下降 求偏导,吴恩达机器学习课程课时12梯度下降算法中参数θ0,θ1求偏导...
  15. 商业智能,数据仓库,ETL,数仓调度工具informatica介绍手账(三)
  16. 一行代码教你七夕情人节如何告白❤—动漫3D相册(音乐+文字)HTML+CSS+JavaScript
  17. QGIS加载无偏移卫星地图URL
  18. word2016论文不同章节设置页眉页码方法
  19. 2022年前端面试题总结
  20. Python实现文字转语音功能

热门文章

  1. 给两个字符串,S 和 T,在 S 中找出包含 T 中所有字母的最短字符串,不考虑顺序。
  2. #新零售报告#社区团购、社区经济报告全集
  3. eclipse 使用jad插件安装详解
  4. JS判断是苹果系统(ios)还是安卓系统(Android)或者PC端
  5. Python跳跳兔小游戏源代码,兔年必玩小游戏,兔年大吉
  6. Fanuc开发技术集-Focas2中英文函数对照表第十七部分
  7. 很简单的左侧随页面滚动下滑的漂浮图片代码
  8. 【pyecharts50例】带阴影效果折线图~
  9. NEW | UWA GOT支持PC项目
  10. 【学习笔记】数据库系统原理 第十章 数据库事务恢复技术