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);
}这样就可以了 上传到线上 访问一下 登录后成功回显当前用户的店铺宝贝列表
最佳答案