天天看點

微信實作股票查詢功能

先說下我個人的情況,我是一個上班族,工作比較忙,沒有時間炒股,隻是會關注目前的市場行情,是以手機安裝那些行情軟體太占資源,關鍵是平時不常用。

之前關注了幾個股票行情查詢的公衆号,但是有些股票根本無法查詢,是以這個周末就宅在家裡自己申請一個公衆号,自己開發實作股票行情查詢功能了。

關于公衆号開發0基礎教程網上很多,我隻是簡單簡紹下股票行情的開發步驟

首先來了解一下微信開發的每個部分:

微信實作股票查詢功能

從上圖可以看出,需要申請一個微信公衆号,微信公衆号有訂閱号和服務号兩種類型,訂閱号主要用于自媒體方面,例如“美文欣賞”等公衆号,是為了每天能夠為使用者推送文章;而服務号主要用于像銀行等的服務,主要是使用者自己主動請求像個的查詢服務,每月最多支援4條資訊釋出,而訂閱号每天支援1條。

公衆号又有編輯模式和開發模式,編輯模式主要是在通過網頁登陸公衆号,然後自己設定一些固定的資訊,使用者自能查詢這些固定的資訊。而開發模式則要需要一個自己的網站,需要自己處理使用者的請求,然後回報給使用者,這種友善于動态為使用者提供相關的咨詢和服務。

本章的股票查詢開發就需要自己的一個網站,我是在sina上申請的一個免費的webapp,申請位址:http://sae.sina.com.cn,申請過程也不詳細介紹了。我申請的二級域名是:http://wishhappinesstoyou.sinaapp.com, 之後需要再微信公衆号“開發者中心”修改服務配置如下:

微信實作股票查詢功能

好了,現在将使用者的請求引導到我自己的網站:http://wishhappinesstoyou.sinaapp.com/來了,之後就需要開發自己的webapp了。

微信公衆号的webapp開發需要認證等資訊,這些都是固定模式,就不詳細介紹了,下面是關于股票的代碼部分:

1、判斷是股票查詢,并且以圖文方式傳回給使用者:

$imageTpl = "<xml>
						<ToUserName><![CDATA[%s]]></ToUserName>
						<FromUserName><![CDATA[%s]]></FromUserName>
						<CreateTime>%s</CreateTime>
						<MsgType><![CDATA[news]]></MsgType>
						<ArticleCount>1</ArticleCount>
						<Articles>
							<item>
							<Title><![CDATA[%s]]></Title> 
							<Description><![CDATA[%s]]></Description>
							<PicUrl><![CDATA[%s]]></PicUrl>
							<Url><![CDATA[%s]]></Url>
							</item>
						</Articles>
						</xml>";
			switch(trim($postObj->MsgType)){
				case 'text':
					if ( (strtolower(substr($keyword,0,3)) == 'gp:') )
					{
						$stockid=substr($keyword,3);
						$title = "股票資訊".$stockid;
						$des   = $this->get_stock_info($stockid);
						$picurl= "http://image.sinajs.cn/newchart/daily/n/".$stockid.".gif";
						$url   = $picurl;
						$resultStr = sprintf($imageTpl, $fromUsername, $toUsername, $time, $title, $des, $picurl, $url);
                        echo $resultStr;
					}
           

2、股票的查詢,以及行情資訊截取:

function get_stock_info($stockid)
	{  
		$url="http://hq.sinajs.cn/list=".$stockid;
		$datastr = $this->curl_file_get_contents($url);
		$dhead='var hq_str_'.$stockid.'=';
		
		$retstr = $datastr;
		if ( substr($datastr,0,strlen($dhead)) == $dhead )
		{
			$retstr = '';
			$spvar=explode(',', substr($datastr, strlen($dhead) + 1));
			if ( count($spvar) >= 31 ) {
				$retstr = '昨收:'.$spvar[2].' 今開:'.$spvar[1].' 目前價:'.$spvar[3].' 最高:'.$spvar[4].' 最低:'.$spvar[5].' 交易量:'.$spvar[8].' 交易額:'.$spvar[9].' 交易日:'.$spvar[30].' '.$spvar[31];
			}
			else {
				foreach ($spvar as $v)
				{
					$retstr = $retstr.$v.'#';
				}
			}
		}
		else 
		{
			$retstr = $substr($datastr,0,strlen($dhead)).'#'.$dhead;
		}
		return $retstr;  
	}
	
	function curl_file_get_contents($durl)
	{  
		$ch = curl_init();  
		curl_setopt($ch, CURLOPT_URL, $durl);  
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 擷取資料傳回    
		curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ; // 在啟用 CURLOPT_RETURNTRANSFER 時候将擷取資料傳回    
		$r = curl_exec($ch);  
		curl_close($ch);  
		return $r;  
	}
           

上面的代碼是滬深股票的查詢,現在加入香港股票查詢之後,将結果貼圖如下:

微信實作股票查詢功能
微信實作股票查詢功能

下面是我的公衆号,感興趣的朋友可以關注下,然後一起學習探讨:

公衆号:it-service365

二維碼:

微信實作股票查詢功能

繼續閱讀