ThinkPhp3.2 SDK 淘宝API

浏览:6288 发布日期: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);
    }
这样就可以了 上传到线上 访问一下 登录后成功回显当前用户的店铺宝贝列表
最佳答案
评论( 相关
后面还有条评论,点击查看>>