PHP對京東聯盟CPS的API調用

在調用接口之前,先要取得授權,這個看看接口文檔就可以瞭。地址如下: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代碼如下:

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));
    }
}

返回的數據格式為:

  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的文章就介紹到這瞭。希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: