您的位置:首页 > 移动开发 > 微信开发

如何使用腾讯微信公众平台示例代码…

2016-02-24 11:38 417 查看


下面教大家,如何使用腾讯微信公众平台示例代码。

微信平台已经全面改版,新版的帮助直接看帮助即可:http://mp.weixin.qq.com/wiki/index.php?title=消息接口指南
以下是旧版设置(新版本设置更简单,只有2个选项):

1.[/b]设置好自己的微信公众平台消息接口,这个大家参照网站提示设置即可
注意先要上传API示范文件(注意验证签名的时候文件格式用ANSI不要修改,签名通过了建议修改为UTF-8格式,记事本打开另存的时候可以选择文件存储编码格式,不是网页格式哦),修改token为自己的token,即api的TOKEN和自己平台的是一致的,然后点击提交,如果正确会,显示"提交成功”
注意事项:为什么自己创建的index.php代码和示例代码相同,但是验证签名不能通过呢?应为很多软件创建的文件都包含BOM,PHP不支持,所以要报BOM去掉(示例代码已经去BOM了),可以使用UE,或者Linux
VI set nobomb命令。

注意URL网址对应的必须是接口处理文件比如:http://www.abc.com/weichat/
默认页面是index.php,那么可以把帮助中的示例代码下载下来
wx_sample.php修改为index.php然后上传到网站weichat目录下。




2.显示消息:当用户发送消息到,接口,接口做出响应,然后返回消息。在用户微信客户端显示。

3.必须对SDK代码做一点点修改,原来SDK代码只调用了签名,根本没有调用responseMsg()方法。只需要在代码开始添加调用代码即可,开头部分代码如下:

//define your token
define("TOKEN", "weixin");  //TOKEN和你在公众接口里设置的一样比如weixin,
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid(); //接口设置成功后把 //$wechatObj->valid();注释掉(12月31日修订)

$wechatObj->responseMsg();   //就是添加这段调用代码

一切就绪后随便向平台发送个消息,然后就会显示了,注意平台发送内容编码格式是“UTF-8”

3.深入开发。所有数据处理都可以在responseMsg方法中完成,你想怎么做都可以。

4.注意事项,返回消息长度限制2048个字节。

5.如果你的关键词不多,可以不使用接口,直接定义关键词,和回复内容即可(做多200条规则)。





6.补充一下,很多朋友不会设置,上个图




本人不是从事开发和编程工作,只是业余爱好,水平和事件有限,由于之前咨询的人太多,所以把QQ号去了,请大家谅解。完整代码示例如下,这个代码不包含任何处理,如果要处理消息在responseMsg()添加你的处理代码,比如查询数据库,采集百度内容回复,还是其他,一切自己定义:

<?php

//define your token
define("TOKEN", "weixin"); //和你自己设置保持一致即可
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();  //接口设置成功后把$wechatObj->valid();注释掉,感谢happylyang反馈。
$wechatObj->responseMsg();
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><![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";
$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;
}
}
}

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: