微信随笔

来源:互联网 发布:网络舆情监测方法 编辑:程序博客网 时间:2024/05/16 18:40

验证服务器

准备

首先要有一个服务器,可以是租用也可以用免费空间.比如一个免费国外空间freevar.建个test.php,写上echo $_GET["echostr"];//这是微信服务器发来的随机数,能返回就证明这服务器能用.要验证的话可以加密然后和微信发过来的随机字符串匹配

然后在公众号后台的服务器配置里填上空间url(xxx.com/test.php),填上token(如'weixin').

EncodingAESKey随机生成

要安全就安全模式,不要安全要速度就明文

提交


过程

参数                  描述

signature         微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参                                                    数、nonce参数。

timestamp         时间戳

nonce                随机数

echostr              随机字符串

首先微信服务器会用token+timestamp+nonce经过加密计算得出一个结果signature,然后把时间戳,随机数,加密结果加上一个随机字符串echostr用get发过来,然后你可以在公众号服务器中用这个加密过程计算一次看能不能和signature对上.能对上就证明在微信服务器上的token和公众号服务器上的token是一致的,这个是微信发过来的信息没有错了.然后你可以把微信发过来的随机数也发过去,微信也知道这个公众号服务器的确是你的服务器了.

连接完成


提交URL后微信第一次调用一次服务器的php文件创建一个文件里的类,静态的话应该还在服务器保留有(?).之后应该每一次有消息都会调用一次服务器配置的php文件,


/**
 * "拿post上的数据"
 * 基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一样的。但是如果post过来的数据不是PHP能够识别的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']来  *接收, 比如 text/xml 或者 soap 等等。
 * 另外还有一项 php://input 也可以实现此这个功能
 * php://input 允许读取 POST 的原始数据。和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini 设置。
 * php://input 不能用于 enctype="multipart/form-data"。
 */

post方法代码:

<?php
/**
 想用post方法传递数据
*/

$data='
<xml>
 <ToUserName><![CDATA[toUser]]></ToUserName>
 <FromUserName><![CDATA[fromUser]]></FromUserName> 
 <CreateTime>1348831860</CreateTime>
 <MsgType><![CDATA[text]]></MsgType>
 <Content><![CDATA[this is a test]]></Content>
 <MsgId>1234567890123456</MsgId>
 </xml>
';


$url="localhost/b.php";
$header[]="Content-type:text/xml";//************


$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);//**********
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);


curl_exec($curl);
curl_close($curl);
?>


get方法传递代码:


0 0
原创粉丝点击