这段时间越来越多朋友和客户开始关注微信,微信平台开发也越来越火,自
己也觉得这个比较有意思也就去了解了一下。现在和大家分享一下微信平台开发的模式。
一、接入微信公众平台
(1)申请消息接口。申请消息接口需要填写两个选项,一个是URL和T oken。
(2)验证URL有效性。开发者提交信息后,微信服务器将发送GET请求到填写的URL上,GET请求携带四个参数:
参数 signature timestamp nonce echostr 描述 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。 时间戳 随机数 随机字符串 通过检验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 = \" { $toUsername, $time, $msgType, $contentStr);
$msgType = \"text\";
$contentStr = \"Welcome to wechat world!\"; $resultStr = sprintf($textTpl, $fromUsername, echo $resultStr;
if(!empty( $keyword ))
}else{
echo \"Input something...\"; } }else { echo \"\"; exit; } }
通过对微信接口的接触,我大致清楚文本信息接收和发送。至于微信接口开发的自定义表单以及微商城开发的原理需继续深入了解,期望后面能够给大家带来更详细的分享。
因篇幅问题不能全部显示,请点此查看更多更全内容