本文实例讲述了php版微信自定义回复功能。分享给大家供大家参考,具体如下:
配置好服务器之后,就可以用php实现自动回复了。
index.php中的代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
<?php
define( "token" , "weixin" );
$wechatobj = new wechatcallbackapitest();
if (isset( $_get [ 'echostr' ])) {
$wechatobj ->valid();
} else {
$wechatobj ->responsemsg();
}
class wechatcallbackapitest
{
public function valid()
{
$echostr = $_get [ "echostr" ];
if ( $this ->checksignature()){
header( 'content-type:text' );
echo $echostr ;
exit ;
}
}
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 ( $keyword == "?" || $keyword == "?" ) //获取用户信息
{
$msgtype = "text" ;
$contentstr = date ( "y-m-d h:i:s" ,time()); // 回复的内容
$resultstr = sprintf( $texttpl , $fromusername , $tousername , $time , $msgtype , $contentstr );
echo $resultstr ;
}
} else {
echo "" ;
exit ;
}
}
}
?>
|
效果:
当用户输入?或者?就会获取当前时间
希望本文所述对大家php程序设计有所帮助。