网站备案审核实在太慢了, 而且程序太复杂,就简单学习测试下也没必要整个备案空间。 然后就用了以前申请的sina sae空间+域名 配置了微信公众号个人测试沙箱环境。
微信公众号接入过程问题笔记
第一步 :先进入微信测试公众号页面
然后是手机微信扫码授权后,就有如下界面
第二步 :配置接口信息
这一步可以参照微信接入说明 ,该页提供一个php的实例下载,很简单基本上修改一下自定义的TOKEN就好了,然后把验证页面放到自己的服务器上。
这里我提供我做的一个例子:
准备资源:
域名+空间(我的是sae空间+万网域名)、仅作验证的php文件
域名指向的空间根目录我创建了一个index.php
index.php
<?php
/**
* wechat php test
*/
//define your token
define("TOKEN", "weixin_freddon");//只用改这一个TOKEN、任意名称,比如weixin_freddon
$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)){
/* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,
the best way is to check the validity of xml by yourself */
libxml_disable_entity_loader(true);
$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()
{
// you must define TOKEN by yourself
if (!defined("TOKEN")) {
throw new Exception('TOKEN is not defined!');
}
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
// use SORT_STRING rule
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
}
?>
然后填写配置信息Token (一定要与上面的index.php中的token一致)、URL(index.php的地址)
然后提交就可以了
如果提示失败,请检查Token与URL【如果是自己的域名和空间,请备案; 百度sae、新浪sae的需要自己申请而且认证通过(就是自己拍一个手握证件照上传,很简单的 最短2天就o了),这一步必须必】
第三步 :配置JS接口安全域名
这一步其实也很简单的,但是很多人在这一步浪费很长时间,
填这个域名是一定不要带protocol的,比如说 http://www.sagosoft.com/ 这样是不对的,这是URL不是域名
域名应该是类似 www.sagosoft.com这样的 【否则在微信js-sdk接入时会提示invalid url domain】
第四步 :手机微信扫描测试号二维码 关注测试公众号
第五步 :体验接口权限表-网页账号
域名填微信授权回调页面域名,如果是同一个域名跟上面的接口配置URL填一样即可
最后放一张另一个账号的完成图
转载请注明:内容来自 http://my.oschina.net/freddon/blog/513449