码迷,mamicode.com
首页 > 微信 > 详细

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

时间:2015-10-04 17:18:20      阅读:521      评论:0      收藏:0      [点我收藏+]

标签:

网站备案审核实在太慢了。

然后就用了以前申请的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/   这样是不对的

应该是 www.sagosoft.com 【否则在微信js-sdk接入时会提示invalid url domain

技术分享


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

技术分享

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

标签:

原文地址:http://my.oschina.net/u/1388778/blog/513449

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!