微信公众平台开发实例(琴岛学院校园之声) PHP开发 代码挂载SAE
Jun 06, 2016 pm 07:41 PM欢迎关注我的微信 公众 账号“ APP每日推荐 ” 推荐一些精彩手机应用,互联网行业资讯~ !--题外话 :做这样一个系列的原因在于,这个微信 公众 平台 算的上是我解除编程一来 开发 的第一个有实际用途的东西,在这之中有很多体会,不敢说讲给大家听,只是同大
欢迎关注我的微信公众账号“APP每日推荐”
推荐一些精彩手机应用,互联网行业资讯~
最终制作效果请见:http://blog.csdn.net/c123853648/article/details/11095043
之前我们做了一系列的准备工作,这期开始我们正式进入编码工作。
首先我们需要在代码中修改一个地方,上次在验证的时候我们添加了这样一行代码
$wechatObj = new wechatCallbackapiTest(); $wechatObj->valid();
现在验证已经完成我们需要这样修改一下,修改为
$wechatObj = new wechatCallbackapiTest(); //$wechatObj->valid(); $wechatObj->responseMsg();
下面是官方提供的demo
<?php /** * wechat php test */ //define your token define("TOKEN", "test_02"); $wechatObj = new wechatCallbackapiTest(); $wechatObj->valid(); class wechatCallbackapiTest { public function valid() { $echoStr = $_GET["echostr"]; //valid signature , option if($this->checkSignature()){ echo $echoStr; 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></tousername> <fromusername></fromusername> <createtime>%s</createtime> <msgtype></msgtype> <content></content> <funcflag>0</funcflag> </xml>"; if(!empty( $keyword )) { $msgType = "text"; $contentStr = "Welcome to wechat world!"; $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()这个方法开始说吧。
$postStr变量接受用户提交的信息(xml格式),之后通过调用simplexml_load_string() 函数把 XML 字符串载入对象中。
在得到了$postObj这个变量后,通过
<span>这种方式获取到用户传来的各种数据,并存储在相应的变量中相应的信息格式参照消息接口指南: <p>http://mp.weixin.qq.com/wiki/index.php?title=%E6%B6%88%E6%81%AF%E6%8E%A5%E5%8F%A3%E6%8C%87%E5%8D%97</p> <p>$textTpl这个变量用于存储各种回复信息类型的结构,可以在消息接口指南中查到,这里可以根据自己的需求添加不同的信息类型结构的变量</p> <p>$contentStr这个变量对应着回复文本信息的文本内容</p> <p>sprintf函数的作用可以说是将需要回复的信息,添加到$textTpl定义的“结构”中,springf函数使用方法如下:</p> <pre class="brush:php;toolbar:false">$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);

在后面的开发过程中,基本上是根据【获取用户发送的内容】->【对内容的处理】->【通过编写相关方法,将内容在数据库中做相关操作】->【返回数据库操作的结果】->【填充$textTpl“结构”中的变量】->【输出结果】

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법

Gateio 중국 공식 웹 사이트 Gate.io 거래 플랫폼 웹 사이트
