PHP技术开发微信公众平台

这篇文章主要介绍了微信公众平台的两种模式(编辑模式和开发模式)顾名思义编辑模式就是写普通的功能,开发模式具有更多的功能,下面主要是针对开发模式做介绍,需要的朋友可以参考下

下面通过图文并茂的方式介绍微信公众平台开发过程,具体内容如下:

微信公众平台有两种模式:编辑模式 和 开发模式。

普通的功能可以通过编辑模式来搞定。开发模式具有更多的功能。让我们来使用开发模式开发helloword吧

步骤如下:

第一步:先注册一个公众号(https://mp.weixin.qq.com

第二步:注册sae(http://sae.sina.com.cn/),作为你的服务器。

第三步:登录微信公众平台(https://mp.weixin.qq.com)查看开发文档并下载官方提供的demo。做适当修改。

第四步:将代码压缩成zip格式,上传到sae平台。

第五步:登录微信公众平台,进入开发者中心。开启“服务者配置”。

第六步:成功了。

开始吧:

1.先注册一个公众号(https://mp.weixin.qq.com

2.注册sae(http://sae.sina.com.cn/

注册完以后要记得进行实名认证,不然绑定到公众平台的时候,会有永远的“无法获取token”的提示。(实名认证需要3个工作日才能成功)

然后可以点击创建应用。创建后可以在下面看到。

php工程师待遇

web前端工程师

html5网站

网页游戏编程

云主机免费

进入自己创建的应用。然后点击代码管理。

php工程师待遇

网页游戏编程

html5网页模板

html5网站

免费云主机

web前端工程师

html5网站

php工程师待遇

网页游戏编程

游戏编程

3.登录微信公众平台(https://mp.weixin.qq.com

查看开发文档并下载官方提供的demo。

打开后是如下的代码:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

<?php

/**

 * wechat php test

 */

//define your token

define("TOKEN", "weixin");

$wechatObj = new wechatCallbackapiTest();

$wechatObj->valid();

class wechatCallbackapiTest

{

 public function valid()

 {

 $echoStr = $_GET["echostr"];

 //valid signature , option

 if($this->checkSignature()){

  echo $echoStr;

  exit;

 }

 }

 public function responseMsg()

 {

 //get post data, May be due to the different environments

 $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

  //extract post data

 if (!empty($postStr)){

  /* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,

   the best way is to check the validity of xml by yourself */

  libxml_disable_entity_loader(true);

   $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>";

  if(!empty( $keyword ))

  {

   $msgType = "text";

   $contentStr = "Welcome to wechat world!";

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

   echo $resultStr;

  }else{

   echo "Input something...";

  }

 }else {

  echo "";

  exit;

 }

 }

 private function checkSignature()

 {

 // you must define TOKEN by yourself

 if (!defined("TOKEN")) {

  throw new Exception(‘TOKEN is not defined!‘);

 }

 $signature = $_GET["signature"];

 $timestamp = $_GET["timestamp"];

 $nonce = $_GET["nonce"];

 $token = TOKEN;

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

 // use SORT_STRING rule

 sort($tmpArr, SORT_STRING);

 $tmpStr = implode( $tmpArr );

 $tmpStr = sha1( $tmpStr );

 if( $tmpStr == $signature ){

  return true;

 }else{

  return false;

 }

 }

}

?>

我试过,如上代码,似乎无法执行到response那一块。所以做了更改

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

<?php

/**

 * wechat php test

 */

//define your token

define("TOKEN", "weixin");

$wechatObj = new wechatCallbackapiTest();

//这里做了更改

if($_GET["echostr"]){

 $wechatObj->valid();

}else{

 $wechatObj->responseMsg();

}

class wechatCallbackapiTest

{

 public function valid()

 {

 $echoStr = $_GET["echostr"];

 //valid signature , option

 if($this->checkSignature()){

  echo $echoStr;

  exit;

 }

 }

 public function responseMsg()

 {

 //get post data, May be due to the different environments

 $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

  //extract post data

 if (!empty($postStr)){

  /* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,

   the best way is to check the validity of xml by yourself */

  libxml_disable_entity_loader(true);

   $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>";

  if(!empty( $keyword ))

  {

   $msgType = "text";

   $contentStr = "Welcome to wechat world!";

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

   echo $resultStr;

  }else{

   echo "Input something...";

  }

 }else {

  echo "";

  exit;

 }

 }

 private function checkSignature()

 {

 // you must define TOKEN by yourself

 if (!defined("TOKEN")) {

  throw new Exception(‘TOKEN is not defined!‘);

 }

 $signature = $_GET["signature"];

 $timestamp = $_GET["timestamp"];

 $nonce = $_GET["nonce"];

 $token = TOKEN;

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

 // use SORT_STRING rule

 sort($tmpArr, SORT_STRING);

 $tmpStr = implode( $tmpArr );

 $tmpStr = sha1( $tmpStr );

 if( $tmpStr == $signature ){

  return true;

 }else{

  return false;

 }

 }

}

?>

你可以将Welcome to wechat world!更改为Hello Word!

4.将代码压缩成zip格式,上传到sae平台。

点击“编辑代码”,可以看到你上传的php文件。然后右击,url查看。复制url(http://1.carlzhang.sinaapp.com/wx_carlzhang819.php)。在这里要记住在此php文件中定义的token。此处为“weixin”,可以在如下图中看到。

web前端工程师

html5网站

网页游戏编程

php工程师待遇

php工程师薪资

5.登录微信公众平台,进入开发者中心。开启“服务者配置”。url填写上一步复制的url(这里我删除了前面的1.因为我的sae默认第一版。你
可以试试,删除1,若是url访问,不报404,那就是没问题)。token填写的是代码中的token(上面是“weixin”)。

php工程师待遇

html5网站

网页游戏编程

web前端工程师

php工程师薪资

web前端工程师

html5网站

网页游戏编程

php工程师待遇

php工程师薪资

如果启用成功,就可以关注你的微信平台,输入内容,看看提示是不是Welcome to wechat world!或者Hello Word!

时间: 2024-12-05 21:27:44

PHP技术开发微信公众平台的相关文章

[c#]asp.net开发微信公众平台(8)微信9大高级接口,自定义菜单

前7篇把最基础的消息接收和回复全做完了,  也把高级接口的入口和分拆处理写好了空方法,  此篇接着介绍微信的9大高级接口, 并着重讲解其中的自定义菜单. 微信9大接口为: 1.语音识别接口 2.客服接口 3.OAuth2.0 网页授权接口 4.生成带参数的二维码接口 5.获取用户地理位置接口 6.获取用户基本信息接口 7.获取关注者列表接口 8.用户分组接口 9.上传下载多媒体文件接口 具体介绍: 1. 语音识别 功能描述:通过语音识别接口,用户发送的语音,将同时给出语音识别出的文本内容. 实用

[转]C#开发微信公众平台-就这么简单

本文转自:http://www.it165.net/pro/html/201403/11102.html 写在前面 服务号和订阅号 URL配置 创建菜单 查询.删除菜单 接受消息 发送消息(图文.菜单事件响应) 示例Demo下载 后记 最近公司在做微信开发,其实就是接口开发,网上找了很多资料,当然园友也写了很多教程,但都是理论说了一大堆,实用指导或代码很少.如果你自己仔细研究下,其实就那么点东西,C#实现起来也很简单,原本不想写这篇文章的,但是本人当时摸索走了很多弯路,这边总结下,希望初次接触微

django开发微信公众平台遇到的问题记录

在pythonanywhere.com上使用django开发微信公众平台应用,结果用户发送的信息,微信服务器一次也没有成功转发到pythonanywhere上来,但是用接口测试工具调试却发现是正常的,而且修改URL配置时验证也是成功的,找了几天,终于发现原来是URL配置末尾少了个斜杠,因为在django的url配置中有斜杠. 原因是在后台配置URL的时候是手写的,而用测试工具测试的时候我是复制的地址. 总结: 如果发现微信服务器无法转发消息到自己的应用服务器上,检查配置,主要就是URL和TOKE

一旦手把手教你开发微信公众平台

一旦手把手教你开发微信公众平台 目录 一旦手把手教你开发微信公众平台 目录 1 初步认识微信公众平台 2 如何申请微信公众平台测试号 3 接口配置信息 4 环境搭建以及验证消息真实性 1: 初步认识微信公众平台 微信公众平台,简称weChat.曾命名为"官号平台"和"媒体平台",最终定位为"公众平台",无疑让我们看到一个微信对后续更大的期望.和新浪微博早期从明星战略着手不同,微信此时已经有了亿级的用户,挖掘自己用户的价值,为这个新的平台增加更优质

.net开发微信公众平台

一.说明:公众平台信息接口为开发者提供了一种新的消息处理方式,只有申请成为开发者后,你才能使用公众平台的开发功能,在这里你需要填写一个URL和一个Token,这两项信息也需要你拥有自己的服务器(外网服务器)资源,其中的Token可由开发者任意填写,URL即是接口配置信息的链接地址,在本文中我采用的是创建一个简易网站的方式,在其中的一个页面的后台程序中配置相关的接口信息,然后发布到外网服务器上,最后可以访问到这个页面的链接地址即是这里应该填写的URL. 二.接口配置过程: 1.网址接入-校验签名:

Jfinal开发微信公众平台

http://blog.csdn.net/lyq8479/article/details/8937622 方法就是柳峰老师发的教程,jfinal的区别就是核心servlet的处理可以用拦截器结合controller实现. 1.定义一个验证请求的拦截器 public class CoreFilterInterceptor implements Interceptor { // 验证请求来源拦截器 public void intercept(ActionInvocation ai) { Contro

Delphi XE7 用indy开发微信公众平台所有功能,可刷阅读,可刷赞,可加推广(除微支付)

http://www.cnblogs.com/devinlee/p/4565933.html Delphi XE7 用indy开发微信公众平台所有功能,可刷阅读,可刷赞,可加推广(除微支付) 关注作者的微信公众平台,测试效果 包含微信公众平台的所有功能(除微支付) 示例代码:(如需要全部代码,请加作者微信:Leedege) 复制代码 function UpNews(Num: Integer; AccessToken: String): String; var J: TJSONObject; N:

C#开发微信公众平台

[转]C#开发微信公众平台-就这么简单 本文转自:http://www.it165.net/pro/html/201403/11102.html 写在前面 服务号和订阅号 URL配置 创建菜单 查询.删除菜单 接受消息 发送消息(图文.菜单事件响应) 示例Demo下载 后记 最近公司在做微信开发,其实就是接口开发,网上找了很多资料,当然园友也写了很多教程,但都是理论说了一大堆,实用指导或代码很少.如果你自己仔细研究下,其实就那么点东西,C#实现起来也很简单,原本不想写这篇文章的,但是本人当时摸索

C#开发微信公众平台-就这么简单(转载)(附原文链接)

一直使用的是一百八的诺鸡鸭,没有想去接触看起来风风火火的移动互联网:但因工作需要维护一个微信公众订阅号,考虑以前有做网站的基础,就想着做个简单的微信后台管理:看了官方的开发文档,比狗哥地图的短许多,又网上找了找,见这篇“C#开发微信公众平台”对ASP.NET开发者较有用些,就转载来,做个记号. 最近公司在做微信开发,其实就是接口开发,网上找了很多资料,当然园友也写了很多教程,但都是理论说了一大堆,实用指导或代码很少.如果你自己仔细研究下,其实就那么点东西,C#实现起来也很简单,原本不想写这篇文章