微信公众服务响应脚本

很简单的被动回复脚本:

一般我们都用sdk: https://github.com/dodgepudding/wechat-php-sdk,自己写也是极好的,

<?php

// 微信与服务器通信安全监测
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);
            $fromUsername = $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";
                $contentStr = "Welcome to wechat world!";
                $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                echo $resultStr;
            }else{
                echo "Input something...";
            }
        }else {
            echo "";
            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 );
            if( $tmpStr == $signature ){
                return true;
            }else{
                return false;
            }
    }
}

/**
  * wechat php 服务器
  */
//define your token
define("TOKEN", "token");
$wechatObj = new wechatCallbackapiTest();
$postObj = $GLOBALS["HTTP_RAW_POST_DATA"];
$postObj = simplexml_load_string($postStr, ‘SimpleXMLElement‘, LIBXML_NOCDATA);
$wechatObj->valid();

原文地址:https://www.cnblogs.com/xuweiqiang/p/9497611.html

时间: 2024-08-30 14:57:38

微信公众服务响应脚本的相关文章

微信公众服务号开发

1 公司提供接口,微信平台可以通过访问我们的接口,进行数据交互,通过xml. 2 http://mp.weixin.qq.com/ 微信服务号平台,输入用户名密码进入高级功能-开发者模式, 3 申请服务号之后,微信会提供appid和AppSecret两个参数,根据这两个参数可以获取token,token作为你服务号和微信交互的证明. 4 接下里就是完成自己的接口部分的开发,然后接口的服务器配置地址输入微信服务号的服务器配置url,本地的项目地址是不行的,得是能访问的地址 5 接口的开发,接受xm

微信公众服务号申请、认证(开通支付)-微信开发图文教程

微信公众服务号申请 百度图文教程 http://jingyan.baidu.com/article/e9fb46e190a51a7521f766d7.html 微信服务号认证(开通支付) 百度图文教程 http://jingyan.baidu.com/article/cd4c2979cd8369756e6e60e0.html 比百度更详细的教程 http://www.ivlian.com/index!newsDetail.action?id=40 版权声明:本文为博主原创文章,未经博主允许不得转

观察者模式:以微信公众服务为例

1. 观察者模式 观察者模式属于设计模式中的行为型模式,主要用于对象间存在一对多的关系的时候. 作用:在一对多的对象关系中,当主对象的状态发生改变时,所有依赖于它的对象都将会被自动更新并得到通知. 解决的问题:向其它对象通知主对象的改变. 何时使用:当主对象的状态发生改变时,所有依赖于它的对象都将得到通知. 使用场景: 一个抽象模型有两个方面,其中一个方面依赖于另一个方面.将这些方面封装在独立的对象中使它们可以各自独立地改变和复用. 一个对象的改变将导致其他一个或多个对象也发生改变,而不知道具体

卡券核销助手微信公众服务号全面升级 并更名为“卡券商户助手”

微信公众平台最近可谓动作频频,自动回复支持插入微信卡券 多图文消息可嵌入卡券,微信公众号支付测试功能策略调整 加快商户申请速度,新增"微信连Wi-Fi"功能,势为不太理想的双十一战绩扭转局势,微信卡券是微信支付(微信电商)重要一环,不断升级更新中,作为公众平台官方为卡券商户提供的服务号“卡券核销助手”昨天发布升级公告,更好地帮助商户在手机端进行卡券核销. 卡券核销助手全面升级 “卡券核销助手”是公众平台官方为卡券商户提供的服务号,帮助商户在手机端进行卡券核销. 卡券核销助手自上线以来,

微信公众平台自定义脚本

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', LIBXM

微信公众服务号怎么做才能突破群发次数/月?

不少影楼企业在注册公众号,不知道是做订阅号还是服务号?若做订阅号,曝光度不够(微信改版后,订阅号的消息被折叠在订阅号列表中,曝光度大大降低),若做服务号,群发频次太低影响力有限(每月只能发四次,明显不够用),群发频率少,群发模板缺少新意,涨粉毫无头绪,怎么办? 要解决这个问题还得从公众号群发频率,或者跟粉丝互动几大方式来研究,可以试试模板消息. 首先要强调的一点是订阅号没有模板消息功能,只有认证过的服务号可以申请开通模板消息,不过除有自主开发能力以外,模板消息功能使用只能借助与第三方工具,使用时

java 微信公众服务平台 下发 模板消息

(一).部分截图 (二).部分代码 (一).部分截图: (二).部分代码: //此处 给用户微信发消息... Map<String,String> paraMap = new HashMap<String,String>(); String pk_paydata = (String)curDataMap.get("pk_paydata"); String personname = (String)curDataMap.get("personname&q

基于微信公众服务号的电商平台开发环境搭建

      1-运行环境及开发工具 1.1 Java运行环境 安装与配置 1.1.1 JDK 安装与配置 1.1.2 IDE 开发环境安装与配置 1.2 数据库安装与配置 1.2.1MYSQL安装 用户名 密码 1.2.2 数据库管理工具 SQLyog 1.3 应用服务器安装与配置 1.3.1 TOMCAT安装与配置 1.3.2 应用程序部署与测试 2-

微信公众平台服务号与订阅号区别详解【有图】

微信公众平台现在分为两个类别的号:一个是服务号,一个订阅号.服务号是针对企业的,订阅号是针对个人的.这个两种类型的号有很大的区别,特别是功能上有所不同. 工具/原料 电脑.微信公众平台 微信公众平台服务号与订阅号"首页"区别 1 微信公众平台服务号首页面:主要的标志是:服务号 其他的和订阅号一样.如下图所示: 2 微信公众平台订阅号首页面:主要的标志是:订阅号 其他的和服务号一样.如下图所示: 3 微信公众平台服务号与订阅号进入的首页界面是一样的,主要的区别就是标志不一样,明确指出所登