各位大神 求微信关注后自动回复图文 PHP代码

我用的如下代码。。。不知道哪里错了 PHP小白 token验证是通过的 目的是关注公众号后自动发一个图文 求助啊 正确的应该怎么写

<?php
define("TOKEN", "weixin");

$wechatObj = new wechatCallbackapiTest();

$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

$tmpstr = $postArr;

    //处理消息,并设置回复类型
    $postObj = simplexml_load_string($postArr);
    if(strtolower($postObj->MsgType)=='event'){


             if (strtolower($postObj->MsgType) == "text" && trim($postObj->Content == "单图文")){

          $toUser    =  $postObj->FromUserName;

          $fromUser  =  $postObj->ToUserName;

          $array = array(
              array(
                "title"=>"XXX",
                "description"=>"XXXXXXX",
                "picUrl"=>"httpXXXXn1.jpg",
                "url"=>"httpsXXX.com/",
              ),
          );

          $template  =  "<xml>
                        <ToUserName><![CDATA[%s]]></ToUserName>
                        <FromUserName><![CDATA[%s]]></FromUserName>
                        <CreateTime>%s</CreateTime>
                        <MsgType><![CDATA[%s]]></MsgType>
                        <ArticleCount>".count($array)."</ArticleCount>
                        <Articles>";

          foreach ($array as $key => $v) {
              $template  .= "<item>
                            <Title><![CDATA[".$v['title']."]]></Title>
                            <Description><![CDATA[".$v['description']."]]></Description>
                            <PicUrl><![CDATA[".$v['picUrl']."]]></PicUrl>
                            <Url><![CDATA[".$v['url']."]]></Url>
                            </item>";
          }


          $template.= "</Articles></xml>";

          $time     = time();

          echo  sprintf( $template,$toUser,$fromUser,$time,"news");
 }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;

    }

}

}

?>

0

2个回答

0

<?php
header("Content-type: text/html; charset=utf-8"); 
$nonce = $_GET['nonce'];
$token = 'winxin';
$timestamp = $_GET['timestamp'];
if (isset($_GET['echostr'])) {
    if (bindServerCheck()) {
        echo $_GET['echostr'];
    }
    exit();
}
responseMsg();

 //消息回复
function responseMsg() {
    //1.获取到微信推送过来post数据(xml格式)
    $postArr = $GLOBALS['HTTP_RAW_POST_DATA'];
    //2.处理消息类型,并设置回复类型和内容
    $postObj = simplexml_load_string($postArr, 'SimpleXMLElement', LIBXML_NOCDATA);
    //判断该数据包是否是订阅de事件推送
    if (strtolower($postObj->MsgType) == 'event') {
        //如果是关注 subscribe事件
        if (strtolower($postObj->Event) == 'subscribe') {
            $toUser = $postObj->FromUserName;
            $fromUser = $postObj->ToUserName;
            $time = time();
            $msgType = 'text';
            $content = '欢迎关注我的微信公众号 test 123';

 
             //修改为
              if (is_utf8($content)) {
                $content = $content;
              } else {
               $content = iconv('gb2312', 'UTF-8//IGNORE', $content);
              }

            $template = "
                            <![CDATA[%s]]>
                            <![CDATA[%s]]>
                            %s
                            <![CDATA[%s]]>
                            <![CDATA[%s]]>
                            ";
            $info = sprintf($template, $toUser, $fromUser, $time, $msgType, $content);
            echo $info;
        }
    }
}

// 开发者模式绑定校验
function bindServerCheck($token) {
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];
    $tmpArr = array(
        $token,
        $timestamp,
        $nonce
    );
    sort($tmpArr);
    $tmpStr = implode($tmpArr);
    $tmpStr = sha1($tmpStr);
    if ($tmpStr == $signature) {
        return true;
    } else {
        return false;
    }
}

  function to_utf8($in) 

        if (is_array($in)) { 
            foreach ($in as $key => $value) { 
                $out[to_utf8($key)] = to_utf8($value); 
            } 
        } elseif(is_string($in)) { 
            if(mb_detect_encoding($in) != "UTF-8") 
                return utf8_encode($in); 
            else 
                return $in; 
        } else { 
            return $in; 
        } 
        return $out; 

 function is_utf8($str)
{
  return preg_match('//u', $str);
}

?>

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
微信公众号新关注后自动回复8条图文外连完整PHP源码
微信公众号新关注后自动回复8条图文外连完整PHP源码,可以用此源码直行涨粉其它号
微信公众平台消息自动回复+图文自动php
微信公众平台消息自动回复+图文自动php。简答的基础案例代码,即拿即用!
微信公众号添加关注后自动回复图文信息
登录到微信公众号的后台后,在左侧找到自动回复的按钮,并点击进入。如果只是想在公众号被关注后自动推送纯文字不含图片的的信息的话,直接在右侧被添加自动回复一项下面设置就可以了。如果希望回复的是图文信息,那么接着往下看。 点击关键词自动回复,在出现的页面中点击下部的添加规则按钮。 步骤阅读 在规则名后的输入框中输入规则名称,名称可以任意,
微信公众号首次关注自动回复图文消息
一、 进入关键词自动回复添加规则 二、 修改规则名为任意字符,如“图文”(必填) 三、 添加关键词,输入代码 “Hello2BizUser”,点击确定 四、 点击图文符号,并勾选所需推送图文 五、 点击保存(可能会出现短暂白屏,属正常现象)
关于微信自动回复图文消息
回复图文消息需要在前台页面多加入几个字段,标题,内容,访问地址......我们需要建一个news表,用来储存表单提交的数据,回复的关键字依然放在rlue表中。在后台写一个方法replynews,代码如下:public function replyNews(){ if(IS_GET){ $this-&amp;gt;display(); }else{ $result=I('post.');...
微信公众号首次关注自动回复图文信息
微信公众号首次关注回复图文信息配置步骤 1、登录微信公众号 2、在右侧菜单栏,单击《自动回复》 [img]http://dl2.iteye.com/upload/attachment/0118/4146/a8f2809b-e24f-3924-8df5-e073ee8102a3.png[/img] 3、在《被添加自动...
微信公众号实现回复图文消息
图文消息的主要参数说明 通过微信官方的消息接口指南,可以看到对图文消息的参数介绍,如下图所示: 从上图可以了解到: 1、图文消息的个数限制为10,也就是图文中ArticleCount的值(图文消息的个数,限制在10条以内) 2、对于图文消息,第一条图文的图片显示为大图,其他图文的图片显示为小图。 3、第一条图文的图片大小建议为640*320,其他图文的图片建议为80*80 下面开始...
微信开发之自动回复图文消息
基于 laravel框架的微信公众号的自动回复功能。主要是图文消息和文本类型
自动回复图文消息
在微信公众号上,我们发送不同的关键字可以得到不同的回复,例如文本,图片,图文。那么我们就说说图文是怎么实现的吧。调用借口https 请求方式: POST https://api.weixin.qq.com/cgi-bin/material/add_news?access_token=ACCESS_TOKEN回复图文的控制器“articles”:[{ “title”: TITLE, “thumb...
微信公众号添加关注后自动回复图文信息(素材)
公众号在被添加关注后其实不仅可以回复单纯的文字,还有一个效果更好的方式是直接回复图文,在图文信息中传达你的感谢和说明一些公众号的情况。那么微信公众号添加关注后怎么自动回复图文信息?下面小编就为大家介绍一下,一起来看看吧! 方法/步骤 1、登录到微信公众号的后台后,在左侧找到自动回复的按钮,并点击进入。如果只是想在公众号被关注后自动推送纯文字不含图片的的信息的话,直接在右侧被添加自动
微信关注 自动回复 关注消息 php
&amp;lt;?phpheader(&quot;Content-type: text/html; charset=utf-8&quot;); $nonce = $_GET['nonce'];$token = 'winxin';$timestamp = $_GET['timestamp'];if (isset($_GET['echostr'])) {    if (bindServerCheck()) {        ec...
微信公众号开发--关注后自动回复(Java记录篇)
转载自 http://blog.csdn.net/lyq8479/article/details/8944988 文中所用到的jar dom4j XStream的jar包 扫描下方二维码可关注 你我杂志刊 关注或者 微信搜索公众号 你我杂志刊 开发者通过signature对请求进行校验,若确认此次校验来自微信服务器,请原样返回echostr参数内容,则接入成功,否则接入失败! 打开IDE
微信公众平台消息接口开发(26)从Hello2BizUser文本到subscribe事件
微信公众平台 微信公众平台开发模式 消息接口 企业微信公众平台 Hello2BizUser subscribe 订阅事件 作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/archive/2013/04/01/weixin-if26-subscribe.html   微信公众平台由于接口升级,将产生以下变更。新用户订阅,将由之前推送一条“Hello2BizU
【微信开发】公众号自动回复文字和图文链接
需求在公众号内的输入任意文字,文字相关的第三方网站链接实现简单后台设置我们在微信公众平台上,是可以进行简单的自定义消息回复的。这里的显然不能满足我们的需求。配置服务器配置域名略配置测试服务器略。和一般我们配置项目没有区别,所以不再赘述。本次我们的测试域名是 http://wxtest.coderfix.cn/index.php验证Token在微信的公众后台的开发 / 基本配置 / 填写服务器配置中我
微信公众号二次开发实现自动回复文字,图片,图文功能
微信公众号二次开发实现自动回复文字,图片,图文功能自动回复文字或图片:      表单里需要有关键字和内容。但就这两个字段也需要在两个数据表里分别显示,因为要提前准备字段内容里有可能是图片,图文等等类型。所以数据库里需要建一个回复类型表:例如mp_reply_text,mp_reply_image,mp_reply_news....,另一个建立公众号响应规则表:例如mp_reply_rule。这两...
微信公众平台开发者模式(2)JAVA自动回复文本消息及多图文消息
数据流向 ———–> ———–> 用户 微信端 后台服务器 <———– <———– 成功接入微信端后 接受用户发送的xml消息,解析为实体对象,处理后再转成xml格式的数据发送给微信端
微信公众平台 JAVA开发代码(实现菜单,自动回复,关注事件等)
微信公众平台,开发者模式下的Java实现。实现菜单,自动回复,关注事件等!利用SpringMVC框架实现。如有疑问,可以关注我的博客~
关于微信公众号自动回复文本、图片以及图文
1.微信公众号自动回复文本:       首先我们应该增加reply_id以及内容(content)到数据表rh_mp_reply_text,然后根据reply_id查找表rh_mp_rule的信息关键字。然后我们在回复信息的那个方法里写入以下代码:        case 'text': $reply=M('mp_reply_t...
Hello2BizUser的方法失效了之后,如何设置微信公众号关注后自动回复图文消息和自定义链接?
Hello2BizUser的方法失效了之后,如何设置微信公众号关注后自动回复图文消息和自定义链接? 导言 Hello2BizUser的方法失效了之后,如何设置微信公众号关注后自动回复图文消息和自定义链接?通过网站:open.vip666.cloud,简单2步,让公众号自动回复图文内容。 不需要懂得抓包、编程、开发。 文盲也能使用的方法! 正文 第一步:在微信公众平台准备好素材,打开网站并授权 1、...
微信公众号自动回复图片信息
1、微信公众号自动回复图片消息—回复用户发送过来的图片 &amp;amp;lt;xml&amp;amp;gt; &amp;amp;lt;ToUserName&amp;amp;gt;&amp;amp;lt; ![CDATA[toUser] ]&amp;amp;gt; &amp;amp;lt;/ToUserName&amp;amp;gt; &amp;amp;lt;FromUserName&amp;amp;gt;&amp;amp;lt; ![CDATA[fromUser] ]&am
公众号设置关键字自动回复图文
设置自动回复,首先你要建立两个表,让两个表通过一个字段(reply_id)进行链接,然后在两个表设置关键字和回复的内容即可。。。一,文字回复首先你要先进行链接显示的页面然后就需要根据页面里面的字段在后端用方法进行添加(添加到2个不同的数据表中)在该页面的后面写JS代码进行控制(即添加成功后更新该页面)最后在LaneWeChat里面的wechatrequest.lib.php文件编写链接表和回复的内...
关于微信开发的自动回复之图文消息
//回复图文 public function addNews(){ $mp=$this-&amp;gt;mp; $keyword=I('post.keyword'); $title=I('post.title'); $description=I('post.content'); $url=I('post.url'); //相对路径-&amp;gt;绝对路径 $file=realpat...
微信公众号开发——关注公众号自动回复
我们知道一旦使用开发者模式,我们就无法使用公众号平台中的自动回复功能,也就是关注自动回复功能只有自己写才可以。 如图所示,我们无法直接使用此功能。那么接着上一个博客,我们完成了关键词自动回复功能,博文地址如下: http://blog.csdn.net/karry_zzj/article/details/78451901实现自动回复的机制就是: 一旦用户给公众号一个触发(有可能发了一段文字
微信开发(PHP实现订阅号的公众号配置和自动回复)
    首先在微信公众平台(网址:https://mp.weixin.qq.com)申请一个订阅号,然后在开发里找到开发者工具点击公众平台测试账号,在测试账号内进行微信开发实验。    1. 设置一个自己的有效的域名网址和TOKEN(就是暗号),TOKEN一定要与PHP代码中的TOKEN验证一致否则会一直配置失败(写有这段代码的文件一定要传到有效的域名网址内。与设置的网址必须相同)。    下面是...
怎样自动回复文字、 图文 、图片 消息?
关注过微信公众号的都知道,当你输入一个关键字,会有相应的内容回复,有可能是文字,有可能是图片,也有可能是图文,作为程序员这些都是我们要做的,所以接下来要为大家介绍一下自动回复文字图片以及图文消息的相关代码。首先我们需要引进一个框架,通过这个框架,我们可以更容易,更简单一些。那就是LaneWeChat,没有的可以上网下载一下。新建一个AutoreplayController.class.php文件,...
【微信公众号开发】自我学习第二章:关注事件触发的自动回复
新用户关注微信公众平台,将产生一个订阅事件,即subscribe事件,默认代码中没有对这一事件进行相应回复处理。 在新用户关注公众平台后,可能想知道该平台提供了哪些功能,以及怎样使用该平台,通俗一点讲就是该平台的“使用说明书”。例如下图两个服务号的处理: 微信目前提供了五种消息类型,分别为: 文本消息(text); 图片消息(image); 地理位置消息(locat
设置微信自动回复,默认回复及推送模板消息
前一篇文章已经说明基础的一些配置(很基础的)SDK有很多类库具体使用请参考源码1.默认回复在自定义MessageHandler类找到DefaultResponseMessage方法,如果没有自行重写父类方法代码如下 /// &amp;lt;summary&amp;gt; /// 默认回复 /// &amp;lt;/summary&amp;gt; /// &amp;lt;param name...
tp5微信开发(二) ---- 微信关键字自动回复,图文回复,关注自动回复
关于微信接入第三方域名进行业务开发的相关说明已在另外一篇做了说明,这里不做赘述,接入步骤请移步 https://blog.csdn.net/qq_27987023/article/details/82861521 本篇示范微信交互过程中的几个基础事件,主要判断标准参数为$postObj-&amp;gt;MsgType,分别介绍当用户对公众号上传一个图片,回复一个文本以及关注事件的几个推送,其他诸如音乐...
微信公众号验证token+关注回复+关键字回复+单图文回复
1. 首先登陆微信公众号开启开发者模式,配置基本信息2. 验证tokenpublic function validToken() { $timestamp = $_GET['timestamp']; $nonce = $_GET['nonce']; $token = 'weixin';//要和上面配置的token令牌一样 $signature
thinkphp框架下的微信验证、关注回复图文,文本、向用户推送消息、首次登录入库或更新用户资料等
1.thinkphp框架下的微信验证、关注回复图文,文本、向用户推送消息、首次登录入库或更新用户资料等 2.代码很不规范,以后再改了,先实现了 多图文正在做。。。。。。。。。。。。。。。。。。。 <?php /* * 微信端验证 */ class WechatAction extends Action { private $member_nums = 0; /*
微信公众号之自动回复文字 -- PHP
  首先得设置一个 可以接受 微信服务器 发过来 的东西的 无权限  的接收信息的网址 怎么设置自己去官方文档上看看 微信公众号开发文档链接   然后微信 会 发个东西来 验证一下你 的这个网址是否正确 具体验证操作代码如下 /**      * 微信接入      */     function sss() {         //$this-&amp;gt;responseMsg(); ...
node(koa)完成微信公众号自动回复功能
首先需要在微信公众平台 - 基础设置 - 设置服务器地址 配置服务器地址时可能出现“参数错误,。。。。”的情况,可能是因为域名被拦截,不能使用。 如果前端人员进行测试,可以使用ngrok,花生壳实现内网穿透,ip暴露出去,本人觉得花生壳相对稳定,推荐使用,但是需要花钱开通如果前端人员进行测试,可以使用ngrok,花生壳实现内网穿透,ip暴露出去,本人觉得花生壳相对稳定,推荐使用,但是需要花...
springMVC调微信接口实现关注时消息回复和自动回复功能
微信一直是一个比较热门的词汇,今天我主要简单的搭建一下springMVC版本的微信接口调用 废话不多说,贴代码 RequestWeiXinWXY.java package com.beijing.wei.weixin.weixingyu; import java.io.IOException; import java.io.PrintWriter; import javax.servle
asp版微信开发项目示例:网站与微信公众账号的自动交流回复
目前Senparc.Weixin.MP已支持微信5.0 API中所有接口(包括自定义菜单)。查看官方API 文本测试 随意输入文本信息,系统将自动回复一条包含原文的文本信息。 如果连续发送多条信息,系统会自动记录通讯上的下文,直到超过规定时间,记录自动清空。 位置测试 发送一条位置信息,系统将自动回复详细的位置信息图片数据及一条图文链接。 图片测试 发送一张图片,系统将自动回复一条带链接的图文信息。 语音测试 发送一条语音信息,系统将自动回复一条音乐格式信息。 订阅测试 订阅(关注)账号的第一时间,系统将发送一条欢迎信息(等同于之前的Hello2BizUser)。 客户端约束测试 发送文字信息【约束】,进行测试。 自定义菜单测试 点击自定菜单进行测试。
微信公众号简单开发(6)图片消息
开发前说明: 我们需要用到 StreamReader 所以需要引用:using System.IO; 如果我们发现,我们的用户,发送图片消息到公众号。我们就针对图片消息进行处。 首先我们看看官方文档。 &amp;amp;amp;lt;xml&amp;amp;amp;gt; &amp;amp;amp;lt;ToUserName&amp;amp;amp;gt;&amp;amp;amp;lt; ![CDATA[toUser] ]&amp;amp;amp;gt;&amp;amp;amp;lt;/ToUserNam
使用Java语言开发微信公众平台(三)——被关注回复与关键词回复
在上一篇文章中,我们实现了文本消息的接收与响应。可以在用户发送任何内容的时候,回复一段固定的文字。本章节中,我们将对上一章节的代码进行适当的完善,同时实现【被关注回复与关键词回复】功能。 一、微信可提供的消息类型 在上一篇文章中,在我们的Servalet中,我们有这样的一段代码:   我们说这是用于判断接收的消息类型是否为text,即是否为文本消息时,将用户发送的给信息拼接后返回。但这个这
微信公众号--开发模式之用户关注后自动回复(Java实现)
微信公众号开发–关注后自动回复(Java记录篇) 最终效果如下:
JAVA微信公众号开发之自动回复消息与图片
JAVA微信公众号开发之自动回复消息与图片
如何实现微信公众号自动回复消息(回复文本,图片或者消息)
首先,创建四张数据表   rh_mp_reply_text(用来存放回复的文本)                       rh_mp_reply_image(用来存放回复的图片)                       rh_mp_reply_news(用来存放回复的消息)                       rh_mp_rule(用来存放关键字,回复的类型等)应先写三种方法(re...
微信开发实战(5)—粉丝关注开发者公众号时,自动回复消息
上篇文章主要介绍了URL、Token认证,以及使用免费的新浪SAE服务器搭建公众号的web应用。相信按照文章讲解,开发者们已经成功地完成了开发者公众号的配置。 上篇文章提到,URL还有一个作用:认证通过之后,URL就作为开发者服务器与微信服务器之间互动通信的桥梁。本篇文章就来实现此功能:关注开发者号时,自动回复文本消息。 一、URL的POST方法 如果你看了WxApiContro
文章热词 微信开发教程 机器学习 机器学习课程 机器学习教程 深度学习视频教程
相关热词 c#微信关注后才能看文章 c#关注后获取用户信息 c# 微信扫码关注 python大神教程 python自动回复教程