一、服务器配置

申请微信公众平台,进入管理界面。开发 -> 基本配置,在服务器配置面板中点击修改配置,URL是你的服务器地址(http://myserver/index.php),Token随便设置一个字符串(hello2017),EncodingAESKey随机生成,消息加密方式选择“明文模式”。

二、测试

在web服务器访问目录下创建index.php文件,内容如下:

define("TOKEN", "YoonPer"); //TOKEN值

$wechatObj = new wechat();

$wechatObj->valid();

class wechat {

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;

$tmpArr = array($token, $timestamp, $nonce);

sort($tmpArr);

$tmpStr = implode( $tmpArr );

$tmpStr = sha1( $tmpStr );

if( $tmpStr == $signature ) {

return true;

} else {

return false;

}

}

}

?>

点击提交,验证成功的话回到配置界面,点击“开启”。如果提示“token验证失败”,可以在echo $echoStr;语句前加入ob_clean()。因为在输出$echoStr之前可能会有一些缓存内容,需要先清除,否则影响微信公众平台的识别。

三、通信

微信公众平台与后台服务器采用xml格式通信:

粉丝发给公众号消息格式

1460537339

6272960105994287618

公众号发给粉丝消息格式

1460541339

例子:

// index.php [ 微信公众平台接口 ]

$wechatObj = new wechat();

$wechatObj->responseMsg();

class wechat {

public function responseMsg() {

//---------- 接 收 数 据 ---------- //

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //获取POST数据

//用SimpleXML解析POST过来的XML数据

$postObj = simplexml_load_string($postStr,'SimpleXMLElement',LIBXML_NOCDATA);

$fromUsername = $postObj->FromUserName; //获取发送方帐号(OpenID)

$toUsername = $postObj->ToUserName; //获取接收方账号

$keyword = trim($postObj->Content); //获取消息内容

$time = time(); //获取当前时间戳

//---------- 返 回 数 据 ---------- //

//返回消息模板

$textTpl = "

%s

0

";

$msgType = "text"; //消息类型

$contentStr = 'hello'; //返回消息内容

//格式化消息模板

$resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);

echo $resultStr; //输出结果

}

}

?>

本作品采用《CC 协议》,转载必须注明作者和本文链接

