详解微信开发者文档——2接入服务器至微信开发平台

写在前面的话:为了更灵活的与微信公众平台互动,需要将微信公众平台与自己的服务器进行对接,只有对接成功之后,才能够进行后面功能的实现。

=========正文开始==========

  详细讲解之前,对微信公众平台与自己服务器对接先有个感性的认识。

  假设微信已经与我们自己的服务器完成对接,之后微信公众平台就能够将自己接收到的消息发送给我们的服务器,同样我们也可以给微信服务器发送消息。这里就涉及到了几个问题:1.微信应该给我们服务器的什么地址进行对接呢?2.如何验证这个地址确实是我们自己服务器的地址呢?解决了这两个疑问,初步对接的工作也就完成了。

一、微信应该给我们服务器的什么地址进行对接呢?

1、打开自己的微信公众号后台,选择左边菜单栏最下面的开发者中心,如下图:

2、在开发者中心页面,如下图:

  这个页面有一些比较有用的信息,其中AppID和AppSecret对于每个公众号是唯一的,在后面的功能实现中会用到。下面的服务器配置页面,就是用来填写我们自己服务器与微信公众平台对接的地方,点击修改配置就可以填写了相关信息了。

  (1)URL(服务器地址):填写自己的服务器的一个地址,这里我使用的是SAE,至于wechat.php具体写了哪些代码,下面再讲。

  (2)Token(令牌):这里随便填写,这个在wechat.php代码里面会用到。

  (3)EncodingAESKey和消息加密解密方式:这里默认就可以了,以后如果需要用到消息加密的话,可以进行设置。

  设置完成上面信息后,点击提交,如果wechat.php中写的代码没有问题的话,应该会提示成功,然后再点击启用,就完成了微信公众平台与自己服务器的对接了。接下来来看看wechat.php中代码该怎么写。

二、如何验证这个地址确实是我们自己服务器的地址呢?

  前面点击提交之后,微信会向我们提交的地址发送GET请求,请求中含有四个参数:signature,timestamp,nonce,echostr,我们代码中需要通过如下三个步骤来验证:

(1)将token,timestamp,nonce三个参数进行字典排序

(2)将三个参数字符串进行sha1加密

(3)加密字符串和signature对比,如果比对正确原样返回echostr。

具体代码如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

<?php

    $echoStr $_GET["echostr"];

    $signature $_GET["signature"];

    $timestamp $_GET["timestamp"];

    $nonce $_GET["nonce"];    

    $token "test";

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

    sort($tmpArr, SORT_STRING);

    $tmpStr = implode( $tmpArr );

    $tmpStr = sha1( $tmpStr );

    if$tmpStr == $signature )

    {

      echo $echoStr;

      exit;

    }

    else

    {

      echo "validate没有通过";

    }

?>

  上面代码应该也比较简单了,也不过多解释了,其实这里验证是比较粗糙的,我们可以直接在代码里面写上如下代码: echo GET[′echostr′]其实就能够通过验证;而且更合理的话应该将tmpStr发送给微信服务器,signature的比对在微信服务器端比对比较合适,我们以后会发现之后一些签名验证就是在微信服务器端验证的,这里其实不用太纠结,这里也不会涉及到多少安全性的问题,因此想怎么写就怎么写吧。

  如果在上面验证的过程中出问题了,看看是不是sae有问题,完成了这一步,和微信服务器的对接算是完成了。

http://t.jishigou.net/topic/833536
http://t.jishigou.net/topic/833522
http://t.jishigou.net/topic/833505
http://t.jishigou.net/topic/833487
http://t.jishigou.net/topic/833470
http://t.jishigou.net/topic/833454
http://t.jishigou.net/topic/833436
http://t.jishigou.net/topic/833419
http://t.jishigou.net/topic/833402
http://t.jishigou.net/topic/833386
http://t.jishigou.net/topic/833368
http://t.jishigou.net/topic/833354
http://t.jishigou.net/topic/833338
http://t.jishigou.net/topic/833322
http://t.jishigou.net/topic/833307
http://t.jishigou.net/topic/833290
http://t.jishigou.net/topic/833272
http://t.jishigou.net/topic/833256
http://t.jishigou.net/topic/833245
http://t.jishigou.net/topic/833228
http://t.jishigou.net/topic/833211
http://t.jishigou.net/topic/833197
http://t.jishigou.net/topic/833180
http://t.jishigou.net/topic/833164
http://t.jishigou.net/topic/833150

时间: 2024-10-01 05:18:40

详解微信开发者文档——2接入服务器至微信开发平台的相关文章

微信开发者文档连接

1.微信开放平台 https://open.weixin.qq.com/cgi-bin/frame?t=resource/res_main_tmpl&lang=zh_CN&target=res/app_wx_login 2. 微信公众平台开发者文档 http://mp.weixin.qq.com/wiki/index.php?title=%E9%A6%96%E9%A1%B5 微信开发者文档连接

微信开发者文档

接收事件推送 目录 1 关注/取消关注事件 2 扫描带参数二维码事件 3 上报地理位置事件 4 自定义菜单事件 5 点击菜单拉取消息时的事件推送 6 点击菜单跳转链接时的事件推送 关注/取消关注事件 用户在关注与取消关注公众号时,微信会把这个事件推送到开发者填写的URL.方便开发者给用户下发欢迎消息或者做帐号的解绑. 微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次 关于重试的消息排重,推荐使用FromUserName + CreateTime 排重. 假如服务器无法保证在

详解微信开发者文档——3接收用户文本消息并自动回复文本消息

写在前面的话:上一篇介绍了如何将自己的服务器与微信公众平台进行连接,连接成功之后就可以与微信进行交互了,这一篇介绍最简单的情形,接收用户文本消息,并自动回复文本消息,如果能够实现这个功能,那么我们就能够轻松的实现接收不同的用户消息,并根据业务需要回复用户不同类型的消息,更复杂的在下一篇中讲解. =====正文开始===== 当微信用户向公众号发送消息时,微信服务器会将该消息发送至我们填写的URL中,我们在后台就能够写代码实现接收消息---处理消息----回复消息的操作. 这里有几点需要注意: 1

详解微信开发者文档——5 access_token管理

写在前面的话:前几篇博客详细讲解了如何获取用户发送的消息并进行回复,这里的回复是一种被动的回复,而被动回复的方式便是通过echo返回信息给微信服务器的POST请求,因此,其实我们并没有算的上调用了微信的接口,从这一篇文章开始,才算是真正的调用微信接口开端,就从access_token讲起. ======正文开始======== 每时每刻都有许多用户来调用微信接口,那么我们想要请求微信接口,如何知道是哪一个用户来请求的呢?也就是说需要一个唯一的凭证来唯一的标明一个公众号,这个信息便是APPID和A

详解微信开发者文档——4接收用户其他类型消息并进行自定义处理

http://www.midifan.com/moduleuser-index-427124.htmhttp://www.midifan.com/moduleuser-index-427714.htmhttp://www.midifan.com/moduleuser-index-427697.htmhttp://www.midifan.com/moduleuser-index-427721.htmhttp://www.midifan.com/moduleuser-index-427728.htm

微信接口文档sdk

安卓微信的api,个人微信开发API协议,微信 ipad sdk,微信ipad协议,微信web版接口api,微信网页版接口,微信电脑版sdk,微信开发sdk,微信开发API,微信协议,微信接口文档sdk,替代微信ipad协议的api接口,网页个人微信api分享,微信机器人SDK接口API,个人微信号API接口,微信群API接口 1.基础消息类型1.客户端发送的心跳包HeartBeatReq = 1001; 2.消息接收确认回复(接收或拒绝接收)MsgReceivedAck = 1002; 3.错

微信公众平台开发者文档

微信公众平台开发者文档 公众平台开发接口介绍微信公众平台开发者文档,布布扣,bubuko.com

TestNG详解-深度好文

转自: https://blog.csdn.net/lykangjia/article/details/56485295 TestNG详解-深度好文 2017年02月22日 14:51:52 阅读数:8609 1. 介绍    TestNG是一个设计用来简化广泛的测试需求的测试框架,从单元测试(隔离测试一个类)到集成测试(测试由有多个类多个包甚至多个外部框架组成的整个系统,例如运用服务器). 编写一个测试的过程有三个典型步骤: * 编写测试的 业务逻辑并在代码中插入TestNG annotati

layuiAdmin pro v1.x 【单页版】开发者文档

layuiAdmin std v1.x [iframe版]开发者文档 题外 该文档适用于 layuiAdmin 专业版(单页面),阅读之前请务必确认是否与你使用的版本对应. 熟练掌握 layuiAdmin 的前提是熟练掌握 layui,因此除了本篇文档, layui 的文档 也是必不可少的存在. 快速上手 部署 解压文件后,将 layuiAdmin 完整放置在任意目录 通过本地 web 服务器去访问 ./start/index.html 即可运行 Demo 由于 layuiAdmin 可采用前后