生活随笔
收集整理的這篇文章主要介紹了
静态代理和依赖注入方式获取网店管家查询仓库信息接口
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
請求的URL地址http://localhost/tp5.1/public/index.php/index/wdgj/wdgjwarehouselistGet?page=1&pageSize=10
進行字典序排序 或者 ASCII碼排序將AppSecret加到該串的首和尾并進行MD5加密生成32位字符串生成Sign簽名將所有的系統級參數與應用級參數 ( 指的是必填類參數 ) 發送post 請求獲取網店管家數據
<?php
namespace app\index\controller
;
use app\facade\HttpRequest
;
use \think\Request
;
class Wdgj
{public $Appkey
= "71005530";public $AppSecret
= "n800m9iaei27l1n3b5eh7ko87gfl2k0g";public $AccessToken
= "191167eb31f242bfa4a089359b77f5e4";public $Method
= "wdgj.warehouse.list.get";public $Format
="json";public $Versions
= "1.0";
public $Apiurl
= "http://api.wdgj.com/wdgjcloud/api";public $Heades
= array('application/x-www-form-urlencoded;charset=UTF8');public function wdgjwarehouselistGet(Request $request
){$paramArr
= array();$paramArr
['Appkey'] = $
this->Appkey
;$paramArr
['Accesstoken'] = $
this->AccessToken
;$paramArr
['Method'] = $
this->Method
;$paramArr
['Format'] = $
this->Format
;$paramArr
['Versions'] = $
this->Versions
;$paramArr
['Timestamp'] = (string
)time();$paramArr
['pageno'] = $request
->get('page');$paramArr
['pagesize'] = $request
->get('pageSize');$paramArrDemo
= $paramArr
;if($paramArr
['Versions']=='1.1'){
sort($paramArrDemo
,SORT_LOCALE_STRING);}else{sort($paramArrDemo
,SORT_LOCALE_STRING);}$paramString
= join($paramArrDemo
);$sign
= MD5($
this->AppSecret
.$paramString
.$
this->AppSecret
);$paramArr
['Sign'] = $sign
;\think\Facade
::bind('app\facade\HttpRequest','\app\common\HttpRequest');$res
= HttpRequest
::httprequest($
this->Apiurl
, $paramArr
, $
this->Heades
);dump($res
);}}
/**
* 如果想靜態調用一個動態方法,需要給當前的類綁定一個靜態代理的類
*如果沒有在靜態代理類中顯示指定要綁定的類名,就需要動態顯示綁定一下
* \think\Facade::bind()
*/
<?php
namespace app\facade
;class HttpRequest extends \think\Facade
{}
如果想靜態調用一個動態方法,需要給當前的類綁定一個靜態代理的類
<?php
namespace app\common
;class HttpRequest
{public function httpRequest($url
, $postData
, $head
){$curl
= curl_init();curl_setopt($curl
, CURLOPT_URL, $url
);curl_setopt($curl
, CURLOPT_HEADER, 0);curl_setopt($curl
, CURLOPT_HTTPHEADER, $head
);curl_setopt($curl
, CURLINFO_HEADER_OUT, true);if (0 === strpos(strtolower($url
), 'https')) {curl_setopt($curl
, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl
, CURLOPT_SSL_VERIFYHOST, false); }if (!empty($postData
)) {curl_setopt($curl
, CURLOPT_POST, true); curl_setopt($curl
, CURLOPT_POSTFIELDS, http_build_query($postData
)); }curl_setopt($curl
, CURLOPT_RETURNTRANSFER, 1);$json
= curl_exec($curl
);$error
= curl_error($curl
);curl_close($curl
);if ($json
=== false) {return ['success' => false, 'desc' => 'curl錯誤,錯誤編碼:' . $error
];}if (preg_match('/^\xEF\xBB\xBF/', $json
)) {$output
= substr($json
, 3);} else {$output
= $json
;}$obj
= json_decode(trim($output
), true);return ['code'=>1,'msg'=>'抓取成功','data'=>$obj
];}
}
查詢返回結果
網店管家應用驗證數據來源真實性
接口對應管家:【管家】->【設置】->【倉庫目錄】,接口查詢出的數據即為該界面的倉庫信息。
參看網店管家接口調用說明文檔
http://open.wdgj.com/OpenApiDoc/DocCenter.html
http://open.wdgj.com/OpenApiDoc/ApiInfo.html?openApiID=70000&dictID=87&name%20=
總結
以上是生活随笔為你收集整理的静态代理和依赖注入方式获取网店管家查询仓库信息接口的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。