PHP memcache在微信公众平台的应用方法示例

本文实例讲述了PHP memcache在微信公众平台的应用方法。分享给大家供大家参考,具体如下:

现在微信公众平台大多数互动都是用户发送信息->微信分析并返回结果,这种模式功能比较单一。这里介绍另一种互动模式:用户发送信息->微信分析信息并提示下一步操作->用户发送信息->.......->微信返回结果。本文介绍运用sae里的memcache实现以上模式。

思路:

1、用户发送消息,微信会记录用户唯一的openid,将它的值赋予$fromUsername。

2、用memcache保存两个数据,一个为上一次用户发送的消息,另一个随便定义一个值(示例中为1),做判断用户动作之用。

3、用$fromUsername 作为key定位。

示例代码如下:

<?php
/**
 * wechat php test
 */
//调用mecache
$mc=memcache_init();
//接受消息,直接用微信官方的示例代码
$postStr = $GLOBALS["HTTP_RAW_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>";
   //定义变量last_step,记录上一次动作
   $last_step=$mc->get($fromUsername."step");
   //定义变量last_data,记录上一次数据
   $last_data=$mc->get($fromUsername."data");
   if(!empty( $keyword )){
    //判断用户动作
     if($last_step!=1){
     //将用户输入的数据保存至memcache
     $mc->set($fromUsername."data",$keyword,0,120);
     //记录用户这一次动作,值设为1
     $mc->set($fromUsername."step",1,0,120);
     $msgType = "text";
     $contentStr = "请再输入一个值:";
     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
    echo $resultStr;
    } else {
    //清空memcach动作
    $mc->delete($fromUsername."step");
    //清空memcach数据
    $mc->delete($fromUsername."data");
    $msgType = "text";
    $contentStr = "你输入的第一个值为:".$last_data."\n 第二个值为:".$keyword;
    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
    echo $resultStr;
    }
   }
  } else {
    echo "";
  }
?>

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP微信开发技巧汇总》、《PHP编码与转码操作技巧汇总》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《PHP中json格式数据操作技巧汇总》及《PHP针对XML文件操作技巧总结》

希望本文所述对大家PHP程序设计有所帮助。

时间: 2017-09-11

PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】

