微信公众平台开发学习笔记

TokenAccess_token

Token:用来验证发送给公众账号服务器的信息是否来自微信后台

Access_token:通过凭证接口获取到的凭证,保障微信后台接到的消息来自合法的公众账号服务器

接口配置和用户消息处理

*使用同一个URL来做用户消息处理和接口配置。

接口配置:

  

用户消息处理:

 

获取POST数据

[1:]$postData=$HTTP_RAW_POST_DATA

*$HTTP_RAW_POST_DATA 包含 POST 提交原始数据的预定义变量

PHP函数中不能访问全局变量,如把代码中获取POST数据语句封装成函数,需要使用以下方式获取:

Aglobal $HTTP_RAW_POST_DATA//global关键字声明全局变量

B$GLOBALS[‘HTTP_RAW_POST_DATA’] //使用$GLOBALS [超全局变量数组]

[2:]$postData=file_get_contents(“php://input”);

    *php://input:可以访问请求原始数据的只读流,不依赖特定php.inienctype="multipart/form-data" 的时候 php://input 无效

消息输出

//输出消息XML模版

$retTmp="<xml>

<ToUserName><![CDATA[%s]]></ToUserName>

<FromUserName><![CDATA[%s]]></FromUserName>

<CreateTime>%s</CreateTime>

<MsgType><![CDATA[text]]></MsgType>

<Content><![CDATA[%s]]></Content>

<FuncFlag>0</FuncFlag>

</xml>";

//对消息模版中通配符进行替换 %s表示string类型

$resultStr=sprintf($retTmp,$val1,$val2,time(),$val3);

使用CURL发送请求

定义:CURL是一个强大的开源库,支持多种协议,包括HTTPFTPTELNET等;支持HTTPS;使用CURL发送HTTP请求时,可以通过选项灵活设置不同的HTTP协议参数。

步骤:

1)初始化连接句柄;

2)设置CURL选项;

3)执行并获取结果;

4)释放CURL连接句柄。

常用函数:

[1:]Curl_init([string $url=NULL]):初始化一个新会话,返回一个cURL句柄,供curl_setopt()curl_exec()curl_close()函数使用。提供url参数时,CURLOPT_URL选项将会被设置成这个值,也可以使用curl_setopt()函数手动设置。

[2:]curl_setopt(resource $ch,int $option,mixed $value):通过设定CURL函数库定义的选项来定制HTTP请求。

选项示例:

CURLOPT_URL:指定请求的URL

CURLOPT_RETURNTRANSFER:设置为1表示稍后执行的curl_exec()函数返回结果是URL的返回字符串,而不是把返回字符串定向到标准输出并返回TRUE

CURLOPT_HEADER:设置为0表示不返回HTTP头部信息。

CURLOPT_TIMEOUT:设置超时限制,防止死循环

CURLOPT_USERAGENT:在HTTP请求中包含一个“User-Agent”头的字符串

CURLOPT_FOLLOWLOCATION:自动跳转

CURLOPT_AUTOREFERER:当根据location重定向时自动设置headerreferer信息

CURLOPT_COOKIEFILE:读取存储的cookie信息

CURLOPT_SSL_VERIFYPEER:检查认证证书来源

CURLOPT_SSL_VERIFYHOST:检查证书中SSL加密算法是否存在

CURLOPT_HTTPGET:发送一个常规get请求

CURLOPT_POST:发送一个常规post请求

CURLOPT_POSTFIELDSpost提交的数据包

[3:]curl_exec(resource $ch):执行CURL请求。返回值是对应URL返回的数据,以字符串表示,如发生错误,返回FALSE(===)
[4:]curl_getinfo($opt):获取CURL请求输出的相关信息

$opt设置后返回参数指定的信息[适用只需关注某些传输信息时]

[5:]curl_close(resource $ch):关闭CURL连接

*获取HTTP请求中的GETPOST参数的场景是公众账号服务器为被调用方

原文地址:https://www.cnblogs.com/skye-blog/p/7704816.html