(提示:需要有服务器或云虚拟机)

一开始不明白公众号不是可以这样管理吗?

              

那么为什么用开发平台进行公众号开发,官方文档是这样说的

为了识别用户,每个用户针对每个公众号会产生一个安全的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微信公众号开发之基本配置的更多相关文章

  1. 3.微信公众号开发:配置与微信公众平台服务器交互的URL接口地址

    微信开发基本原理: 1.首先有3个对象 分别是微信用户端 微信公众平台服务器 开发者服务器(也就是放自己代码的服务器) 三者间互相交互 2.微信公众平台服务器 充当中间者角色 (以被动回复消息为例) ...

  2. python之微信公众号开发(基本配置和校验)

    前言 最近有微信公众号开发的业务,以前没有用python做过微信公众号开发,记录一下自己的学习和开发历程,共勉! 公众号类型 订阅号 普通订阅号 认证订阅号 服务号 普通服务号 认证服务号 服务方式 ...

  3. 微信公众号开发(一)--验证服务器地址的Java实现

    现在主流上都用php写微信公众号后台,其实作为后端语言之一的java也可以实现. 这篇文章将对验证服务器地址这一步做出实现. 参考资料:1.慕课网-<初识java微信公众号开发>,2.微信 ...

  4. C#微信公众号开发系列教程二(新手接入指南)

    http://www.cnblogs.com/zskbll/p/4093954.html 此系列前面已经更新了两篇博文了,都是微信开发的前期准备工作,现在切入正题,本篇讲解新手接入的步骤与方法,大神可 ...

  5. 微信公众号开发系列教程一(调试环境部署续:vs远程调试)

    http://www.cnblogs.com/zskbll/p/4080328.html 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试 ...

  6. NET微信公众号开发-5.0微信支付(待测试)

    开发前准备. 1.0微信支付官方开发者文档 2.0官方demo下载 我们用c#所以选择.net版本 不过这个官方的demo根本跑步起来 3.0官方demo运行起来解决方案 4.0微信支付官方.net版 ...

  7. .NET开发者如何愉快的进行微信公众号开发

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:这篇文章只是一个如何提高开发效率的简单指导和记录,不会涉及具体的微信公众号开发内容. ...

  8. 微信公众号开发之被逼学web服务端1-----使用SecureCRT连接Linux服务器

    做Android的进新公司后安排做微信公众号开发,这基本是后台和前端的活都要由小白的我来做,这两天基本成鸭子了,被填的满满的,却还是不够,博文仅作记录,希望能给后来的小白一点参考吧 今天做的是如何配置 ...

  9. .net微信公众号开发——消息与事件

    作者:王先荣    本文介绍如何处理微信公众号开发中的消息与事件,包括:(1)消息(事件)概况:(2)验证消息的真实性:(3)解析消息:(4)被动回复消息:(5)发送其他消息.    开源项目地址:h ...

随机推荐

  1. DevExpress 控件使用菜单栏之BarManager

    DevExpress 开发的控件有很强的实力,不仅功能丰富,应用简便,而且界面华丽,更可方便定制.对于编程人员来说是个不错的选择.它的菜单栏控件更具代表,完全可以替代开发环境提供的基本控件,而让您编写 ...

  2. JSON字符串互相转换的三种方式和性能比较

    C# 对象与JSON字符串互相转换的三种方式 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. 关于内存对象和JSON字符串的相互转换, ...

  3. 谈谈 数据中心SOA 架构

    为什么要讨论 数据中心SOA 架构呢? 请参考我写的另外一篇文章  <论 微服务 和 Entity Framework 对数据的割裂>    https://www.cnblogs.com ...

  4. flume简介

    组件介绍: 代理 Flume Agent Flume内部有一个或者多个Agent 每一个Agent是一个独立的守护进程(JVM) 从客户端哪儿接收收集,或者从其他的Agent哪儿接收,然后迅速的将获取 ...

  5. laravel 获取上一条insert语句产生的id

    <?php //頭部引入DB類 use Illuminate\Support\Facades\DB; //在方法中獲取获取上一条insert语句产生的id $id = DB::getPdo()- ...

  6. eclipse中如何去掉复制代码有行号的数字

    当我想查找别人资料,想复制别人的代码,但别人的代码中序号行数数字,怎么能快速去除呢,如以下截图所示  首先将你的带有行号的代码拷到一个类中.你会看到一大堆的错误,不用急.   注意将视图切换到java ...

  7. supervisor的安装部署及集群管理

    supervisor的安装部署及集群管理 supervisor官网:http://www.supervisord.org/ 参考链接: http://blog.csdn.net/xyang81/art ...

  8. ubuntu-docker入门到放弃(五)docker网络管理

    查看docker宿主机的网卡信息我们会发现,有一个docker0的网卡,这个网卡就是用于跟docker容器进行通讯的,这个网段跟我们docker容器的网段是一样的: #ifconfig docker容 ...

  9. java线程调度原则

    线程的调度采用占先原则,优先级越高的线程越优先执行.每个JAVA线程优先级有设置在常数1-10的范围,默认值是5.但优先级高并不代表能独自占用执行时间片,而是优先级越高得到越多的执行时间片,反之,优先 ...

  10. 限制input输入字符数(中文2个字符,英文1个字符)

    input的maxlength可以限制input的输入的字符数,但是是字符串的长度,相当于判断str.length;然而经常会有中文字符算2个字符英文算1个字符的需求,目前只能通过编写代码来实现. & ...