腾讯微信开发初级教程

稿件来源: 阳光企业网站管理系统   撰稿作者: 太阳光   发表日期: 2014-04-11   阅读次数: 394   查看权限: 游客查看

最近Q群人数爆增,而且大部分咨询的也是初级问题,在此简单介绍一下,让新手有个初步认识。

5.0版微信公众平台订阅号和服务号有什么区别?

微信公众平台服务号:顾名思义,主要是给客户提供服务的。一般银行和企业做客户服务用的比较多。主要功能和权限如下:

1、1个月(30天)内仅可以发送4条群发消息(2014-04-15之前是1条)
2、发给订阅用户(粉丝)的消息,会显示在对方的聊天列表中。
3、在发送消息给用户时,用户将收到即时的消息提醒。
4、服务号会在订阅用户(粉丝)的通讯录中。
5、可申请自定义菜单。

微信公众平台订阅号:主要是提供信息和资讯。一般媒体用的比较多。5.0版本的微信公众平台订阅号主要功能和权限:

1、微信公众平台订阅号每天都可以群发一条群发信息。群发的信息直接出现在订阅号文件夹中。
2、订阅号群发信息时候,手机微信用户将不会收到像短信那样的消息提醒。
3、在手机微信用户的通讯录中,订阅号将被放入订阅号文件夹中。同时订阅号发布的消息也会折叠在订阅号文件夹中。
4、订阅号不支持申请自定义菜单。订阅号要获得自定义菜单,需要提交300元,申请腾讯的微信认证。

根据以上特点可以看出主要区别:

一、服务号不用认证可免费申请自定义菜单,而订阅号需要认证才有自定义菜单。服务号认证后拥有高级接口权限,订阅号至多是自定义菜单。(基本接口--》自定义菜单--》高级接口)服务号只能通过微信认证,订阅号可关联微博认证(需要500个粉丝以上)或申请微信认证,都需要300元/年。
二、服务号每月只能群发一条信息,订阅号可以每天群发一条消息。
三、服务号群发的消息有消息提醒,订阅号群发的消息没有,并直接放入订阅号文件夹当中。这也说明了第二个不同点的原因,服务号推送的消息比较烦人所以不能多发!
四、服务号可以申请微信支付,而订阅号不能。

拥有了公众号高级功能里有两种模式:编辑模式、开发模式。首先这两种模式是只能开通其一,而且可以随时互换。

特别说明的是:编辑模式下的素材或自动回复设置不会因开发模式启用而丢失。但是菜单要注意,如果你编辑模式下的菜单没有停用就使用开发模式来修改了自定义菜单,编辑模式下的菜单将会消失!

编辑模式:主要针对普通用户使用,主要功能有消息回复、关键词回复、自定义菜单。
开发模式:当然针对的就是程序猿开放,功能也比较多。分基础接口与高级接口。

基础接口:
1、接收用户消息
2、向用户回复消息
3、接受事件推送
4、会话界面自定义菜单

高级接口

1、语音识别: 通过语音识别接口,用户发送的语音,将会同时给出语音识别出的文本内容。
2、客服接口: 通过客服接口,公众号可以在用户发送过消息的24小时内,向用户回复消息。
3、OAuth2.0网页授权: 通过网页授权接口,公众号可以请求用户授权。
4、生成带参数二维码: 通过该接口,公众号可以获得一系列携带不同参数的二维码,在用户扫描关注公众号后,公众号可以根据参数分析各二维码的效果。
5、获取用户地理位置: 通过该接口,公众号能够获得用户进入公众号会话时的地理位置(需要用户同意)。
6、获取用户基本信息: 通过该接口,公众号可以根据加密后的用户OpenID,获取用户的基础信息,包括头像、昵称、性别、地区。
7、获取关注者列表: 通过该接口,公众号可以获取所有关注者的OpenID。
8、用户分组接口: 通过分组接口,公众号可以在后台为用户移动分组,或创建、修改分组。
9、上传下载多媒体文件: 通过该接口,公众号可以在需要时在微信服务器上传下载多媒体文件。

注意高级接口还需要另申请哦,详情微信平台“服务中心”说明。

下面开始讲解一下初级微信开发模式入门,首先条件是你必须得一门服务器语言,当然是PHP最好。同时得有一个网站,不是本地IIS或者Apache搭建的环境哦,必须是远程服务器或者虚拟主机,端口必须是80。同时有反映非大陆服务器有不稳定情况(Q群传说)。申请前必须同意协议,然后提示要输入url和token这是大家问得最多的问题

