} } }

    微信大众,平台开辟(四) 简单答复功能开辟

    添加时间:2013-7-4 点击量:

    一、简介


    微信大众,平台可以按照用户发送的信息进行断定,然后给出对应的答复,具有杰出的交互性。下文将模仿简单的答复功能,按照这个案例,开辟者也可以根蒂根基懂得微信交互的道理,进行更深层次的开辟。


    二、思路解析


    用户发送过来的文本信息,我们可以提取关键字,经由过程简单的 if...elseif...else... 实现。


    关键代码如下:



    if¥keyword==你好){
    
      
    ¥contentStr = hello;
    }
    elseif¥keyword==姑苏){
      
    ¥contentStr = 上有天堂,下有苏杭;
    }
    else{
      
    ¥contentStr = 感激您存眷【卓锦姑苏】 微旌旗灯号:zhuojinsz;
    }


    若是用户发送你好,则答复hello,若是用户发送姑苏,则答复上有天堂,下有苏杭,其他信息,则答复你的迎接词。


    三、完全代码



    <?php
    
    /
    wechat php test
    /

    //define your token
    define(TOKEN, zhuojin);
    ¥wechatObj = new wechatCallbackapiTest();
    ¥wechatObj->responseMsg();
    //¥wechatObj->valid();

    class wechatCallbackapiTest
    {
    /public function valid()
    {
    ¥echoStr = ¥_GET[echostr];

    //valid signature , option
    if(¥this->checkSignature()){
    echo ¥echoStr;
    exit;
    }
    }
    /

    public 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);
    ¥RX_TYPE = trim¥postObj->MsgType);

    switch¥RX_TYPE
    {
    case text:
    ¥resultStr = ¥this->handleText(¥postObj);
    break;
    case event:
    ¥resultStr = ¥this->handleEvent(¥postObj);
    break;
    default:
    ¥resultStr = Unknow msg type: .¥RX_TYPE;
    break;
    }
    echo ¥resultStr;
    }
    else {
    echo ;
    exit;
    }
    }

    public function handleText(¥postObj
    {
    ¥Username = ¥postObj->FromUserName;
    ¥toUsername = ¥postObj->ToUserName;
    ¥keyword = trim¥postObj->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(!empty¥keyword ))
    {
    ¥msgType = text;

    if¥keyword==你好){
    ¥contentStr = hello;
    }
    elseif¥keyword==姑苏){
    ¥contentStr = 上有天堂,下有苏杭;
    }
    else{
    ¥contentStr = 感激您存眷【卓锦姑苏】 微旌旗灯号:zhuojinsz;
    }
    ¥resultStr = sprintf¥textTpl¥Username¥toUsername¥time¥msgType¥contentStr);
    echo ¥resultStr;
    }
    else{
    echo Input something...;
    }
    }

    public function handleEvent(¥object
    {
    ¥contentStr = ;
    switch¥object->Event)
    {
    case subscribe:
    ¥contentStr = 感激您存眷【卓锦姑苏】.\n.微旌旗灯号:zhuojinsz.\n.杰出秀丽,名城姑苏,我们为您供给姑苏本地生活生计指南,姑苏相干信息查询,做好的姑苏微信平台。.\n.今朝平台功能如下:.\n.【1】 查天气,如输入:姑苏天气.\n.【2】 查公交,如输入:姑苏公交178.\n.【3】 翻译,如输入:翻译I love you.\n.【4】 姑苏信息查询,如输入:姑苏观前街.\n.更多内容,敬请等待...;
    break;
    default :
    ¥contentStr = Unknow Event: .¥object->Event;
    break;
    }
    ¥resultStr = ¥this->responseText(¥object¥contentStr);
    return ¥resultStr;
    }

    public function responseText(¥object¥content¥flag=0
    {
    ¥textTpl = <xml>
    <ToUserName><![CDATA[%s]]></ToUserName>
    <FromUserName><![CDATA[%s]]></FromUserName>
    <CreateTime>%s</CreateTime>
    <MsgType><![CDATA[text]]></MsgType>
    <Content><![CDATA[%s]]></Content>
    <FuncFlag>%d</FuncFlag>
    </xml>
    ;
    ¥resultStr = sprintf¥textTpl¥object->FromUserName, ¥object->ToUserName, time(), ¥content¥flag);
    return ¥resultStr;
    }


    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 );

    if¥tmpStr == ¥signature ){
    return true;
    }
    else{
    return false;
    }
    }
    }

    ?>


    四、测试



    五、存眷


    请存眷 卓锦姑苏 微信大众,帐号,卓锦姑苏 基于SAE 平台开辟,针对于主流的微信功能进行开辟测试。


    您可以存眷 卓锦姑苏 大众,帐号进行功能测试,以及获取新的应用开辟。


    1. 登录微信客户端,伴侣们 -> 添加伴侣 -> 搜号码 -> zhuojinsz,查找并存眷。


    2. 扫描二维码:






    David Camp



    • 技巧交换,请加QQ群:213260412

    • 营业合作,请接洽作者QQ:562866602


    Great People Share Knowledge...

    读书,不要想着实用,更不要有功利心。读书只为了自身的修养。邂逅一本好书如同邂逅一位知己,邂逅一个完美之人。有时心生敬意,有时怦然心动。仿佛你心底埋藏多年的话,作者替你说了出来,你们在时光深处倾心相遇的一瞬间,情投意合,心旷神怡。
    分享到: