微信开发示例之简单的回显当前的时间
白羽 2018-06-12 来源 :网络 阅读 605 评论 0

摘要:本文将带你了解微信开发示例之简单的回显当前的时间,希望本文对大家学微信有所帮助。


 

概述

这是一个简单的微信开发示例,当用户的输入不为空的时候,公众号将会向用户显示当前的时间。

源码

 

<?php
 
define("ToKEN", "weixin");   //定义一个常量
$wechatObj = new wechatCallbackapiTest();
 
//标准模版
if (isset($_GET['echostr'])) {
    //echo $_GET['echostr'];
    $wechatObj->valid();
} else {
    $wechatObj->responseMsg();
}
 
class wechatCallbackapiTest
{
    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; //微信token
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr);  //对数组进行排序
        $tmpStr = implode($tmpArr); //将一个一维数组的值转化为字符串
        $tmpStr = sha1($tmpStr);    //计算字符串的 sha1 散列值
 
        if ($tmpStr == $signature) {
            return true;
        } else {
            return false;
        }
    }
 
    //发送信息
    public function responseMsg()
    {
        /**
         *  基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一样的。但是如果post过来的数据不是PHP能够识别的,
         * 你可以用 $GLOBALS['HTTP_RAW_POST_DATA']来接收,比如 text/xml 或者 soap 等等
         */
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
 
        if (!empty($postStr)) { //检查一个变量是否为空
            $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
            /**
            * 用户的OpenID,不是惟一的,相同的用户关注不同的公众账号后,
            * 获取的OpenID是不同的。
            */
            $fromUsername = $postObj->FromUserName;    //发送方微信号(openid)
            $toUsername = $postObj->ToUserName;    //开发者微信公共账号
            $keyword = trim($postObj->Content);
 
            $time = time(); //返回当前的 Unix 时间戳
 
            //返回给微信服务器的模版
            $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";  //返回的信息类型
                $contentStr = "当前时间: " . date("Y-m-d H:i:s", time());
                $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);   //格式化字符串
                echo $resultStr;
            }
        } else {
            echo "获取的信息为空";
            exit;
        }
    }
}


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之微信频道!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程