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

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

              

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

为了识别用户,每个用户针对每个公众号会产生一个安全的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. 原码,反码与补码的概念以及Java中数的存储方式

    *原码,反码,补码必须满8位,不足在前填0: 1,原码:用符号位和数值位表示一个带符号的数 +  -> 0                 -   -> 1     表示数的范围-127~ ...

  2. .Net Core 应用方向 图谱

    .Net Core 应用方向 图谱,  如下图 : 大规模并行计算 是 大数据 和 人工智能 的 基础, 是 未来 大计算能力 的 基础, 网格计算 是 未来 大计算能力 的 一个 分支 . 所以, ...

  3. kafka 的 docker 镜像使用

    Kafka 还没有提供官方的镜像(2019.01.29),能找到的都是一些社区维护的镜像包. 这里使用这个镜像:https://hub.docker.com/r/spotify/kafka

  4. c#多线程与委托(转)

    一:线程在.net中提供了两种启动线程的方式,一种是不带参数的启动方式,另一种是带参数的启动的方式.不带参数的启动方式 如果启动参数时无需其它额外的信息,可以使用ThreadStart来实例化Thre ...

  5. ps 和 top 的cpu的区别

    cpu的计算 ps cpu的定义 man page中给出的定义: cpu utilization of the process in "##.#" format. Currentl ...

  6. Linux shell 将字符串分割成数组

    原文链接:http://1985wanggang.blog.163.com/blog/static/776383320121745626320/ a="one,two,three,four& ...

  7. Scrapy环境安装

    开始安装前,建议安装Visual C++ 2015 Build Tools,否则会一直出现如下提示: 下载地址:http://landinghub.visualstudio.com/visual-cp ...

  8. vue中为对象添加值的问题

    demo: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  9. Git将本地库内容推送到远程

    本地库与远程库的交互 1 .将本地库的内容推送到远程库 A.创建一个本地仓库 $ mkdir gitdemo B.初始化本地仓库 $ git init C.项目根目录下创建 .gitignore 文件 ...

  10. 【剑指offer】规则二维数组查找

    在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路: ...