搜索
系统检测到您的用户名不符合规范:

ThinkPhp3.2 SDK 淘宝API

浏览:6762 发布日期:2015年03月13日 分类:技术分享 关键字: 淘宝API
1.下载最新的TP到本地。

2.下载[ThinkPHP 3.2.3 Bate版本下的三方登录SDK]
传送门:http://www.thinkphp.cn/extend/626.html

3.把下载后的类库[ThinkSDK]放进TP的\ThinkPHP\Library\Org目录内

准备工作就完成了 下面开始修改
====================================
首先新建一个项目 控制器如下 public function index() {
$taobao = ThinkOauth::getInstance('taobao', $token);
redirect($taobao->getRequestCodeURL());//跳转到授权页面
}
编辑项目的配置文件 配置你的API连接信息 格式参考[ThinkPHP 3.2.3 Bate版本下的三方登录SDK]里边DEMO的配置

配置完成后添加一个方法 以shop为例子 public function shop(){
// 设置类型为淘宝
$type = 'Taobao';

// 获取淘宝的实例化对象
$taobao = ThinkOauth::getInstance($type,$token);

// 给extend赋值初始null
$extend = null;

// 获取token值。
$token = $taobao->getAccessToken($code, $extend);

$data = $taobao->call('taobao.items.onsale.get','fields=approve_status,num_iid,title,nick,type,cid,pic_url,num,props,valid_thru,list_time,price,has_discount,has_invoice,has_warranty,has_showcase,modified,delist_time,postage_id,seller_cids,outer_id');

var_dump($data);
}
下面进入\ThinkPHP\Library\Org\ThinkSDK\sdk\TaobaoSDK.class.php文件内,修改call方法 public function call($api, $param = '', $method = 'POST', $multi = false) {
/* 淘宝网调用公共参数 */
$params = array(
'app_key' =>$this->AppKey,
'method' => $api,
'session' => $this->Token['access_token'],
'format' => 'json',
'v' => '2.0',
'timestamp' => date("Y-m-d H:i:s"),
'sign_method' => 'md5'
);

$jinx = $this->param($params,$param);

//对数组参数进行排序
ksort($jinx);

//把数组拆散后前后加上appkey
$stringToBeSigned = $this->AppSecret;

foreach ($jinx as $k => $v){
$stringToBeSigned .= "$k$v";
}

$stringToBeSigned .= $this->AppSecret;

//加密后的sign签名
$sign['sign'] = strtoupper(md5($stringToBeSigned));

$data = $this->http($this->url(''), $this->sparam($params,$param,$sign),$method);

return json_decode($data, true);
}
[修改了原本提交的参数属性,新增了sign签名与签名的加密算法,提交方式改为POST]

修改文件ThinkPHP\Library\Org\ThinkSDK\ThinkOauth.class.php

在protected function param($params, $param)这个方法的下边新增一个方法 代码如下 /**
* 合并三个数组[带sign签名]
* @param array $params 默认参数
* @param array/string $param 额外参数
* @param array $sign sign签名
* @return array:
*/
protected function sparam($params, $param,$sign) {
if (is_string($param))
parse_str($param, $param);
return array_merge($params,$param,$sign);
}
这样就可以了 上传到线上 访问一下 登录后成功回显当前用户的店铺宝贝列表
最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
柳梦璃
积分:1488 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /