微信物联网云服务

微信物联网开发原理图:

一、微信公众号与用户端的交互

1.你需要的东西

  • 申请到一个微信公众号,申请地址点这里,其中,订阅号的申请门槛较低,不需要实名认证,开放给开发者的接口权限也基本够用。
**我自己的公众号**
  • 自定义HTTP服务器
    1.本地服务器    需要申请公网IP和开通80端口,维护方便,但易受外界影响
    2.云服务器    由互联网公司提供,学生优惠性价比高
    3.Web服务器    例如百度的BAE和新浪的SAE,使用方便,本地需要安装Git或SVN
  • 开发的技术储备
      理论上来说,凡是能开发网站的语言都可以使用,如PHP、ASP、JSP(Java Serve Page)、ASP.NET、Node.JS、Python、Java等。由于PHP在服务器端开发十分普遍,微信官网提供的示例程序也是用PHP作为开发语言来介绍,因此,我选择PHP写代码。
      由于微信公众平台开发类似于网站开发,因此,将会使用到网站开发的相关技术知识,如HTTP协议、HTML、XML、JSON、数据库等。
      关于代码编辑器,有Sublime Text,Eclipse等。我使用的是Hbuilder。

2.自定义服务器上的部署

3.开发接口验证

微信公众平台技术文档

一个不错的PHP在线执行工具

<?php
define("TOKEN","weixin");       // 定义token
$wechatObj = new wechat_php();  // 生成类实例
$wechatObj->valid();        // 调用类的检验方法

// 定义一个操作微信公众帐号的类
class wechat_php
{
    // 定义公用校验方法
    public function valid()
    {
        $echoStr = $_GET["echostr"];    // 获取GET请求的参数echostr
        
        // 校验signature
        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);      // 对数组中三个数据进行排序
        $tmpStr = implode( $tmpArr );       // 将数组中三个数据组成一个字符串
        $tmpStr = sha1( $tmpStr );      // 对字符串进行SHA-1散列运算
        
        if( $tmpStr == $signature ) {       // 计算结果与$signature相等
            return true;        // 通过验证
        } else {
            return false;       // 未通过验证
        }
    }
}
?>

4.开始编写代码进行开发

例1:文本消息自动被动回复

<?php
$wechatObj = new wechat_php();
$wechatObj->GetTextMsg();

class wechat_php
{
    public function GetTextMsg()
    {
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
        
        if (!empty($postStr))
        {
            $postStr = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
            $fromUesrname = $postStr->FromUserName;
            $toUsername = $postStr->ToUserName;
            $msgType = $postStr->MsgType;
            $keyword = trim($postStr->Content);
            $time = time();
            
            $textTpl = "<xml>
                        <ToUserName><![CDATA[%s]]></ToUserName>
                        <FromUserName><![CDATA[%s]]></FromUserName>
                        <CreateTime>%s</CreateTime>
                        <MsgType><![CDATA[%s]]></MsgType>
                        <Content><![CDATA[%s]]></Content>
                        <FuncFlag>0</FuncFlag>
                        </xml>";
            if (strtolower($msgType) != "text")
            {
                $msgType = "text";
                $contentStr = "我只接收文本信息!";
            }else{
                if(!empty( $keyword ))
                {
                    $msgType = "text";
                    $contentStr = "消息内容:" . $keyword . "\n";
                    $contentStr = $contentStr . "ToUserName:" . $toUsername . "\n";
                    $contentStr = $contentStr . "FromUserName:" . $fromUesrname;
                }else{
                    $contentStr = "请输入关键字...";
                }
            }
            $resultStr = sprintf($textTpl, $fromUesrname, $toUsername, $time, $msgType, $contentStr);
            ob_clean();
            echo $resultStr;
        }else{
            echo "";
            exit;
        }
    }
}
?>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,529评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,015评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,409评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,385评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,387评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,466评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,880评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,528评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,727评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,528评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,602评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,302评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,873评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,890评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,132评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,777评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,310评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,358评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,579评论 18 139
  • 微信开发 服务号功能 1、1个月(自然月)内仅可以发送4条群发消息。2、发给订阅用户(粉丝)的消息,会显示在对方的...
    wswenyue阅读 3,353评论 2 24
  • 我叫北北,十七岁。 一个人听着冷僻的歌,在不知名的地方任意地唱,一个人阅读,翻开手边记本任意记下一字一句,一个人乘...
    小欣然阅读 1,090评论 3 7
  • 今天我们亲爱的傲姐精心的组织了读书会踏春活动,邀请到了我们既和蔼可亲又温柔又美丽的聂老师,还有有思想有活力爱探究的...
    读书是最好的修行阅读 277评论 1 1