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>
时间: 2024-11-10 01:16:47

CI框架整合微信公共平台接口的相关文章

Python+django接入微信公共平台无法使用中文

使用Python语言和Django框架接入微信公共平台. 腾讯官方说明平台接入时中文使用的是UTF-8编码,于是,我们将views.py文件设置成了utf-8的编码,即:#coding:utf-8,我们能接收和正常处理微信服务器post过来的中文消息,但是我们没办法return中文回去,手机微信提示"该公共账号暂时无法提供服务,请稍后再试".也就是我们能接收人家的中文,没办法给人家返回中文. 这里大家都想到是Python编码问题,找问题的方向大多是使用decode()和encode()

微信公共平台开发接口(三)

很久没写微信公众号的文章了,而且因为是自己是订阅号,所以研究也告一段落了,但还是把自己仅有的一些功能的完整代码共享出来.希望大家一起进步: <?php define("TOKEN", "weixin"); $wechatObj = new wechatCallbackapiTest(); $wechatObj->weixin_run(); class wechatCallbackapiTest { private $fromUsername; priva

微信公共平台开发-(.net实现)1--成为开发者

刚换了个新环境,哎这都快一个月了,还没适应过来,还是怀念老地方呀.老板让开发一个基于微信平台的开发项目,而且是用net实现.当时就蒙了,微信就用了一会个人赶脚不好,所以果断不用,现在让开发,而且查了一些资料很少有.net的,更让我丈二和尚了,当时就有点想打退堂鼓的举动.哎,米有办法在男友的鼓励下继续奋战,相信自己没有实现不了的.现在回头想想也是现在的忙和累与烦恼等到成功的那刻回头想想都是值得的.好了废话不多了,现在开始上正文. 如果想通过微信去开发(当然,指的是开发模式下),首先 建议先申请一个

微信公共平台消息回复类

<?php/** * 微信公共平台消息回复类 * * */class BBCweixin{  private $APPID="******"; private $APPSECRET="******"; /*  *文本消息回复  *@param array object  *@param string content  *@return string  */ public function resText($object,$content,$flag=0){  

解读微信公共平台开发

搭建环境 前一段在CSDN上跟了一篇帖子然后不少同学都来添加我的QQ来询问一些关于微信公共平台的搭建和开发问题.其实本人觉得微信公共平台开发的门槛并不高,是大家把它想的太神秘.因为是本博第一篇文章如果写的不好还请大家多多谅解. 跳过微信公共账号的申请和微信公共平台的基本功能,如果这点有需要帮助的可以直接问问自己的小学老师.直奔主题,在主菜单选择“功能->高级功能”然后进入“开发模式”开启开发模式病点击“成为开发者”接口配置信息先空着,可以在这里找到示例代码. 现在到了搭建微信服务器的步骤了,你可

微信公共平台开发(一):服务器配置

转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/45042549 http://www.llwjy.com/blogdetail/43b9fff3f2b827f4444826aeee756ec7.html 个人博客站已经上线了,网址 www.llwjy.com ~欢迎各位吐槽~ ----------------------------------------------------------------------------

CI框架整合UEditor编辑器上传功能

最近项目中要使用到富文本编辑器,选用了功能强大的UEditor,接下来就来讲讲UEditor编辑器的上传功能整合. 本文UEditor版本:ueditor1_4_3_utf8_php版本 第一步:部署编辑器 HTML代码: 1 <textarea id="editor" class="editor" type="text/plain" style="width:100%;height:500px;"></te

python获取微信公共平台消息列表和用户头像

转载需注明原文地址:http://blog.csdn.net/btyh17mxy/article/details/25207889 刚写的模拟登陆的方式从获取微信公众平台消息列表和用户头像的库,之后还会继续增加相关功能,github地址https://github.com/btyh17mxy/wxwall #!/usr/bin/env python # coding: UTF-8 import json import hashlib import re import random import

ASP.NET MVC 接入微信公共平台

ASP.NET MVC 接入微信公共平台 申请微信公共账号 既然要接入微信公共平台,微信公共号是必须的(当然如果只是测试的话也可以申请微信公共平台接口测试账号),来这里微信公共平台 申请微信公共号(注:申请微信公共号不能用已绑定微信的邮箱),微信公共平台有自己的官方文档,官方文档有不少资料,可以多看看,开发者模式默认是关闭的,需要配置并启用,如下图: URL即你的网站处理微信模块,必须是HTTP://开头的网站,笔者自己之前接入几天一直失败,最终发现是因为自己网站加密了用的是HTTPS,这个需要