【个人测试公众号】微信公众号接入过程问题笔记

网站备案审核实在太慢了, 而且程序太复杂,就简单学习测试下也没必要整个备案空间。 然后就用了以前申请的sina sae空间+域名 配置了微信公众号个人测试沙箱环境。

微信公众号接入过程问题笔记

第一步 :先进入微信测试公众号页面

然后是手机微信扫码授权后,就有如下界面

【个人测试公众号】微信公众号接入过程问题笔记_第1张图片

第二步 :配置接口信息

        这一步可以参照微信接入说明 ,该页提供一个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的地址)

【个人测试公众号】微信公众号接入过程问题笔记_第2张图片


然后提交就可以了

如果提示失败,请检查Token与URL【如果是自己的域名和空间,请备案; 百度sae、新浪sae的需要自己申请而且认证通过(就是自己拍一个手握证件照上传,很简单的 最短2天就o了),这一步必须必】

第三步 :配置JS接口安全域名

这一步其实也很简单的,但是很多人在这一步浪费很长时间,

填这个域名是一定不要带protocol的,比如说 http://www.sagosoft.com/   这样是不对的,这是URL不是域名

域名应该是类似 www.sagosoft.com这样的 【否则在微信js-sdk接入时会提示invalid url domain

【个人测试公众号】微信公众号接入过程问题笔记_第3张图片

第四步 :手机微信扫描测试号二维码  关注测试公众号

【个人测试公众号】微信公众号接入过程问题笔记_第4张图片

第五步 :体验接口权限表-网页账号

    域名填微信授权回调页面域名,如果是同一个域名跟上面的接口配置URL填一样即可

【个人测试公众号】微信公众号接入过程问题笔记_第5张图片


【个人测试公众号】微信公众号接入过程问题笔记_第6张图片


最后放一张另一个账号的完成图

【个人测试公众号】微信公众号接入过程问题笔记_第7张图片

转载请注明:内容来自 http://my.oschina.net/freddon/blog/513449


 

你可能感兴趣的:(url,domain,Invalid,微信公众号开发,公众号沙箱)