[文章作者:张宴 本文版本:v1.0 最后修改:2012.02.16 转载请注明原文链接:http://blog.zyan.cc/taobaoke_click_urls/]

  根据淘宝商品 num_iid 批量生成淘宝客(什么是淘宝客?)链接的 PHP 文件内容如下。

  淘宝 API 有调用次数限制,一次 API 调用,可以最大返回40个商品的淘宝客链接,因此,在本函数内,如果需要批量生成的淘宝商品 num_iid 数大于40,将按照40个一次,分多次调用。如果调用淘宝 API 查询过的商品 num_iid,不管其是否有淘宝客链接(有些商品没有淘宝客推广链接),都将利用 Memcached 缓存起来,下次直接查缓存,不会重复调用淘宝 API。

<?php
require_once(dirname(__FILE__).'/TopSdk.php'); //引用淘宝开放平台 API SDK

function object2Array($d)
{
        if (is_object($d))
        {
            $d = get_object_vars($d);
        }

        if (is_array($d))
        {
            return array_map(__FUNCTION__, $d);
        }
        else
        {
            return $d;
        }
}


/*********************************************
* 函数名:get_taobaoke_link ($num_iids)
* 函数用途:通过淘宝商品 num_iids 获取其对应的淘宝客手机版链接
* 创建时间:2012-02-14
* 创建人:张宴 net@zyan.cc
* 参数说明:
*    $num_iids   淘宝商品ID(支持多个商品)数组,示例如下:
*          $num_iids[] = "13583512568";
*          $num_iids[] = "10809380078";
*          $num_iids[] = "10809380079";  
* 返回值:
*    下标为淘宝商品 num_iid ,值为淘宝客链接 click_url 的二维数组。如果无淘宝客链接,click_url 为空字符串,示例如下:
*          array(3) {
*            ["13583512568"]=>
*            string(191) "http://auction1.wap.taobao.com/auction/item_detail-0db2-13583512568.jhtml?tks=jUTwPLMDtUUNEZhqfEuTZqkZhGw1LA7%2BzCJBXCj27NpurHxjZN70Amg0DVaFU61pfnHwW%2FI4MZGm%0Awgb69kbb1NL8uwtu%2BDnyAunBCVDP"
*            ["10809380078"]=>
*            string(187) "http://auction1.wap.taobao.com/auction/item_detail-0db2-10809380078.jhtml?tks=jUTwPLMDtUUNEGWhOOgVVuX%2BJKYt7fesyuZjEe7hvmpTJxYDfK8i1Wpvfl7lwI7nzD9W8M352v6E%0AyuUtsKun81AGltKzJWCYPiVDiOeC"
*            ["10809380079"]=>
*            string(0) ""
*          }  
*********************************************/
function get_taobaoke_link ($num_iids) {
  $memcache = new Memcache;
  $memcache->connect('127.0.0.1', 11911); //Memcached 缓存服务器地址
  $click_urls = $memcache->get($num_iids);
  
  foreach ($num_iids AS $num_iid) {
    if (!isset($click_urls[$num_iid])) {
      $tbapi_num_iids_arr[] = $num_iid;
    }
  }
  
  if (!empty($tbapi_num_iids_arr)) {
    $numbers = count($tbapi_num_iids_arr);
    $numbers_max = 40; //淘宝 API 限制最大返回40条记录
    if ($numbers > 0) {
      $numbers_times = ceil($numbers / $numbers_max); //第一层循环的循环次数
      $numbers_start = 0;
      $numbers_end = $numbers_max;
      for ($numbers_i = 1; $numbers_i <= $numbers_times; $numbers_i++) {
        for ($numbers_j = $numbers_start; $numbers_j < $numbers_end; $numbers_j++) {
          if ($numbers_j >= $numbers) {
            break;
          }
          $tbapi_num_iids_arr_sp[] = $tbapi_num_iids_arr[$numbers_j];
        }
        
        $numbers_start = $numbers_start + $numbers_max;
        $numbers_end = $numbers_end + $numbers_max;
        
        $tbapi_num_iids = implode(",", $tbapi_num_iids_arr_sp);
        $c = new TopClient;
        $c->appkey = 12498835; //淘宝开放平台 API 接口 App Key
        $c->secretKey = "745db5f8e316f9f1aa8310a7568d6566"; //淘宝开放平台 API 接口 App Secret
        $c->format = "json";
        $req = new TaobaokeItemsConvertRequest;
        $req->setFields("num_iid,click_url");
        $req->setNumIids($tbapi_num_iids);
        $req->setPid(29509662); //淘宝联盟(阿里妈妈)PID
        $req->setIsMobile("true"); //如果要生成手机页面的淘宝客链接,选择 true;网页版选择 false
        $resp = $c->execute($req);
        $res = object2Array($resp);
  
        if (isset($res["taobaoke_items"]["taobaoke_item"])) {
          $links = $res["taobaoke_items"]["taobaoke_item"];
          foreach ($links as $value) {
            $memcache->set($value["num_iid"], $value["click_url"], MEMCACHE_COMPRESSED, 0);
            $click_urls[(string)$value["num_iid"]] = $value["click_url"];
          }
        }
        
        unset($tbapi_num_iids_arr_sp);
        unset($tbapi_num_iids);
        unset($resp);
        unset($res);
        unset($links);
        unset($value);
      }
    }
  }
  
  foreach ($num_iids AS $num_iid) {
    if (!isset($click_urls[$num_iid])) {
      $memcache->set($num_iid, "", MEMCACHE_COMPRESSED, 0);
      $click_urls[(string)$num_iid] = "";
    }
  }  
  
  $memcache->close();
  return $click_urls;
}

//演示
$num_iids[] = "13583512568";
$num_iids[] = "10809380078";
$num_iids[] = "10809380079";
$click_urls = get_taobaoke_link ($num_iids);
var_dump($click_urls);
?>




  淘宝开放平台(http://open.taobao.com/) PHP SDK 下载:


  申请淘宝 API 的 App Key 和 App Secret ,可以到 http://my.open.taobao.com/ 进行。

  点击在新窗口中浏览此图片




技术大类 » PHP/JS/Shell | 评论(188) | 引用(0) | 阅读(94580)
PGGAMESLOT Email Homepage
2022-4-1 18:17
ฝาก50รับ150    Deposit 50, get 150, no need to turn or call it easy to understand is a promotion, deposit 50, get 150 wallet as another
PGGAMESLOT Email Homepage
2022-4-1 18:17
slot 1234    Earn real money without investment 2021 new dimension of making money from online gambling games Play free fish shooting games.
สล็อต pg Email Homepage
2022-4-1 19:01
สล็อต pg   currently has online slot games. Comes in a new format with 3D images as slots online, direct websites and leading game camps such as PG SLOT JOKER GAME, new member registration, 100% bonus and many more slots
pg 168 Email Homepage
2022-4-1 19:02
pg 168   currently has online slot games. Comes in a new format with 3D images as slots online, direct websites and leading game camps such as PG SLOT JOKER GAME, new member registration, 100% bonus and many more slots
pg slot เว็บใหม่ Email Homepage
2022-4-1 19:03
pg slot เว็บใหม่   online slot games The most popular of the year 2021, joker game, deposit-withdraw, no minimum, there is a popular game like roma slot, apply for a joker game today, get a 100% bonus if you ask about the hot online gambling game overtaking the curve.
PG SLOT GAME Email Homepage
2022-4-1 19:03
PG SLOT GAME  It is a new hot new game camp of the year 2021, in which this camp pg 168 is very different from other camps and one of them is clearly Pc game 168.
edna123 Email
2022-4-13 09:21
You can go to our game app to download free cool apps available at temple run 2 mod apk
카지노커뮤니티 Email
2022-5-7 10:41
When did you start writing articles related to ? To write a post by reinterpreting the 카지노커뮤니티 I used to know is amazing. I want to talk more closely about , can you give me a message?
카지노사이트 Email
2022-5-13 16:27
I'm looking for a lot of data on this topic. The article I've been looking for in the meantime is the perfect article. Please visit my site  for more complete articles with him! 카지노사이트
taslekmagiry1 Email Homepage
2022-5-19 17:05
ضمان خدمة تأهيل وتنظيف تسليك مجاري الجهراء  المواسير بدون اعماللتنفيذ هذا النوع من الإجراءاتفنى صحى القرين
seo
2022-5-23 18:31
When you use a genuine service, you will be able to provide instructions, share materials and choose the formatting style. slot1688
seo
2022-5-23 18:32
Great job for publishing such a beneficial web site. Your web log isn’t only useful but it is additionally really creative too. live22
Kurt Vasquez Email
2022-6-6 16:32
The information shared is very good and interesting, I like it very much. If you are passionate about video editing on your phone, you can't ignore this good application by pressing capcut chỉnh sửa video  to download it for free.
elanieluis Email Homepage
2022-6-20 18:34
Cinema HD\'s free version offers a good design and quality. We are proud to deliver this application in the highest quality and design. At this moment in time, the display changes to reflect the changing times. You may use Cinema HD to find out if movies and TV shows are available to stream on any of your favorite video streaming services.
facebug555
2022-6-29 17:23
如何才能避免<a href="https://www.facebug555.com/newblog/c8cfad1c.html">Facebook封号</a>呢?
facebug555
2022-6-29 17:24
如何才能避免呢?Facebook封号
intl-add
2022-7-6 11:00
Thanks for a very interesting blog. private house design
frankyth
2022-7-25 14:59
You make so many great points here that I read your article a couple of times. Your views are in accordance with my own for the most part. This is great content for your readers. jkbet
rajan Email
2022-8-20 18:19
when you leave da hood do you lose your guns | Fandom. You'll only lose your guns if you are either knocked (includes while being carried, out of ammo or glitched. glitch in da hood roblox gamehttps://tgmacro.org/macro-speed-glitch-in-da-hood/
rogerdiaz Email
2022-8-31 10:28
Thanks for sharing. You can listen to music on Spotify Premium APK and moreover there are many great songs by famous singersSpotify Premium APK
分页: 9/10 第一页 上页 4 5 6 7 8 9 10 下页 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]