<?php namespace app\common; class Pdd{ public $client_id = ''; // 你的client_id public $client_secret = ''; // 你的client_secret public $url = 'http://gw-api.pinduoduo.com/api/router'; //授权地址 public function getAPIClient($redirectUrl,$state='') { $url="https://oauth.pinduoduo.com/authorize/ktt?client_id={$this->client_id}&redirect_uri={$redirectUrl}&state={$state}"; // https://oauth.pinduoduo.com/authorize/ktt?client_id={此处拼接应用信息对应的client_id}&redirect_uri={此处拼接您创建应用时设置的回调地址redirect_uri}&state={自定义值,传入与返回一致,用于自定义当前授权特征并进行维护} return $url; } /** * post请求 请求ACCESS_TOKEN * Enter description here ... * @param unknown_type $url * @param unknown_type $curlPost */ public function curl_post_json($url, $data) { foreach ($data as $k=>$v) { if(is_array($v)){ $data[$k] = json_encode($v); } } $json = json_encode($data); $ch = curl_init($url); curl_setopt($ch, CURLOPT_TIMEOUT, 60); //设置超时 curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $json); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_HTTPHEADER,array('Content-Type: application/json')); $rtn = curl_exec($ch); curl_close($ch); return json_decode($rtn,true); return $rtn; } public function GetPDDApi($apiType, $param) { $param['client_id'] = $this->client_id; $param['type'] = $apiType; $param['data_type'] = 'JSON'; $param['timestamp'] = self::getMillisecond(); $str = $this->signStr($param); $sign = strtoupper(md5($this->client_secret. $str . $this->client_secret)); // 生成签名 MD5加密转大写 $param['sign'] = $sign; return $data=self::curl_post_json($this->url, $param); } private function signStr($arr){ $str = ''; ksort($arr); // 排序 foreach($arr as $k=>$v){ if(is_array($v)){ $v = json_encode($v); } $str .= $k . $v; } return $str; } /** * 获取13位时间戳 * Enter description here ... */ private static function getMillisecond() { list($t1, $t2) = explode(' ', microtime()); return sprintf('%.0f', (floatval($t1) + floatval($t2)) * 1000); } /** * post请求 * Enter description here ... * @param unknown_type $url * @param unknown_type $curlPost */ private function curl_post($url, $curlPost) { $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_REFERER, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost); // curl_setopt($ch, CURLOPT_HTTPHEADER,array('Content-Type: application/json')); $result = curl_exec($ch); curl_close($ch); return json_decode($result,true); return $result; } }