从去年开始做微信开发有一年时间了,做过PHP和.net两种微信开发,有一些技巧分享给大家。
首先部署的服务器要是80端口,之前都是在百度开发者中心申请的免费的,后来他们收费了,就在新浪开发者中心申请的服务器,这种服务器只能部署PHP的代码,新浪免费版的服务器不支持ASP.net。
在连接微信的时候会报token验证失败,这个可能是代码问题,也有可能是URL的问题,建议弄个最简单的微信代码测试一下,下面的是PHP的,直接拷贝上去,替换相关参数,连接测试一下,或者有时候是网络问题,用这个连接上了,再把自己的代码拷贝过来。
<?php
define("TOKEN", "pondbay");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();
class wechatCallbackapiTest
{
public function valid()
{
$echoStr = $_GET["echostr"];
if($this->checkSignature()){
echo $echoStr;
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;
}
}
}
?>
后面在开发中,推送的URL可以直接用浏览器打开试试,看看返回的json是不是有问题。开发的代码中最好加上日志文件,便于跟踪查错。
另外,接口文档中有个错误,需要注意,群发消息类型图文消息是mpnews,文本是text,图片是image,语音是voice,音乐是music,视频官方接口文档中写的是vedio,但是那样会报类型出错,应该是mpvedio。
原文地址:http://blog.csdn.net/xiaowanzi80hou/article/details/41979993