先說下我個人的情況,我是一個上班族,工作比較忙,沒有時間炒股,隻是會關注目前的市場行情,是以手機安裝那些行情軟體太占資源,關鍵是平時不常用。
之前關注了幾個股票行情查詢的公衆号,但是有些股票根本無法查詢,是以這個周末就宅在家裡自己申請一個公衆号,自己開發實作股票行情查詢功能了。
關于公衆号開發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
二維碼: