PHP版本的大智慧股票API接口demo

一、         大智慧官網地址:http://yun.gw.com.cn/index.htmlphp

二、         大智慧API文檔中心:http://yun.gw.com.cn/DocCenter/(技術接入文檔)html

去加了他們的QQ羣,而後找人申請了一個月的接口試用期..接口申請下來後發現他們官方的github上面的demo只有java的,還有兩個是Android和桌面應用的..我要對接到網站上面,因此只有本身來寫一個..java

目前用的是TP5框架,,因此有些寫法須要本身去修改,代碼只提供大致的流程git

<?php
/**
 * Created by PhpStorm.
 * User: Martinby
 * Date: 2017/10/19
 * Time: 14:42
 */
namespace app\index\controller;
use Pingpp\Token;
use think\Cache;

class Dzh extends Base{
    //接口網站
    private $host="https://gw.yundzh.com";
    //申請的appid之類的東東
    private $appid="****************";
    private $secret_key="******";
    private $short_appid="*****"; 



    public function get_info(){
        $path="/f10/gsgk";
        //獲取token,若是沒有未獲取到token的緩存,那麼請求token,並將其加入到緩存中去,,若是有token緩存,直接獲取緩存中的token
        $token=array();
        if(Cache::get("token_cache")==false){
            $token=$this->get_token();
            Cache::set("token_cache",$token,$token['duration']);
        }else{
            $token=Cache::get("token_cache");
        }

        if($token!==false){
            $params=[
                "qid"=>'123456',  // qid 惟一指定經過該鏈接通道已被髮送的請求標識(貌似能夠隨便亂寫個數字?)
                "obj"=>"SO831621",//股票代碼

                //"token"=>$token['token'],//token
            ];
            $params_string=http_build_query($params);


            $real_url=$this->host.$path."?".$params_string."&token=".$token['token'];
            $result=$this->dzh_curl($real_url);
            var_dump($real_url);echo "<br/>";echo("<br/>");
            var_dump($result);

        }


    }
    //獲取熱乎乎的token值
    public function get_token(){
        $path="/token/access";
        $params=[
            "appid"=>$this->appid,
            "secret_key"=>$this->secret_key,
        ];
        $params_string=http_build_query($params);
        $real_url=$this->host.$path.'?'.$params_string;
        $res=$this->dzh_curl($real_url);
        //若是err爲0,即無錯狀況
        if($res->Err=='0'){

            //數據data(stdClass)
            $data=$res->Data;
            //獲取token數據(stdClass )
            $RepDataToken=$data->RepDataToken;
            //獲取result返回值 0 受權成功,-1 受權失敗,-2 appid不存在,-3 appid受權數已滿
            $result=$RepDataToken[0]->result;
            //轉換object爲數組
            $token_arr=$this->object_array($RepDataToken[0]);

            //若是result不爲0,即受權失敗
            if($result!==0){
                return false;
            }else{
                //var_dump($token_arr);
                return $token_arr;
            }
        }else{

        }


    }


    //執行get請求
    public function dzh_curl($url){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        //curl_setopt($ch, CURL_SSLVERSION_SSL, 2);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        $data = curl_exec($ch);
        if($data===false){
            return false;
        }else{
            $response = json_decode($data);
            return $response;
        }

    }



    //轉換(stdclass)object對象爲(array)數組
    function object_array($object) {
        $object =  json_decode( json_encode( $object),true);
        return  $object;
    }


}
相關文章
相關標籤/搜索