如图片url与token指的是服务器配置,简单讲URL就是你的php文件访问地址。必须以http开头,不能带端口号(只支持80端口),可以是只写域名(如果你整个网站都用于微信开发),我是不想浪费就指定php文件(如果实在没空间就去申请一此免费空间或百度云应用之类的)。Token是你自己设置的密码,用于你的网站与微信网站之间互相验证的签名(或者说密码,暗号。要求是3-32个字符由数字或字母组成)。提交后微信会发送验证信息到你的URL里,验证通过才能使用。php验证示例代码:

	//验证信息检验signature	
	private function checkSignature()
	{
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];	        		
		$token = TOKEN;
		$tmpArr = array($token, $timestamp, $nonce);
		sort($tmpArr, SORT_STRING);
		$tmpStr = implode( $tmpArr );
		$tmpStr = sha1( $tmpStr );		
		if( $tmpStr == $signature ){
			return true;
		}else{
			return false;
		}
	}

接下来我们看看http://web.scscms.com/zb.php完整代码:

<?php
//填写你提交的token
define("TOKEN", "zbwe12");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();
class wechatCallbackapiTest
{
	public function valid()
    {
		//当你填写url和token之后微信就会发送四个参数到这个文件来作验证,验证通过后原样返回echostr参数内容,才能成功成为开发者!
		if (isset($_GET['echostr'])) {
			if($this->checkSignature()){
				echo $_GET["echostr"];
				exit;
			}
		}else{
			//如果不是验证,那就是有信息来啦,开始调用自动回复函数,腾讯提供的文档没有调用呀,坑爹!
			$this-> responseMsg();
		}
    }
	//验证函数,腾讯提供:)
	private function checkSignature()
	{
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];
		$token = TOKEN;
		$tmpArr = array($token, $timestamp, $nonce);
		sort($tmpArr, SORT_STRING);
		$tmpStr = implode( $tmpArr );
		$tmpStr = sha1( $tmpStr );
		if( $tmpStr == $signature ){
			return true;
		}else{
			return false;
		}
	}
    public function responseMsg()
    {
		//服务器发来的数据
		$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
		if (!empty($postStr)){
              	$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
                $fromUsername = $postObj->FromUserName;
                $toUsername = $postObj->ToUserName;
                $keyword = trim($postObj->Content);
                $time = time();
                $textTpl = "<xml>
							<ToUserName><![CDATA[%s]]></ToUserName>
							<FromUserName><![CDATA[%s]]></FromUserName>
							<CreateTime>%s</CreateTime>
							<MsgType><![CDATA[%s]]></MsgType>
							<Content><![CDATA[%s]]></Content>
							<FuncFlag>0</FuncFlag>
							</xml>";             
				if(!empty( $keyword )){
              		$msgType = 'text';
					if( $keyword == 'A')
                		$contentStr = '真乖乖让您输入"A"就输入"A"!';
					else if( $keyword == '签到' )
						$contentStr = '签到成功!到隔壁银行领钱去!';
					else
						$contentStr = '"A" 或 "签到" 试试!';
					//转成xml发回给微信显示
					$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                	echo $resultStr;
                }else{
                	echo '欢迎光临我们的微信!回复:"A" 或 "签到" 试试!';
                }
        }else{
        	echo '';
        	exit;
        }
    }
}
?>

运行效果:

推荐文章:微信自定义菜单php参考脚本

关键词: 腾讯微信,微信开发   编辑时间: 2014-04-25 17:39:13

  • 感到高兴

    0

    高兴
  • 感到支持

    0

    支持
  • 感到搞笑

    0

    搞笑
  • 感到不解

    0

    不解
  • 感到谎言

    0

    谎言
  • 感到枪稿

    0

    枪稿
  • 感到震惊

    0

    震惊
  • 感到无奈

    0

    无奈
  • 感到无聊

    0

    无聊
  • 感到反对

    0

    反对
  • 感到愤怒

    0

    愤怒
0%(0)
0%(0)
共有0 条评论 发言请遵守【相关规定

网友评论

会员头像
发 表同步腾讯微博    验证码:  点击更新请先登陆
  • 暂无评论
关闭模块文章图片 article Pictrue
  • 我的妈妈爸爸
  • 基于koa2+mysql+vue2.0+Element阳光内容管理系统
  • 代码覆盖率工具 Istanbul 入门教程
  • 全栈工程师的武器——MEAN
  • 9款超炫的 CSS3 复选框(Checkbox)
  • 微信开发在线翻译功能
  • CSS3那些不为人知的高级属性
  • 给easyui的datebox添加清空事件
  • flash写字效果
  • kendoUI系列教程之DropDownList下拉菜单
  • kendoUI系列教程之datetimepicker日期时间选择
  • kendoUI系列教程之datepicker日期选择
  • kendoUI系列教程之combobox下拉列表框
  • kendoUI系列教程之colorpicker
  • kendoUI系列教程之calendar日历表
  • kendoUI系列教程之autocomplete自动补齐