PHP对京东联盟CPS的API调用

吾爱主题 阅读:158 2022-11-13 15:13:00 评论:0

在调用接口之前,先要取得授权,这个看看接口文档就可以了。地址如下:https://jos.jd.com/doc/channel.htm?id=152

在京东云控制台:https://console.jdcloud.com/

“新建应用”获得 调用接口的通用参数(App key/client_id、App secret/client_secret、access_token)。

授权有效期说明:如果应用appkey状态为“在线测试”,授权token有效期只有24小时,“上线运行”状态的应用授权token有效期为一年。另如果是通用应用,需要先发布到服务市场,审核通过后方可授权获取token。

注意:如授权商家修改主账号密码则授权码(Access token)随之失效,需重新授权。

另需在京东联盟:

推广管理-》网站管理,添加服务器之家站 获得例如“获取单条推广代码”之类的API所需的web ID。如需app调用,则需要在推广管理-》APP管理 添加一个APP,以获得app相关接口所需要的appId 。

备案通过后的网站,通过京东审核,一般需要3-5个工作日。

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

开发之前可以先用”API测试工具“测试一下。获取推广商品信息接口测试地址:https://jos.jd.com/api/showTools.htm?id=1413&groupId=117

下图是批量获取推广代码的接口测试结果:

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

推广类型有好多个,但是目前只支持”自定义推广“!物料ID的注释很多,但是就是不说明自定义推广类型的物料ID怎么填!实际上,物料ID要填商品的访问地址。

推广渠道为PC时,要写诸如http://item.jd.com/2346382.html的地址;推广渠道为WL时,要写诸如http://item.m.jd.com/product/2346382.html的地址。

php代码如下:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 class jd {      public static $appKey = '' ;      public static $appSecret = '' ;      public static $access_token = '' ;      const URL = 'https://api.jd.com/routerjson?' ;        /* 发送GET请求,跳过ssl证书检测 */      function curl_get( $url ){          $ch = curl_init();          curl_setopt( $ch , CURLOPT_SSL_VERIFYPEER, FALSE);    // https请求 不验证证书和hosts          curl_setopt( $ch , CURLOPT_SSL_VERIFYHOST, FALSE);          curl_setopt( $ch , CURLOPT_URL, $url );          curl_setopt( $ch , CURLOPT_RETURNTRANSFER, 1);    // 要求结果为字符串且输出到屏幕上          curl_setopt( $ch , CURLOPT_HEADER, 0); // 不要http header 加快效率          curl_setopt( $ch , CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)' );          curl_setopt( $ch , CURLOPT_TIMEOUT, 15);          $output = curl_exec( $ch );          curl_close( $ch );          return $output ;      }        //设置参数      function setParameter( $specialParameter ){          $time = date ( 'Y-m-d H:i:s' , time());            $publicParameter = array (              'access_token'         => static :: $access_token ,              'app_key'             => static :: $appKey ,              'v'                 => '2.0' ,              'timestamp'         => $time ,          );            $params = array_merge ( $publicParameter , $specialParameter );          $sign = self::getStringToSign( $params );            $parameter = array_merge ( $params , [ 'sign' => $sign ]);          ksort( $parameter );          $str = '' ;          foreach ( $parameter as $key => $value ){              $str .= urlencode( $key ) . '=' . urlencode( $value ) . '&' ;          }            return $str ;      }        //生成签名      function getStringToSign( $parameter ){            ksort( $parameter );          $str = '' ;          foreach ( $parameter as $key => $value ){              $str .= urlencode( $key ) . urlencode( $value );          }            $str = static :: $appSecret . $str . static :: $appSecret ;            $signature = strtoupper (md5( $str ));            return $signature ;      }        //获取推广商品信息      public function getGoodsInfo( $skuId ){               $specialParameter = [              'method'    => 'jingdong.service.promotion.goodsInfo' ,              '360buy_param_json' => json_encode([                  'skuIds'    => $skuId              ])          ];            $str = self::setParameter( $specialParameter );          $url = self::URL. $str ;            return json_decode(self::curl_get( $url ));      } }

返回的数据格式为:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 object(stdClass)#59 (1) { [ "jingdong_service_promotion_goodsInfo_responce" ]=> object(stdClass)#60 (2) {    [ "code" ]=>    string(1) "0"    [ "getpromotioninfo_result" ]=>    string(499) "{        "message" : "接口成功" ,        "result" :[{            "commisionRatioPc" :0.60,            "commisionRatioWl" :0.60,            "endDate" :4102416000000,            "goodsName" : "联想(ThinkPad )轻薄系列E450(20DCA082CD)14英寸笔记本电脑 (i5-5200U 4G 500G 2G独显 win10)" ,            "imgUrl" : "http://img14.360buyimg.com/n1/jfs/t3025/299/208536801/248419/ef1e3b38/579729e0N1e605005.jpg" ,            "materialUrl" : "http://item.jd.com/2346382.html" ,            "shopId" :1000000158,            "skuId" :2346382,            "startDate" :1475251200000,            "unitPrice" :3999.0,            "wlUnitPrice" :3999        }],        "sucessed" :true}"    } }

到此这篇关于PHP调用京东联盟API的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/ch_lu/article/details/53817097

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容