天天看点

微信实现股票查询功能

先说下我个人的情况,我是一个上班族,工作比较忙,没有时间炒股,只是会关注当前的市场行情,因此手机安装那些行情软件太占资源,关键是平时不常用。

之前关注了几个股票行情查询的公众号,但是有些股票根本无法查询,因此这个周末就宅在家里自己申请一个公众号,自己开发实现股票行情查询功能了。

关于公众号开发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

二维码:

微信实现股票查询功能

继续阅读