淘宝开放API菜鸟教程——根据卖家昵称获取卖家店铺ID

做淘客,选产品是一件非常烦的事,所以自己按淘宝api的文档,并参考了几个api例子,做成了这个php类,有了这个类就可以按关键词直接获取产品列表了,真是方便呀。

<?php 
class taobaoke{     
    protected 
$url 'http://gw.api.taobao.com/router/rest?';  //正式环境提交URL 
    
protected $appKey '88888888'//填写自己申请的AppKey 
    
protected $appSecret 'xxxxxxxxxxxxxxxxxxxxxx'//填写自己申请的$appSecret 
    
protected $userNick//淘宝昵称,这是你帐号的淘宝昵称,所得佣金就是用这个接收的     

    //参数数组 
    
protected $paramArr = array( 
        
/* API系统级输入参数 Start */ 
        
'method' => 'taobao.taobaoke.items.get',  //API名称 
        //'timestamp' => date('Y-m-d H:i:s'),             
        
'format' => 'xml',  //返回格式,本demo仅支持xml 
        //'app_key' => $appKey,  //Appkey         
        
'v' => '2.0',   //API版本号            
        
'sign_method'=> 'md5'//签名方式         
        /* API系统级参数 End */     
         
        /* API应用级输入参数 Start*/ 
        
'fields' => 'num_iid,title,pic_url,price,click_url,volume,commission',//返回字段 
           //'nick' => $userNick,  
        
'keyword'=>'连衣裙'
        
'cid'=>0
        
'start_price'=>'30'
        
'end_price'=>'99999'
        
'start_credit'=>'4heart',//卖家信用 
        
'sort'=>'commissionVolume_desc',//默认排序:总支出佣金从高到低 
        
'start_commissionRate'=>'1000',//佣金比率下限,如:1234表示12.34% 
        
'end_commissionRate'=>'8000',//佣金比率上限,如:1234表示12.34% 
        
'start_commissionNum'=>'10',//30天累计推广量上限 
        
'end_commissionNum'=>'900000',//30天累计推广量下限 
        
'real_describe'=>'true',//是否如实描述(即:先行赔付)商品 
        
'page_no'=>1,//结果页数 
        
'page_size'=>10,//每页产品数 
        /* API应用级输入参数 End*/ 
    
); 
     
    
/** 
    *构造函数 
    *@$mainParam:string,为四个用英文逗号隔开的参数,这四个参数依次为关键词、佣金比率下限和价格下限、30天累计推广量上限,关键词为必填项,后面三个为可选项 
    *@$userNick:string 
    */ 
    
public function __construct($mainParam='关键词,1000,30,10',$userNick='淘宝昵称'){ 
        
$this->userNick=$userNick
        
$mainParamArr=explode(',',$mainParam); 
        
$this->paramArr['keyword']=$mainParamArr[0]; 
        if(isset(
$mainParamArr[1])){ 
            
$this->paramArr['start_commissionRate']=$mainParamArr[1]; 
        } 
        if(isset(
$mainParamArr[2])){ 
            
$this->paramArr['start_price']=$mainParamArr[2]; 
        } 
        if(isset(
$mainParamArr[3])){ 
            
$this->paramArr['start_commissionNum']=$mainParamArr[3]; 
        } 
        
$this->paramArr['timestamp']=date('Y-m-d H:i:s'); 
        
$this->paramArr['nick']=$this->userNick
        
$this->paramArr['app_key']=$this->appKey
    } 
     
    public function 
getTaokeResult(){ 
        
//生成签名 
        
$sign $this->createSign($this->paramArr,$this->appSecret); 
        
//组织参数 
        
$strParam $this->createStrParam($this->paramArr); 
        
$strParam .= 'sign='.$sign
         
        
//构造Url 
        
$url $this->url.$strParam
        
//连接超时自动重试 
        
$cnt=0;     
        while(
$cnt && ($result=@$this->vita_get_url_content($url))===FALSE){ 
            
$cnt++; 
        } 
        
//解析Xml数据 
        
$result $this->getXmlData($result); 
        return 
$result['taobaoke_items']['taobaoke_item']; 
    } 


    
//获取数据兼容file_get_contents与curl 
    
protected function vita_get_url_content($url) { 
        if(!
function_exists('curl_init')) { 
            
$file_contents file_get_contents($url); 
        } else { 
            
$ch curl_init(); 
            
$timeout 5;  
            
curl_setopt ($chCURLOPT_URL$url); 
            
curl_setopt ($chCURLOPT_RETURNTRANSFERtrue); 
            
//设置允许curl请求连接的最长秒数,如果设置为0,则无限 
            
curl_setopt ($chCURLOPT_CONNECTTIMEOUT$timeout); 
            
//设置允许curl所有动作执行的最长秒数,如果设置为0,则无限 
            
curl_setopt ($chCURLOPT_TIMEOUT,$timeout*3); 
            
$file_contents curl_exec($ch); 
            
curl_close($ch); 
        } 
        return 
$file_contents
    } 
     
    
//签名函数  
    
protected function createSign ($paramArr,$appSecret) {  
        
//global $appSecret;  
        
$sign $appSecret;  
        
ksort($paramArr);  
        foreach (
$paramArr as $key => $val) {  
           if (
$key !='' && $val !='') {  
               
$sign .= $key.$val;  
           }  
        }  
        
$sign strtoupper(md5($sign.$appSecret)); 
        return 
$sign;  
    } 

    
//组参函数  
    
protected function createStrParam ($paramArr) {  
        
$strParam '';  
        foreach (
$paramArr as $key => $val) {  
           if (
$key != '' && $val !='') {  
               
$strParam .= $key.'='.urlencode($val).'&';  
           }  
        }  
        return 
$strParam;  
    }  

    
//解析xml函数 
    
protected function getXmlData ($strXml) { 
        
$pos strpos($strXml'xml'); 
        if (
$pos) { 
            
$xmlCode=simplexml_load_string($strXml,'SimpleXMLElement'LIBXML_NOCDATA); 
            
$arrayCode=$this->get_object_vars_final($xmlCode); 
            return 
$arrayCode 
        } else { 
            return 
''
        } 
    } 
     
    protected function 
get_object_vars_final($obj){ 
        if(
is_object($obj)){ 
            
$obj=get_object_vars($obj); 
        } 
        if(
is_array($obj)){ 
            foreach (
$obj as $key=>$value){ 
                
$obj[$key]=$this->get_object_vars_final($value); 
            } 
        } 
        return 
$obj
    } 

?>

原创文章  http://www.yangwo.net/214/
使用方法:
1、配置 $appKey和$appSecret
2、直接实例化一个类,如
$taoke=new taobaoke('连衣裙,1000,50','笑望书'); 
$taokeArr=$taoke->getTaokeResult();

$taokeArr就是一个包含查询到的淘客数据的二维数组,根我们在数据库里查询多条记录返回的结果一样

3、可以用foreach()循环打印$taokeArr


<php 
header("Content-Type:text/html;charset=UTF-8"); 
/*本程序功能:根卖家昵称获取卖家店铺sid,还有店铺标题*/ 
//config 
$appKey = '12345678; //你的密匙 
$appSecret = '123456789'; 
$usernick = 'grayvoice'; //你的用户名 
$salenick= '缺水鱼儿'; //卖家昵称 
//签名函数 
function createSign ($paramArr) { 
global $appSecret; 
$sign = $appSecret; 
ksort($paramArr); 
foreach ($paramArr as $key => $val) { 
if ($key !='' && $val !='') { 
$sign .= $key.$val; 


$sign = strtoupper(md5($sign)); 
return $sign; 

//组参函数 
function createStrParam ($paramArr) { 
$strParam = ''; 
foreach ($paramArr as $key => $val) { 
if ($key != '' && $val !='') { 
$strParam .= $key.'='.urlencode($val).'&'; 


return $strParam; 

//解析xml函数 
function getXmlData ($strXml) { 
$pos = strpos($strXml, 'xml'); 
if ($pos) { 
$xmlCode=simplexml_load_string($strXml,'SimpleXMLElement', LIBXML_NOCDATA); 
$arrayCode=get_object_vars_final($xmlCode); 
return $arrayCode ; 
} else { 
return ''; 




function get_object_vars_final($obj){ 
if(is_object($obj)){ 
$obj=get_object_vars($obj); 

if(is_array($obj)){ 
foreach ($obj as $key=>$value){ 
$obj[$key]=get_object_vars_final($value); 


return $obj; 

//参数数组 
$paramArr = array( 
'app_key' => $appKey, 
'method' => 'taobao.shop.get', 
'format' => 'xml', 
'v' => '1.0', 
'timestamp' => date('Y-m-d H:i:s'), 
'fields' => 'sid,nick,title', /*想要返回的数据的相应参数,sid对应卖家店铺id,nick对应卖家昵称,这里其实不用返回,因为已经知道了嘛。title对应卖家店铺标题,也就是店铺名称*/ 
'nick' => $salenick //卖家昵称 


); 
//生成签名 
$sign = createSign($paramArr); 
//组织参数 
$strParam = createStrParam($paramArr); 
$strParam .= 'sign='.$sign; 
//访问服务 
$url = 'http://gw.api.taobao.com/router/rest'.$strParam; 
$result = file_get_contents($url); 
$result = getXmlData($result); 
$sid = $result['shop']['sid']; //返回卖家店铺ID 
$nick = $result['shop']['nick']; //返回卖家昵称 
$title = $result['shop']['title']; //返回卖家店铺标题 

<php echo '卖家店铺ID:'.$sid.'<br>';> <!-- 在页面打印店铺ID --> 
<php echo '卖家昵称:'.$nick.'<br>';> <!-- 在页面打印卖家昵称--> 
<php echo '店铺标题:'.$title.'<br>';> <!-- 在页面打印卖家店铺标题 -->

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值