微信公众平台开发定稿版

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微信公众平台开发

HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】

微信公众平台开发

这段时间越来越多朋友和客户开始关注微信,微信平台开发也越来越火,自己也觉得这个比较有意思也就去了解了一下。现在和大家分享一下微信平台开发的模式。

一、接入微信公众平台

(1)申请消息接口。申请消息接口需要填写两个选项,一个是URL和T oken。

(2)验证URL有效性。开发者提交信息后,微信服务器将发送GET请求到填写的URL 上,GET请求携带四个参数:

通过检验signature对请求进行校验。若确认此次GET请求来自微信服务器,原样返回echostr参数内容,则接入生效,否则接入失败。

加密/校验流程如下:

1. 将token、timestamp、nonce三个参数进行字典序排序

2. 将三个参数字符串拼接成一个字符串进行sha1加密

3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

示例代码如下:

function checkSignature(){

$signature = $_GET["signature"];

$timestamp = $_GET["timestamp"];

$nonce = $_GET["nonce"];

$token = TOKEN;//这个是自己定义的,也是配置的时候填写的token

$tmpArr = array($token, $timestamp, $nonce);

sort($tmpArr, SORT_STRING);

$tmpStr = implode( $tmpArr );

$tmpStr = sha1( $tmpStr );

if( $tmpStr == $signature ){

return true;

}else{

return false;

}

}

二、接收消息

1.验证消息真实性

每次开发者接收用户消息的时候,微信都会带上前面三个参数(signature、timestamp、nonce)访问开发者设置的URL,开发者依然通过对签名的效验判断此条消息的真实性。效验方式与首次提交验证申请一致。

2.接收普通消息

传递方式:

微信服务器POST消息的XML数据包到响应地址

文本消息示例:

1348831860

1234567890123456

消息类型:

文本、图片消息、语音消息、视频消息、地理位置、链接

三、发送消息

1.发送被动响应消息

1)接收message

2)计算输出xml

回复消息的格式和接受消息时的格式相似。

回复文本消息示例:

12345678

示例代码如下:

function responseMsg()

{

//get post data, May be due to the different environments

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

//extract post data

if (!empty($postStr)){

$postObj = simplexml_load_string($postStr,

'SimpleXMLElement', LIBXML_NOCDATA);

$fromUsername = $postObj->FromUserName;

$toUsername = $postObj->ToUserName;

$keyword = trim($postObj->Content);

$time = time();

$textTpl = "

%s

0

";

if(!empty( $keyword ))

{

相关文档
最新文档