设为首页收藏本站
网站公告 | 这是第一条公告
     

 找回密码
 立即注册
缓存时间00 现在时间00 缓存数据 你是我生命中所能经历的,最最深切的感觉。

你是我生命中所能经历的,最最深切的感觉。

查看: 1079|回复: 0

PHP对京东联盟CPS的API调用

[复制链接]

  离线 

TA的专栏

  • 打卡等级:热心大叔
  • 打卡总天数:219
  • 打卡月天数:0
  • 打卡总奖励:3226
  • 最近打卡:2025-03-26 08:18:20
等级头衔

等級:晓枫资讯-上等兵

在线时间
0 小时

积分成就
威望
0
贡献
449
主题
438
精华
0
金钱
4595
积分
929
注册时间
2023-1-7
最后登录
2025-5-31

发表于 2023-2-12 19:53:28 | 显示全部楼层 |阅读模式
在调用接口之前,先要取得授权,这个看看接口文档就可以了。地址如下:https://jos.jd.com/doc/channel.htm?id=152
在京东云控制台:https://console.jdcloud.com/
“新建应用”获得 调用接口的通用参数(App key/client_id、App secret/client_secret、access_token)。
205447eipijl4mlo3lzj55.png

授权有效期说明:如果应用appkey状态为“在线测试”,授权token有效期只有
  1. 24小时
复制代码
,“上线运行”状态的应用授权token有效期为
  1. 一年
复制代码
。另如果是通用应用,需要先发布到服务市场,审核通过后方可授权获取token。
  1. 注意:如授权商家修改主账号密码则授权码(Access token)随之失效,需重新授权。
复制代码
另需在京东联盟:
推广管理-》网站管理,添加新网站 获得例如“获取单条推广代码”之类的API所需的web ID。如需app调用,则需要在推广管理-》APP管理 添加一个APP,以获得app相关接口所需要的appId 。
备案通过后的网站,通过京东审核,一般需要3-5个工作日。
205447b3ufxly366339c8b.png

准备好以上应用级参数后,便可以调用京东联盟API了,接口文档地址:https://jos.jd.com/api/list.htm?id=117
205447wx0ihhdj4dffp1hp.png

开发之前可以先用”API测试工具“测试一下。获取推广商品信息接口测试地址:https://jos.jd.com/api/showTools.htm?id=1413&groupId=117
下图是批量获取推广代码的接口测试结果:
205447ldddaddn3ddddlje.png

比较坑爹的是 获取单条推广代码 的接口
205448s04j40v00bda2kvv.png

推广类型有好多个,但是目前只支持”自定义推广“!物料ID的注释很多,但是就是不说明自定义推广类型的物料ID怎么填!实际上,物料ID要填商品的访问地址。
推广渠道为PC时,要写诸如http://item.jd.com/2346382.html的地址;推广渠道为WL时,要写诸如http://item.m.jd.com/product/2346382.html的地址。
php代码如下:
  1. class jd {
  2.     public static $appKey = '';
  3.     public static $appSecret = '';
  4.     public static $access_token = '';
  5.     const URL = 'https://api.jd.com/routerjson?';

  6.     /* 发送GET请求,跳过ssl证书检测 */
  7.     function curl_get($url){
  8.         $ch = curl_init();
  9.         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);    // https请求 不验证证书和hosts
  10.         curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  11.         curl_setopt($ch, CURLOPT_URL, $url);
  12.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    // 要求结果为字符串且输出到屏幕上
  13.         curl_setopt($ch, CURLOPT_HEADER, 0); // 不要http header 加快效率
  14.         curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
  15.         curl_setopt($ch, CURLOPT_TIMEOUT, 15);
  16.         $output = curl_exec($ch);
  17.         curl_close($ch);
  18.         return $output;
  19.     }

  20.     //设置参数
  21.     function setParameter($specialParameter){
  22.         $time = date('Y-m-d H:i:s', time());

  23.         $publicParameter = array(
  24.             'access_token'         => static::$access_token,
  25.             'app_key'             => static::$appKey,
  26.             'v'                 => '2.0',
  27.             'timestamp'         => $time,
  28.         );

  29.         $params = array_merge($publicParameter, $specialParameter);
  30.         $sign = self::getStringToSign($params);

  31.         $parameter = array_merge($params, ['sign'=>$sign]);
  32.         ksort($parameter);
  33.         $str = '';
  34.         foreach($parameter as $key => $value){
  35.             $str .= urlencode($key) . '=' . urlencode($value) . '&';
  36.         }

  37.         return $str;
  38.     }

  39.     //生成签名
  40.     function getStringToSign($parameter){

  41.         ksort($parameter);
  42.         $str = '';
  43.         foreach($parameter as $key => $value){
  44.             $str .= urlencode($key) . urlencode($value);
  45.         }

  46.         $str = static::$appSecret . $str . static::$appSecret;

  47.         $signature = strtoupper(md5($str));

  48.         return $signature;
  49.     }

  50.     //获取推广商品信息
  51.     public function getGoodsInfo($skuId){
  52.    
  53.         $specialParameter = [
  54.             'method'    => 'jingdong.service.promotion.goodsInfo',
  55.             '360buy_param_json' => json_encode([
  56.                 'skuIds'    => $skuId
  57.             ])
  58.         ];

  59.         $str = self::setParameter($specialParameter);
  60.         $url = self::URL.$str;

  61.         return json_decode(self::curl_get($url));
  62.     }
  63. }
复制代码
返回的数据格式为:
  1.   object(stdClass)#59 (1) {
  2.   ["jingdong_service_promotion_goodsInfo_responce"]=>
  3.   object(stdClass)#60 (2) {
  4.     ["code"]=>
  5.     string(1) "0"
  6.     ["getpromotioninfo_result"]=>
  7.     string(499) "{
  8.         "message":"接口成功",
  9.         "result":[{
  10.             "commisionRatioPc":0.60,
  11.             "commisionRatioWl":0.60,
  12.             "endDate":4102416000000,
  13.             "goodsName":"联想(ThinkPad )轻薄系列E450(20DCA082CD)14英寸笔记本电脑 (i5-5200U 4G 500G 2G独显 win10)",
  14.             "imgUrl":"http://img14.360buyimg.com/n1/jfs/t3025/299/208536801/248419/ef1e3b38/579729e0N1e605005.jpg",
  15.             "materialUrl":"http://item.jd.com/2346382.html",
  16.             "shopId":1000000158,
  17.             "skuId":2346382,
  18.             "startDate":1475251200000,
  19.             "unitPrice":3999.0,
  20.             "wlUnitPrice":3999
  21.         }],
  22.         "sucessed":true}"
  23.     }
  24.   }
复制代码
到此这篇关于PHP调用京东联盟API的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持晓枫资讯。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
晓枫资讯-科技资讯社区-免责声明
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
      1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
      2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
      3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:点击这里给我发消息进行删除处理。
      4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
      5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~
严禁发布广告,淫秽、色情、赌博、暴力、凶杀、恐怖、间谍及其他违反国家法律法规的内容。!晓枫资讯-社区
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|晓枫资讯--科技资讯社区 本站已运行

CopyRight © 2022-2025 晓枫资讯--科技资讯社区 ( BBS.yzwlo.com ) . All Rights Reserved .

晓枫资讯--科技资讯社区

本站内容由用户自主分享和转载自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

如有侵权、违反国家法律政策行为,请联系我们,我们会第一时间及时清除和处理! 举报反馈邮箱:点击这里给我发消息

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表