PHP微信公众号开发之基本配置
(提示:需要有服务器或云虚拟机)
一开始不明白公众号不是可以这样管理吗?
那么为什么用开发平台进行公众号开发,官方文档是这样说的
- 为了识别用户,每个用户针对每个公众号会产生一个安全的OpenID,
- 如果需要在多公众号、移动应用之间做用户共通,则需前往微信开放平
- 台,将这些公众号和应用绑定到一个开放平台账号下,绑定后,一个用
- 户虽然对多个公众号和应用有多个不同的OpenID,但他对所有这些同
- 一开放平台账号下的公众号和应用,只有一个UnionID,可以在用户管
- 理-获取用户基本信息(UnionID机制)文档了解详情。
下面开始基本配置吧
下面这些都要设置的
(以上信息建议复制一份到文本文档中)
当然要上传相应文件到服务器上
代码如下:
- 1 define("TOKEN", "hello");//令牌改成自己的
- 2
- 3 $wechatObj = new wechatCallbackapiTest();
- 4
- 5 $wechatObj->valid();
- 6
- 7
- 8
- 9 class wechatCallbackapiTest
- 10
- 11 {
- 12
- 13
- 14 public function valid()
- 15
- 16 {
- 17
- 18 $echoStr = $_GET["echostr"];
- 19
- 20
- 21
- 22 //valid signature , option
- 23
- 24 if($this->checkSignature()){
- 25
- 26 echo $echoStr;
- 27
- 28 exit;
- 29
- 30 }
- 31
- 32 }
- 33
- 34
- 35
- 36 public function responseMsg()
- 37
- 38 {
- 39
- 40 //get post data, May be due to the different environments
- 41
- 42 $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
- 43
- 44
- 45
- 46 //extract post data
- 47
- 48 if (!empty($postStr)){
- 49
- 50
- 51
- 52 $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
- 53
- 54 $fromUsername = $postObj->FromUserName;
- 55
- 56 $toUsername = $postObj->ToUserName;
- 57
- 58 $keyword = trim($postObj->Content);
- 59
- 60 $time = time();
- 61
- 62 $textTpl = "<xml>
- 63
- 64 <ToUserName><![CDATA[%s]]></ToUserName>
- 65
- 66 <FromUserName><![CDATA[%s]]></FromUserName>
- 67
- 68 <CreateTime>%s</CreateTime>
- 69
- 70 <MsgType><![CDATA[%s]]></MsgType>
- 71
- 72 <Content><![CDATA[%s]]></Content>
- 73
- 74 <FuncFlag>0</FuncFlag>
- 75
- 76 </xml>";
- 77
- 78 if(!empty( $keyword ))
- 79
- 80 {
- 81
- 82 $msgType = "text";
- 83
- 84 $contentStr = "Welcome to wechat world!";
- 85
- 86 $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
- 87
- 88 echo $resultStr;
- 89
- 90 }else{
- 91
- 92 echo "Input something...";
- 93
- 94 }
- 95
- 96
- 97
- 98 }else {
- 99
- 100 echo "";
- 101
- 102 exit;
- 103
- 104 }
- 105
- 106 }
- 107
- 108
- 109
- 110 private function checkSignature()
- 111
- 112 {
- 113
- 114 $signature = $_GET["signature"];
- 115
- 116 $timestamp = $_GET["timestamp"];
- 117
- 118 $nonce = $_GET["nonce"];
- 119
- 120
- 121
- 122 $token = TOKEN;
- 123
- 124 $tmpArr = array($token, $timestamp, $nonce);
- 125
- 126 sort($tmpArr);
- 127
- 128 $tmpStr = implode( $tmpArr );
- 129
- 130 $tmpStr = sha1( $tmpStr );
- 131
- 132
- 133
- 134 if( $tmpStr == $signature ){
- 135
- 136 return true;
- 137
- 138 }else{
- 139
- 140 return false;
- 141
- 142 }
- 143
- 144 }
- 145
- 146 }
配置成功后,按启用,基本配置就算完成了。
PHP微信公众号开发之基本配置的更多相关文章
- 3.微信公众号开发:配置与微信公众平台服务器交互的URL接口地址
微信开发基本原理: 1.首先有3个对象 分别是微信用户端 微信公众平台服务器 开发者服务器(也就是放自己代码的服务器) 三者间互相交互 2.微信公众平台服务器 充当中间者角色 (以被动回复消息为例) ...
- python之微信公众号开发(基本配置和校验)
前言 最近有微信公众号开发的业务,以前没有用python做过微信公众号开发,记录一下自己的学习和开发历程,共勉! 公众号类型 订阅号 普通订阅号 认证订阅号 服务号 普通服务号 认证服务号 服务方式 ...
- 微信公众号开发(一)--验证服务器地址的Java实现
现在主流上都用php写微信公众号后台,其实作为后端语言之一的java也可以实现. 这篇文章将对验证服务器地址这一步做出实现. 参考资料:1.慕课网-<初识java微信公众号开发>,2.微信 ...
- C#微信公众号开发系列教程二(新手接入指南)
http://www.cnblogs.com/zskbll/p/4093954.html 此系列前面已经更新了两篇博文了,都是微信开发的前期准备工作,现在切入正题,本篇讲解新手接入的步骤与方法,大神可 ...
- 微信公众号开发系列教程一(调试环境部署续:vs远程调试)
http://www.cnblogs.com/zskbll/p/4080328.html 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试 ...
- NET微信公众号开发-5.0微信支付(待测试)
开发前准备. 1.0微信支付官方开发者文档 2.0官方demo下载 我们用c#所以选择.net版本 不过这个官方的demo根本跑步起来 3.0官方demo运行起来解决方案 4.0微信支付官方.net版 ...
- .NET开发者如何愉快的进行微信公众号开发
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:这篇文章只是一个如何提高开发效率的简单指导和记录,不会涉及具体的微信公众号开发内容. ...
- 微信公众号开发之被逼学web服务端1-----使用SecureCRT连接Linux服务器
做Android的进新公司后安排做微信公众号开发,这基本是后台和前端的活都要由小白的我来做,这两天基本成鸭子了,被填的满满的,却还是不够,博文仅作记录,希望能给后来的小白一点参考吧 今天做的是如何配置 ...
- .net微信公众号开发——消息与事件
作者:王先荣 本文介绍如何处理微信公众号开发中的消息与事件,包括:(1)消息(事件)概况:(2)验证消息的真实性:(3)解析消息:(4)被动回复消息:(5)发送其他消息. 开源项目地址:h ...
随机推荐
- 数学 它的内容,方法和意义 第二卷 (A. D. 亚历山大洛夫 著)
第五章 常微分方程 1. 绪论 2. 常系数线性微分方程 3. 微分方程的解及应注意的几个方面 4. 微分方程积分问题的几何解释.问题的推广 5. 微分方程解的存在性与唯一性方程的近似解 6. 奇点 ...
- RTSP为什么VLC播放器无法播放
rtsp_tracepoint: rtspservice.c,RTSP_state_machine, state_machine:current state is ready state curren ...
- 微软和Sun针对Java的世纪之战
1996年9月的某一天,微软浏览器部门的主管艾达姆·波茨瓦斯几经考量之后,提笔给时任微软CEO的比尔·盖茨写了一邮件,他非常恳切地提醒比尔·盖茨注意一个正在形成的威胁.他写到:”必须意识到Java不仅 ...
- 漫谈 C++ 虚函数 的 实现原理
文中讲述的原理是推理和探讨 , 和现实中的实现不一定完全相同 . C++ 的 虚函数 , 编译器 会 生成一个 虚函数表 . 虚函数表, 实际上是 编译器 在 内存 中 划定 的 一块 区域, 用于存 ...
- kafka 中的术语
出处:https://tech.meituan.com/2015/01/13/kafka-fs-design-theory.html table th:first-of-type { width: 7 ...
- httpService 和 WebService接口协议
http协议: 1.调用接口 例1:此例子传输参数为XML文本格式字符串: 将数据缓冲区上载到具有指定 URI 的资源. var url = "http://localhost:23265 ...
- C# Json数组序列化和反序列总结
1.创建json数组,例: JArray arrFile = new JArray(); arrFile.Add(new JObject() { new JProperty("FilePat ...
- centos7 使用cgroup进行资源限制
centos7中进行资源限制,使用的仍然是cgroup,只是配置接口使用的systemd. 下文将介绍如何使用systemd进行资源限制. Step1 编写unit文件 命令为my-demo.serv ...
- jQuery位置操作
position();获取当前标签相对于最近一个父标签中有positon:relative属性的位置. height();标签纯高度 innerHeight();标签内边距padding加上纯高度 o ...
- git初始化项目 以及 git常用操作
初始化项目 $ git config --global user.name "Your Name" 配置用户名 $ git config --global user.email ...