- <?php
- class TaobaoApi {
- /*
- * 定义并初始化参数数组,某些固定参数可写在这个位置
- */
- protected $_param = array('app_key' => '21572060', 'v' => '2.0',
- 'sign_method' => 'md5', 'format' => 'xml');
- /*
- * Sign值存储变量
- */
- protected $_sign;
- /*
- * 应用密码存储变量
- */
- public $secret = 'your secret';
- /*
- * 请求URL存储变量
- */
- protected $_url;
- public function run() {
- $this->createSign();
- $this->createRequestUrl();
- return $this->requestData();
- }
- /*
- * 通过魔法赋值向参数数组写入数据
- * @param string $name 数组名
- * @param string $value 数组键值
- */
- public function __set($name, $value) {
- $this->_param[$name] = $value;
- }
- /*
- * 组建Sign
- * @global $this->_param 参数数组
- * @global $this->secret 应用密钥
- */
- protected function createSign() {
- $this->_param['timestamp'] = date('Y-m-d H:i:s');
- ksort($this->_param, SORT_STRING); //数组按键值排序
- $tmp = '';
- foreach ($this->_param as $key => $value) {
- $tmp.= $key . $value;
- }
- $this->_sign = strtoupper(md5($this->secret . $tmp . $this->secret));
- }
- /*
- * 由参数和Sign值组合成请求URL
- * @global $this->_param
- * @global $this->url
- */
- protected function createRequestUrl() {
- $this->_param['timestamp'] = urlencode($this->_param['timestamp']);
- $this->_url = 'http://gw.api.taobao.com/router/rest?sign=' . $this->_sign;
- foreach ($this->_param as $key => $value) {
- $this->_url.='&' . $key . '=' . $value;
- }
- }
- /*
- * 获取数据
- */
- protected function requestData() {
- return file_get_contents($this->_url);
- }
- }
- $a = new TaobaoApi();
- //下面只要写入淘宝API规定必须传入的参数
- $a->method = 'taobao.item.get';
- $a->fields = 'desc,nick';
- $a->app_key = 'your key';
- $a->secret = 'your secret';
- $a->num_iid = 16096610668;
- //默认以xml方式输出
- echo $a->run();
- ?>
- //该片段来自于http://www.codesnippet.cn/detail/021220137653.html
来源: http://www.codesnippet.cn/detail/021220137653.html