PHP對(duì)京東聯(lián)盟CPS的API調(diào)用
在調(diào)用接口之前,先要取得授權(quán),這個(gè)看看接口文檔就可以了。地址如下:https://jos.jd.com/doc/channel.htm?id=152
在京東云控制臺(tái):https://console.jdcloud.com/
“新建應(yīng)用”獲得 調(diào)用接口的通用參數(shù)(App key/client_id、App secret/client_secret、access_token)。
授權(quán)有效期說(shuō)明:如果應(yīng)用appkey狀態(tài)為“在線測(cè)試”,授權(quán)token有效期只有24小時(shí)
,“上線運(yùn)行”狀態(tài)的應(yīng)用授權(quán)token有效期為一年
。另如果是通用應(yīng)用,需要先發(fā)布到服務(wù)市場(chǎng),審核通過(guò)后方可授權(quán)獲取token。
注意:如授權(quán)商家修改主賬號(hào)密碼則授權(quán)碼(Access token)隨之失效,需重新授權(quán)。
另需在京東聯(lián)盟:
推廣管理-》網(wǎng)站管理,添加新網(wǎng)站 獲得例如“獲取單條推廣代碼”之類的API所需的web ID。如需app調(diào)用,則需要在推廣管理-》APP管理 添加一個(gè)APP,以獲得app相關(guān)接口所需要的appId 。
備案通過(guò)后的網(wǎng)站,通過(guò)京東審核,一般需要3-5個(gè)工作日。
準(zhǔn)備好以上應(yīng)用級(jí)參數(shù)后,便可以調(diào)用京東聯(lián)盟API了,接口文檔地址:https://jos.jd.com/api/list.htm?id=117
開發(fā)之前可以先用”API測(cè)試工具“測(cè)試一下。獲取推廣商品信息接口測(cè)試地址:https://jos.jd.com/api/showTools.htm?id=1413&groupId=117
下圖是批量獲取推廣代碼的接口測(cè)試結(jié)果:
比較坑爹的是 獲取單條推廣代碼 的接口
推廣類型有好多個(gè),但是目前只支持”自定義推廣“!物料ID的注釋很多,但是就是不說(shuō)明自定義推廣類型的物料ID怎么填!實(shí)際上,物料ID要填商品的訪問地址。
推廣渠道為PC時(shí),要寫諸如http://item.jd.com/2346382.html的地址;推廣渠道為WL時(shí),要寫諸如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?'; /* 發(fā)送GET請(qǐng)求,跳過(guò)ssl證書檢測(cè) */ function curl_get($url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // https請(qǐng)求 不驗(yàn)證證書和hosts curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 要求結(jié)果為字符串且輸出到屏幕上 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; } //設(shè)置參數(shù) 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)); } }
返回的數(shù)據(jù)格式為:
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":"聯(lián)想(ThinkPad )輕薄系列E450(20DCA082CD)14英寸筆記本電腦 (i5-5200U 4G 500G 2G獨(dú)顯 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}" } }
到此這篇關(guān)于PHP調(diào)用京東聯(lián)盟API的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
php運(yùn)行時(shí)動(dòng)態(tài)創(chuàng)建函數(shù)的方法
這篇文章主要介紹了php運(yùn)行時(shí)動(dòng)態(tài)創(chuàng)建函數(shù)的方法,涉及php流程語(yǔ)句與create_function函數(shù)的使用技巧,需要的朋友可以參考下2015-03-03PHP實(shí)現(xiàn)的AES加密、解密封裝類與用法示例
這篇文章主要介紹了PHP實(shí)現(xiàn)的AES加密、解密封裝類與用法,結(jié)合實(shí)例形式分析了php封裝的aes加密解密操作類及相關(guān)使用技巧,需要的朋友可以參考下2018-08-08php下一個(gè)阿拉伯?dāng)?shù)字轉(zhuǎn)中文數(shù)字的函數(shù)
php下一個(gè)阿拉伯?dāng)?shù)字轉(zhuǎn)中文數(shù)字的函數(shù)...2007-07-07PHP substr 截取字符串出現(xiàn)亂碼問題解決方法[utf8與gb2312]
在PHP中,使substr函數(shù)截取字符串末位會(huì)出現(xiàn)亂碼,因?yàn)橹形腢TF-8編碼,每個(gè)漢字占3字節(jié),而GB2312占2字節(jié),英文占1字節(jié),截取位不準(zhǔn)確,造成斷開的字符會(huì)把其后的..拉過(guò)來(lái)一起做一個(gè)字,所以出現(xiàn)了亂碼。2011-12-12php獲取ajax的headers方法與內(nèi)容實(shí)例
下面小編就為大家分享一篇php獲取ajax的headers方法與內(nèi)容實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12php將遠(yuǎn)程圖片保存到本地服務(wù)器的實(shí)現(xiàn)代碼
有些時(shí)候我們想保存一些漂亮圖片,但又不想手動(dòng)去保存下來(lái),尤其是大批量的存儲(chǔ),這個(gè)時(shí)候我們需要寫一段程序來(lái)幫助我們完成這個(gè)工作,本文介紹了php如何將遠(yuǎn)程圖片本地化,需要的朋友可以參考下2015-08-08