本文实例讲述了PHP实现微信模拟登陆并给用户发送消息的方法.分享给大家供大家参考,具体如下: <?php /* 原作者:https://github.com/itziy/wechat 修改:Server getUserFakeid函数 获取fakeid的正则匹配公式 调用方式简单说明: $arr = array( 'account' => '公众平台帐号', 'password' => '密码' ); $w = new Weixin($arr); $w->getAllUserInf

基于php的微信公众平台开发入门实例

本文实例讲述了基于php的微信公众平台开发方法.分享给大家供大家参考.具体如下: 最近在做微信公众平台开发,一口气写了二十几个功能,挺有意思的- 今天来分享一下开发经验~ 微信公众平台提供的接口很简单,先看看消息交互流程: 说的通俗一些,用户使用微信发送消息 -> 微信将数据发送给开发者 -> 开发者处理消息并返回数据至微信 -> 微信把返回数据发送给用户,期间数据交互通过XML完成,就这么简单.   下面写个实例,开发微信智能聊天机器人:   1. 注册微信公众平台账号 微信公众平台:

php版微信公众平台实现预约提交后发送email的方法

本文实例讲述了php版微信公众平台实现预约提交后发送email的方法.分享给大家供大家参考,具体如下: 其实这种发送邮件是非常的简单了我们只要接受由用户提交过来的邮箱地址,然后再由php的邮件控制进行邮件发送了,下面看一个综合开发例子. 首先yyuc框架是支持发送email的,在yyuc/yyuc.php 上加上如下代码: require_once(YYUC_LIB.'plugin/SendMail.php'); $sendMail = new SendMail(); 在wx conf.php

PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法

本文实例讲述了PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法.分享给大家供大家参考,具体如下: 用户发送关键字,搜索相应的图文进行回复. 模拟登陆就不说了 右键看"已发送"图片页的源代码,图文部分是json格式的. 复制代码 代码如下: {"msg_item":[{"id":80630,"type":9,"fakeid":"2397007301","nick_n

PHP微信公众号自动发送红包API

本文实例为大家分享了PHP微信公众号自动发送红包API代码,分享给大家供大家参考.具体如下: 贴出核心接口代码至于数据自己填写,接口测试OK wechat_packet.php <!--?php /** * 发送红包接口 * Created by PhpStorm. * User: ADKi * Date: 2016/4/25 0025 * Time: 15:25 */ class wechat_packet{ private $url = 'https://api.mch.weixin.qq.

php实现发送微信模板消息的方法

本文实例讲述了php实现发送微信模板消息的方法.分享给大家供大家参考.具体如下: 该方法基于thinkphp实现实现,具体OrderPush.class.php文件如下: 复制代码 代码如下: <?php namespace Org\Weixin; /**  * Created by PhpStorm.  * User: StandOpen  * Date: 15-1-7  * Time: 9:41  */ class OrderPush {     protected $appid;    

php 微信公众平台开发模式实现多客服的实例代码

其实微信公众平台的多客服功能已经出来好久了,并且一出来的时候我就已经为自己的公众号实现了,原本以为大家都已经会了,但是今天还是有人问起这个多客服功能怎么使用,我找了下网上也没什么好的教程,今天我就给大家发一篇比较简单易懂的教程吧 在这篇微信公众平台开发教程中,我们将介绍如何使用开发模式实现多客服系统. 一.回复多客服消息 在新的微信协议中,开发模式也可以接入客服系统. 开发者如果需要让用户使用客服系统,需要在接收到用户发送的消息时,返回一个MsgType为transfer_customer_se

关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题

相信很多人会跟我一样,token验证之后,发送消息给订阅号,没有消息返回. 以下,说一下我辛苦调试得到的解决办法: 首先,token验证: 自己写的token一直验证失败,找了好久,没有发现bug.实在没办法,就用了官方的示例代码.并且通过示例代码调试,发现了一个让我吐血的bug(也不算bug): token验证貌似要求字符编码格式!!!! 官方的示例代码,直接上传到服务器,token直接过! 把官方示例代码改为UTF-8格式,再上传覆盖,token失败!失败!失败! 后来,把自己写的修改为AN

php微信公众号开发模式详解

学习步骤:分四章来讲述这部分内容,下面是每章的大致内容. 1.了解开发模式与编辑模式,开发前的一些准备. 2.开发模式用户.微信服务器.个人服务器是如何交互的.什么是接口. 3.各种接口功能的调用与实现. 4.js-SDK的调用 微信公众号开发两种模式:编辑模式和开发模式.编辑模式比较简单,你不需要操作任何的代码,只需要借助微信提供的功能来管理自己的微信公众号.这种方式开发的页面比较简单,主要用来实现文章的推送等功能.开发者模式则能通过自己的后台服务器与微信关注用户实现更多的交互作用,调用微信的

PHP实现微信公众号企业号自定义菜单接口示例

本文实例讲述了PHP实现微信公众号企业号自定义菜单接口.分享给大家供大家参考,具体如下: define(AppId, "wx666cae44xxxxxx2");//定义AppId,需要在微信公众平台申请自定义菜单后会得到 define(AppSecret, "d77026a714d443a01d0229xxxxxxxx");//定义AppSecret,需要在微信公众平台申请自定义菜单后会得到 include("menu.php");//引入微信类

验证token、回复图文\文本、推送消息的实用微信类php代码

本文实例为大家分享了用于验证token,回复图文.文本,向用户推送消息等功能的微信类,具体代码如下 <?php class Wechat{ private $data = array(); public function __construct($token){ $this -> auth($token, $wxuser) || exit; if(IS_GET){ echo($_GET['echostr']); exit; }else{ $xml = file_get_contents(&qu

Java编程调用微信接口实现图文信息推送功能

本文实例讲述了Java编程调用微信接口实现图文信息等推送功能.分享给大家供大家参考,具体如下: Java调用微信接口工具类,包含素材上传.获取素材列表.上传图文消息内的图片获取URL.图文信息推送. 微信图文信息推送因注意html代码字符串中将双引号(")替换成单引号('),不然信息页面中包含图片将无法显示且图片后面的内容也不会显示 官方文档:http://mp.weixin.qq.com/wiki/home/ StringBuilder sb=new StringBuilder(); sb.a

nodejs通过钉钉群机器人推送消息的实现代码

Intro 最近在用 nodejs 写爬虫,之前的 nodejs 爬虫代码用 js 写的,感觉可维护性太差,也没有智能提示,于是把js改用ts(typescript)重写一下,提升代码质量. 爬虫启动之后不定期会出现验证码反爬虫,需要输入验证码才能继续,于是想在需要输入验证码时推送一个消息给用户,让用户输入验证码以继续爬虫的整个流程.我们平时用钉钉办公,钉钉群有个机器人,很方便于是就实现了一个通过钉钉的群机器人实现消息推送. 实现 代码是 ts 实现的,用了 request 发起http请求,具

微信java开发之实现微信主动推送消息

1.拉取access_token2.拉取用户信息3.主动推送消息4.接口貌似要申请权限5.依赖httpclient4.2.3 和jackson 2.2.1 复制代码 代码如下: public class WeixinAPIHelper { /**  * 获取token接口  */ private String getTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=

解析iOS10中的极光推送消息的适配

iOS10发布后,发现项目中的极光推送接收消息异常了. 查了相关资料后才发现,iOS10中对于通知做了不少改变.同时也发现极光也很快更新了对应的SDK. 现在就把适配修改的做法分享一下,希望对有需要的童鞋有所帮助. 具体做法如下: 注意:必须先安装Xcode8.0版本. 一.添加相关的SKD,或framework文件 1.添加UserNotification.framework 2.更新jpush的SDK(最新版本:jpush-ios-2.1.9.a)https://www.jiguang.cn

Yii1.1框架实现PHP极光推送消息通知功能

一.下载极光推送PHP SDK,解压后放在/protected/components/目录下,如下图所示: 二.完善修改下官方的demo例子,我这里复制一份demo,改为NotifyPush.php,如下代码: <?php require dirname(__FILE__) . '/jpush-api-php-client/autoload.php'; use JPush\Client as JPush; class NotifyPush { static function pushAlias(

15行Python代码实现免费发送手机短信推送消息功能

实现的功能: 通过代码定时给手机推送短信,短信内容可以自定义文字,当然你也可以去别的网站爬取每日心灵鸡汤,天气预报或其它信息进行推送.关于爬取数据可以参考:Python40行代码实现天气预报和每日鸡汤推送 本文主要讲如何实现发送短信的功能,全部代码只用15行. 首先贴出实现的效果图,后面再分两步详细描述实现过程,第一步免费注册api接口,第二步只需要写10来行代码. 代码运行后本地收到返回的执行情况: 手机收到代码发送过来的短信截图: 实现过程: 1.免费注册获取发送短信的api接口 我们需要A

iOS点击推送消息跳转处理

当用户通过点击通知消息进入应用时 - (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions launchOptions 中会有推送消息的userInfo信息,此时我们可以通过 NSDictionary* remoteNotification = [launchOptions objectForKey:UIApplicationLaunchOp

iOS自定义推送消息提示框

看到标题你可能会觉得奇怪 推送消息提示框不是系统自己弹出来的吗? 为什么还要自己自定义呢? 因为项目需求是这样的:最近需要做 远程推送通知 和一个客服系统 包括店铺客服和官方客服两个模块 如果有新的消息推送的时候 如果用户当前不在客服界面的时候  要求无论是在app前台 还是app退到后台 顶部都要弹出系统的那种消息提示框 这样的需求 我们就只能自定义一个在app内 弹出消息提示框 实现步骤如下: 1.我们自定义一个view 为 STPushView 推送消息的提示框view  #import

iOS 点击推送消息跳到应用指定页面的实例

iOS 点击推送消息跳到应用指定页面 现在的推送用的越来越频繁,几乎每个应用都开始用到了.其实又有几个用户会去看推送消息呢?没办法,产品经理最大啊,只是苦了我们这一帮程序员啊!闲话少说,进入正题.兄弟我用的是极光推送,自然是以极光推送为例了.   现在点击推送消息,有两种跳转方式:1.打开应用,跳转到应用首页:2.打开应用,跳转到指定页面. ​第一种,你什么都不用设置,只要注册极光应用就可以.这里就不写怎么注册极光应用了,可以参考官方文档,写的很详细. ​ 第二种,重头戏来了. // APP未运