微信公众平台开发入门

微信公众平台貌似很火,连小美女作家蒋方舟都开这么长时间了,咱这个LAMPer也来玩玩。

ps:本文只是成为开发者后的一个入门,前提我们已经成为一个开发者了: 如图所示说明我们已经成为开发者了

然后您认证时填写的URL所对就的文件改成下面这样就行了(注意有中文注释的地方是改动的地方!):

<!-- lang: php -->
<?php
/**
  * wechat php test
  */

//define your token
define("TOKEN", "这里写我们自己的TOKEN");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();

class wechatCallbackapiTest
{
	public function valid()
    {
        $echoStr = $_GET["echostr"];

        //valid signature , option
        if($this->checkSignature()){
        	echo $echoStr;
        	$this->responseMsg();//验证后处理用户发关的消息-这里是原样返回用户的消息]
        	exit;
        }
    }

    public function responseMsg()
    {
		//get post data, May be due to the different environments
		$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

  	        //extract 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>";  //这里的<FuncFloag>0</FuncFlag>中的0要修改成1,这样用户微信中才会有显示新消息的标志           
	if(!empty( $keyword ))
                {
          		$msgType = "text";

		if( $keyword == "Hello2BizUser" ){//开发文档中有用户关注后服务器自动发送过来的字符串为"Hello2BizUser"
		    $contentStr = "欢迎关注哟,人家会争取每天都更新哒了!";//借用小美女作家的欢迎辞!
		}else{
		    $contentStr = $keyword.'么么哒';//用户输入什么都回复他什么,加上后缀么么哒。
		}
            	$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
            	echo $resultStr;
            }else{
            	echo "Input something...";
            }

    }else {
    	echo "";
    	exit;
    }
}
	
private function checkSignature()
{
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];	
    		
	$token = TOKEN;
	$tmpArr = array($token, $timestamp, $nonce);
	sort($tmpArr);
	$tmpStr = implode( $tmpArr );
	$tmpStr = sha1( $tmpStr );
	
	if( $tmpStr == $signature ){
		return true;
	}else{
		return false;
	}
}
}

?>

所以我们想自定义功能的话,只需要在responseMsg()中加入一些判断,根据不同关键词,返回给用户特定的文字或者图文结合的内容。突然想到几点,1,用户输入 “天津公交638”,然后在这个responseMsg()里面就从风上抓取一些详细的公交数椐给用户发过去。2,用户输入“古诗静夜思”,公众账号就把这首诗给发过去。3,用户输入一支股票这个股票的数椐就给发过去。4,宅男输入"蒋方舟”,就从网上找点好的好照片或作品发过去。也很好玩,哈。

测试通过-》输入“你好”回复“你好么么哒”,输入"Hello2BizUser",就会把第一次关注时的信息发给你的。

转载于:https://my.oschina.net/u/137226/blog/124005

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值