微信公众平台开发定稿版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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数据包到响应地址
文本消息示例:
消息类型:
文本、图片消息、语音消息、视频消息、地理位置、链接
三、发送消息
1.发送被动响应消息
1)接收message
2)计算输出xml
回复消息的格式和接受消息时的格式相似。
回复文本消息示例:
示例代码如下:
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 = "
";
if(!empty( $keyword ))
{