[php]代码库
<? php
require_once (dirname (__FILE__).'/TopSdk.php'); //引用淘宝开放平台 API SDK http://open.taobao.com/index.htm
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@s135.com
* 参数说明:
* $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);
? >
初级程序员
by: 无语 发表于:2016-08-22 10:40:16 顶(1) | 踩(0) 回复
你好,这个代码现在运行失败,可以根据最新的淘宝开发平台API,在看一下如何用PHP批量生成淘宝客链接吗?有偿的,1140863582这是我的QQ
回复评论