首页 > 代码库 > CI框架整合微信公共平台接口
CI框架整合微信公共平台接口
#CI框架控制器<?php if ( ! defined(‘BASEPATH‘)) exit(‘No direct script access allowed‘);/***CI框架整合微信 2014.9.15作者:黄国金**/define(‘TOKEN‘, ‘hgj123‘);class Weixin extends CI_Controller{ #构造函数 function __construct() { #调用父类的构造函数 parent::__construct(); #以get的形式获取参数 parse_str($_SERVER[‘QUERY_STRING‘], $_GET); } #在微信平台上设置的对外 URL public function message() { #判断是否接入微信的验证 if ($this->_valid()) { #判判断是不是验证过 $echostr = $this->input->get(‘echostr‘); if (!empty($echostr)) { #未验证 $this->load->view(‘valid_view‘, array(‘output‘ => $echostr)); } else { # 处理用户消息 $this->_responseMsg(); } } else#验证失败 { $this->load->view(‘valid_view‘, array(‘output‘ => ‘Error!‘)); } } #用于接入微信的验证 private function _valid() { #获取token $token = TOKEN; $signature = $this->input->get(‘signature‘); $timestamp = $this->input->get(‘timestamp‘); $nonce = $this->input->get(‘nonce‘); $tmp_arr = array($token, $timestamp, $nonce); sort($tmp_arr); $tmp_str = implode($tmp_arr); $tmp_str = sha1($tmp_str); return ($tmp_str == $signature); } #处理用户发送过来的消息 private function _responseMsg() { #获取获取表单提交过来的数据 $post_str = file_get_contents(‘php://input‘); #判断是否为空 if (!empty($post_str)) { #解析微信传过来的 XML 内容 $post_obj = simplexml_load_string($post_str, ‘SimpleXMLElement‘, LIBXML_NOCDATA); $from_username = $post_obj->FromUserName; $to_username = $post_obj->ToUserName; #接受用户输入的内容 $keyword = trim($post_obj->Content); #如果内容不为空 if (!empty($keyword)) { #文本类型的消息,本示例只支持文本类型的消息 $type = "text"; $content = $this->_parseMessage($keyword); #数据数组 $data = array( ‘to‘ => $from_username, ‘from‘ => $to_username, ‘type‘ => $type, ‘content‘ => $content, ); #分配数据 $this->load->view(‘response_view‘, $data); } else {#如果为空 $type = "text"; $content = "请输入文字"; #数据数组 $data = array( ‘to‘ => $from_username, ‘from‘ => $to_username, ‘type‘ => $type, ‘content‘ => $content, ); #分配数据 $this->load->view(‘response_view‘, $data); } } else { #错误 $this->load->view(‘valid_view‘, array(‘output‘ => ‘Error!‘)); } } #解析用户输入的字符串 private function _parseMessage($keyword) { #开启错误日记 log_message(‘debug‘, $keyword); #处理用户的关键字 return ‘你好~!~‘; }}
#输出界面 view试图<xml><ToUserName><![CDATA[<?=$to?>]]></ToUserName><FromUserName><![CDATA[<?=$from?>]]></FromUserName><CreateTime><?=time()?></CreateTime><MsgType><![CDATA[<?=$type?>]]></MsgType><Content><![CDATA[<?=$content?>]]></Content><FuncFlag>0</FuncFlag></xml>
CI框架整合微信公共平台接口
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。