拼多多API官网没有PHP版的SDK,自己稍微封装了一下
公共参数:
<?php
//官方说明:https://open.pinduoduo.com/#/document
class TopClient{
public $client_id; //API client_id
public $client_secret; //API client_secret
public $access_token;
public $data_type="JSON"; //返回格式JSON 或者 XML
public $url="https://gw-api.pinduoduo.com/api/router"; //API POST URL
public function execute($req){
$param=$req->apiParas;
$param["client_id"]=$this->client_id;
$param["data_type"]=$this->data_type;
$param["timestamp"]=time();
if(isset($this->access_token)) $param["access_token"]=$this->access_token;
ksort($param);
$str = '';
foreach ($param as $k => $v) $str .= $k . $v;
$sign = strtoupper(md5($this->client_secret. $str . $this->client_secret));
$param["sign"] = $sign;
$url=$this->url;
return $this->curl_post($url, $param);
}
function curl_post($url, $postdata){
$curl = curl_init();
//设置抓取的url
curl_setopt($curl, CURLOPT_URL, $url);
//设置头文件的信息作为数据流输出
curl_setopt($curl, CURLOPT_HEADER, false);
//设置获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//设置超时
curl_setopt($curl, CURLOPT_TIMEOUT, 60);
//设置不判断https证书
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
//设置post方式提交
curl_setopt($curl, CURLOPT_POST, 1);
//设置post数据
curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);
//执行命令
$data = curl_exec($curl);
//关闭URL请求
curl_close($curl);
//显示获得的数据
return $data;
}
}
API接口封装:
<?php
class PddGoodsOptGet{
public $type="pdd.goods.opt.get"; //API接口名称
public $parent_opt_id; //必填,值=0时为顶点opt_id,通过树顶级节点获取opt树;
public $apiParas=array();
public function __construct($type=""){
$this->apiParas["type"]=$this->type;
}
public function SetParentOptId($parent_opt_id){
$this->parent_opt_id=$parent_opt_id;
$this->apiParas["parent_opt_id"]=$parent_opt_id;
}
}
调用示例:
<?php
$c = new TopClient;
$c->client_id="";
$c->client_secret="";
$req= new PddGoodsOptGet;
$req->SetParentOptId("0");
print_r($c->execute($req));