下载sdk测试了半天,结果发现许多接口需要申请权限,要么就是没有流量,于是就作罢了,保留一段测试用程序备用吧。
<?php
// 京东联盟API配置
date_default_timezone_set("PRC");
$appKey = '';
$appSecret = '';
$siteId = '';
$skuId = '';
// 生成推广链接
function generateJdPromotionLink($skuId, $appKey, $appSecret, $siteId) {
$method = 'jd.union.open.goods.promotiongoodsinfo.query';
$timestamp = date('Y-m-d H:i:s');
$v = '1.0';
$signMethod = 'md5';
// 请求参数
$params = [
'method' => $method,
'app_key' => $appKey,
'timestamp' => $timestamp,
'v' => $v,
'sign_method' => $signMethod,
'param_json' => json_encode([
'skuIds' => $skuId,
'siteId' => $siteId,
]),
];
// 生成签名
ksort($params);
$signString = $appSecret;
foreach ($params as $key => $value) {
$signString .= $key . $value;
}
$signString .= $appSecret;
$sign = strtoupper(md5($signString));
// 添加签名到参数
$params['sign'] = $sign;
// 请求API
$apiUrl = 'https://api.jd.com/routerjson';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 忽略SSL证书验证
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 忽略SSL主机验证
$response = curl_exec($ch);
if (curl_errno($ch)) {
die("API请求失败: " . curl_error($ch));
}
curl_close($ch);
// 解析结果
$result = json_decode($response, true);
// 调试信息
echo "<pre>";
print_r($result);
echo "</pre>";
// 检查结果
if (isset($result['jd_union_open_goods_promotiongoodsinfo_query_responce']['result'])) {
$promotionInfo = json_decode($result['jd_union_open_goods_promotiongoodsinfo_query_responce']['result'], true);
if ($promotionInfo['code'] == 200 && !empty($promotionInfo['data']['promotionInfo']['promotionUrl'])) {
return $promotionInfo['data']['promotionInfo']['promotionUrl'];
} else {
die("API返回错误: " . $promotionInfo['message']);
}
} else {
die("API返回结果格式不正确");
}
}
// 生成推广链接
$promotionUrl = generateJdPromotionLink($skuId, $appKey, $appSecret, $siteId);
if ($promotionUrl) {
echo "推广链接: " . $promotionUrl;
} else {
echo "生成推广链接失败";
}
?>