简单的实现微信平台开发
程序员文章站
2022-06-01 15:52:42
...
简单的实现微信平台开发 使用说明:新手入门很适合的,你可以看我转载的博客:http://my.oschina.net/xz360/blog/341169 也可以去看官网的文档:http://mp.weixin.qq.com/wiki/index.php?title=%E9%A6%96%E9%A1%B5 无 ?phpdefine ( "TOKEN", "weixin" );$wech
简单的实现微信平台开发
使用说明:新手入门很适合的,你可以看我转载的博客:http://my.oschina.net/xz360/blog/341169
也可以去看官网的文档:http://mp.weixin.qq.com/wiki/index.php?title=%E9%A6%96%E9%A1%B5
valid (); } else { $wechatObj->responseMsg (); } class wechatCallbackapiTest { // 验证Token public function valid() { $echoStr = $_GET ["echostr"]; if ($this->checkSignature ()) { echo $echoStr; exit (); } } // 验证签名 private function checkSignature() { $signature = $_GET ["signature"]; $timestamp = $_GET ["timestamp"]; $nonce = $_GET ["nonce"]; $token = TOKEN; $tmpArr = array ( $token, $timestamp, $nonce ); sort ( $tmpArr, SORT_STRING ); $tmpStr = implode ( $tmpArr ); $tmpStr = sha1 ( $tmpStr ); if ($tmpStr == $signature) { return true; } return false; } /* 回应 */ public function responseMsg() { $postStr = $GLOBALS ["HTTP_RAW_POST_DATA"]; if (! empty ( $postStr )) { $postObj = simplexml_load_string ( $postStr, 'SimpleXMLElement', LIBXML_NOCDATA ); $RX_TYPE = trim ( $postObj->MsgType ); switch ($RX_TYPE) { //接收关注/取消关注、扫描带参数二维码【未关注时,进行关注后、用户已关注】、上报地理位置、自定义菜单【点击菜单拉取消息、点击菜单跳转链接】 case "event" : $result = $this->receiveEvent ( $postObj ); break; //接收普通的文字、图片、媒体消息 case "text" : $result = $this->receiveText ( $postObj ); break; } echo $result; } else { echo ""; exit (); } } // 处理接收到用户发送的消息 private function receiveEvent($object) { $content = ""; switch ($object->Event) { //关注 case "subscribe" : $content = "感谢您的关注,本账号目前还\n在测试阶段,给您带来的不便请谅解!"; break; //取消关注 case 'unsubscribe': $content = "欢迎您再次关注我们“女人要懂得爱自己”!"; break; } if (is_array ( $content )) { $result = $this->transmitNews ( $object, $content ); } else { $result = $this->transmitText ( $object, $content ); } return $result; } /* 处理接收到的文本 */ private function receiveText($object) { $keyword = trim ( $object->Content ); if (strstr ( $keyword, "四六级" ) || strstr ( $keyword, "英语" )) { $content = array (); $content [] = array ( "Title" => "2014年6月全国大学英语四六级考试成绩查询", "Description" => "", "PicUrl" => "http://img003.21cnimg.com/photos/album/20141104/m600/B2579ABF2B905FA793C6756A59044992.jpeg", "Url" => "http://apix.sinaapp.com/cet/index.php?openid=" . $object->FromUserName ); $content [] = array ( "Title" => "刘强东带奶茶妹妹看牙 两人旁若无人地忘情缠绵(图)", "Description" => "", "PicUrl" => "", "Url" => "http://news.21cn.com/social/shixiang/a/2014/1105/11/28502924.shtml" ); } else { $content = date ( "Y-m-d H:i:s", time () ) . "\n目前正在测试阶段"; } if (is_array ( $content )) { $result = $this->transmitNews ( $object, $content ); } else { $result = $this->transmitText ( $object, $content ); } return $result; } /* 输出文章 */ private function transmitText($object, $content) { $textTpl = ""; $result = sprintf ( $textTpl, $object->FromUserName, $object->ToUserName, time (), $content ); return $result; } /* 输出图文 */ private function transmitNews($object, $arr_item) { if (! is_array ( $arr_item )) return; $itemTpl = " %s - "; $item_str = ""; foreach ( $arr_item as $item ) $item_str .= sprintf ( $itemTpl, $item ['Title'], $item ['Description'], $item ['PicUrl'], $item ['Url'] ); $newsTpl = "
"; $result = sprintf ( $newsTpl, $object->FromUserName, $object->ToUserName, time (), count ( $arr_item ) ); return $result; } } ?> %s %s $item_str