php 微信公众号开发,基于 PHP 的微信公众平台开发相关推荐

  1. 微信公众号可快速创建“门店小程序” 不用开发

    "门店小程序"是啥?"门店小程序"是小程序的一项新能力.无需开发,商户就可在微信公众号后台快速创建"门店小程序".这个小程序类似一张&quo ...

  2. 微信公众号-java上传图片素材到微信服务器基于事件推送两条消息

    微信公众号-java上传图片素材到微信服务器&基于事件推送两条消息 场景:基于微信扫码登录/关注事件,向用户推送两条消息. 分析:翻阅了微信开发者文档和一些其他资料发现,公众号针对用户关注/扫 ...

  3. ngrok内网穿透工具搭建,方便微信公众号,小程序、钉钉等开发【已投入使用】

    前言:微信公众号,小程序.钉钉等开发需要内网穿透工具. 1.经过不断的摸索和调试,完成ngrok内网穿透的工具的搭建,对于微信公众号,小程序.钉钉等开发提供便利性. 2.搭建环境Linux cento ...

  4. 微信小程序使用微信公众号的模板消息进行消息推送开发流程

    微信小程序使用微信公众号的模板消息进行消息推送开发流程 微信公众号服务号,微信公众号订阅号,微信公众号开发者平台,微信小程序 这些的账号都是独立的不能共用 微信开放平台开发者资质认证审核费用为300元 ...

  5. NET C#微信个人号 HOOK 基于微信2.8.0版本 全接口 微信机器人 淘宝客 二次开发

    pc微信客户端 2.8.0 最新版本 hook 可二次开发 c#调用 2020年03月10日 Update 经过大量测试,现升级协议,最新支持微信PC2.8.0.106.新增了http回调域名配置. ...

  6. 公众号openid实时存储mysql_微信--高效解决token及授权用户openid的持久化处理办法...

    摘要 关于微信开发的话题,例子确实已经有不少,但大部分都是人云亦云,很多小细节或者需要注意的地方却大多没有讲清楚,这令很多刚开始开发的人感觉大很迷茫.而我今天要说的话题,主要着眼于两个方面. 一:如何 ...

  7. 搜索python设计题的微信公众号_appium+python自动化42-微信公众号 (可能以后会遇到也遇到切换不了webview的问题 记录再此 还没试)...

    前言 本篇介绍如何在微信公众号上自动化测试,以操作我的个人公众号:yoyoketang为例,没关注的,先微信关注了,再跟着操作 环境准备: python 3.6 appium 1.7以上版本 微信6. ...

  8. php微信公众号支付实例教程,php微信支付之公众号支付功能

    这篇文章主要为大家详细介绍了php微信支付之公众号支付功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 网上的很多PHP微信扫码支付接入教程都颇为复杂,且需要配置和引入较多的文件,本人通过整理后 ...

  9. 关于微信公众号页面获取code进行微信授权登录

    关于微信公众号页面获取code进行微信授权登录 前言 提示:本文章为个人平时开发中的一些坑,对于新手可以耐心看一下,如果您感觉可以的话,请点个小星星再走吧,多谢了~~~ 提示:以下是本篇文章正文内容( ...

  10. 未来应用陈鸿:被微信封掉公众号后怎么办?给微信创业者的10点真诚建议

    责编:陈秋歌,关注前端开发领域,寻求报道或者投稿请发邮件chenqg#csdn.net. 欢迎加入"CSDN前端开发者"微信群,参与热点.难点技术交流.请加群主微信「Rachel_ ...

最新文章

  1. 新型混合共识机制及抗量子特性的 Hcash 主链测试链即将上线
  2. zencart 1.5.4 安装问题
  3. SSISDB6:参数和环境变量
  4. python多个装饰器执行顺序_Python面试题之多个装饰器执行顺序
  5. 一文带你吃透Vue生命周期(结合案例通俗易懂)
  6. 热烈庆祝我主编的计算机四级等级考试书籍出版!
  7. Visual Studio 2019下用 C# 实现 Hill2 二阶希尔密码 的加密、解密 GUI界面
  8. 计算机学会a类论文是sci吗,sci分区和ccf分区的区别
  9. STM32F0xx系列 基于LL库的Flash模拟EEPROM
  10. 仿淘宝Banner:左右滑动ViewPager+最后一张滑动查看详情
  11. 走进C++11(四十)最宽松的顺序 memory_order_relaxed 内存模型(三)
  12. 云计算——交换机基本原理与配置
  13. Swift-Moya 源码解析
  14. VR乒乓球项目Unity3D 开发经验整理,1总纲
  15. 用sync toy做增量备份
  16. 从BIM到GIS(高级)| IFC LOD 200转LOD 3 CityGML
  17. MEC的云边协同分析
  18. 微信强制加入群软件!易语言协议版,公开源码
  19. db.properties 之 root 之空格
  20. html怎么把按钮做成可以百度,网站网页中加入各种分享按钮功能 百度分享

热门文章

  1. 【重识云原生】第六章容器6.3.5节——Controller Manager概述
  2. (HTTP 503) (Request-ID: req-4f56de6f-d29c-4c44-aed3-e6ef8253384a)
  3. unity3d Android客户端与PC服务器实现Socket通信(wifi)
  4. 自动透视校正为四边形对象
  5. Chapter 6-Blurring Things Up之Using Alpha Channel
  6. learning java AWT Pannel
  7. mysql数据库设置密码
  8. 交叉表 mysql_mysql交叉表查询解决方案整理
  9. Windows下的MySQL实例没有mysql.user表#Olivia丶长歌#
  10. 安卓一体机开发板,安卓主板广告机