123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- <?php
- namespace app\api\controller;
- class Kuaishou extends Base
- {
- public $appKey = 'ks698620896473026758';
- public $appSecret = 'cvbOgiVC6rSvPs0sBASfkg';
- public $signSecret = '71443462ca217e1c29425e7aabc257cc';
- public $msgSecret = '4fxDQv7tJKzIc1D7CNNe6A==';
- public $syncAPIClient;
- public $serverHost = "https://open.kwaixiaodian.com/";
- public $webSite = '1688';
- public $access_token = '';
- public $debug = false;
- //
- public function getAccessToken()
- {
- //$url = $this->serverHost . "oauth2/access_token?app_id={$this->appKey}&app_secret={$this->appSecret}&code={$code}&grant_type=authorization_code";
- $url = $this->serverHost . "oauth2/access_token?app_id={$this->appKey}&app_secret={$this->appSecret}&grant_type=client_credentials";
- $Alibabahelper = new Alibabahelper();
- $s = $Alibabahelper->curl_https_get($url);
- $s = json_decode($s, true);
- return $s['access_token'];
- }
- // api请求
- public function apiSend()
- {
- $apiType = "open.order.detail";
- $method = 'get';
- $param = ['oid'=>'2315900153213958'];
- $arr['appkey'] = $this->appKey;
- $arr['version'] = '1';
- $arr['access_token'] = $this->getAccessToken();
- $arr['timestamp'] = $this->getMillisecond();
- $arr['method'] = trim($apiType);
- $arr['param'] = $param ? json_encode($param) : '{}';
- $arr['signMethod'] = 'MD5';
- ksort($arr); // 排序
- $arr['sign'] = $this->getSign($arr, $this->signSecret);
- $apiInfo = str_replace('.', '/', $arr['method']);
- $url = $this->serverHost . $apiInfo;
- $Alibabahelper = new Alibabahelper();
- var_dump($arr);
- if ($method == 'get') {
- $s = $Alibabahelper->curl_https_get($url. '?' . http_build_query($arr, '', '&'), array());
- } else {
- $s = $Alibabahelper->curl_https_post($url, $arr);
- }
- $s = json_decode($s, true);
- $this->success('ok',$s);
- }
- public function getSign($params, $key) {
- $unSignParaString = $this->formatQueryParaMap($params, false);
- $signStr = (md5($unSignParaString . "&signSecret=" . $this->signSecret));
- return $signStr;
- }
- public function formatQueryParaMap(array $paraMap, $urlEncode = false) {
- $buff = "";
- ksort($paraMap);
- foreach ($paraMap as $k => $v) {
- if (null != $v && "null" != $v) {
- if ($urlEncode) {
- $v = urlencode($v);
- }
- $buff.= $k . "=" . $v . "&";
- }
- }
- $reqPar = '';
- if (strlen($buff) > 0) {
- $reqPar = substr($buff, 0, strlen($buff) - 1);
- }
- return $reqPar;
- }
- /*获取13位时间戳*/
- private static function getMillisecond() {
- list($t1, $t2) = explode(' ', microtime());
- return sprintf('%.0f', (floatval($t1) + floatval($t2)) * 1000);
- }
- }
- class Alibabahelper {
- function __construct() {
- }
- private function curl_get_contents($url, $data = array(), $https = false) {
- $results['error'] = '';
- $results['status'] = 0;
- $results['data'] = array();
- $user_agent = $_SERVER['HTTP_USER_AGENT'];
- $curl = curl_init(); // 启动一个CURL会话
- if (!empty($data) && is_array($data)) {
- curl_setopt($curl, CURLOPT_POST, TRUE);
- curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
- curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
- }
- if ($https) {
- curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
- curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); // 从证书中检查SSL加密算法是否存在
- curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
- }
- curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
- curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
- curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
- curl_setopt($curl, CURLOPT_USERAGENT, $user_agent); // 模拟用户使用的浏览器
- curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
- $results['data'] = curl_exec($curl); // 执行操作
- if (curl_errno($curl)) {
- $results['error'] = curl_error($curl); //捕抓异常
- }
- curl_close($curl); // 关闭CURL会话
- return $results['data']; // 返回数据
- }
- public function curl_https_post($url, $data) {
- return $this->curl_get_contents($url, $data, true);
- }
- public function curl_https_get($url) {
- return $this->curl_get_contents($url, array(), true);
- }
- }
|