成为微信开发者的第一步——微信公众平台接入

第一步:填写服务器配置

在开发->基本配置处启用服务器配置。修改配置

其中URL是开发者用来接收微信消息和事件的接口URL。

Token可由开发者可以任意填写,用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)。

EncodingAESKey由开发者手动填写或随机生成,将用作消息体加解密密钥。

点击提交

第二步:验证服务器地址的有效性

开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带四个参数:

signature ------  微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。

timestamp  ------时间戳

nonce  ------  随机数

echostr  ------  随机字符串

开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。

    //获取接口Token值和UID
$memberModel = D('Member');
$userinfo = $memberModel -> getWechatInfo(WID); //获取用户的微信账号信息
$weixinLogic = D('Weixin','Logic');
$weixin = $weixinLogic -> detail(WID); $weixin = new ThinkWechat($userinfo['token']);

在微信公共函数里面,检验signature:

if(IS_GET){
$this->auth($token) || die('token信息错误');
exit($_GET['echostr']);
} /**
* 对数据进行签名认证,确保是微信发送的数据
* @param string $token 微信开放平台设置的TOKEN
* @return boolean true-签名正确,false-签名错误
*/
private function auth($token){
/* 获取数据 */
$data = array($_GET['timestamp'], $_GET['nonce'], $token);
$sign = $_GET['signature']; /* 对数据进行字典排序 */
sort($data, SORT_STRING); /* 生成签名 */
$signature = sha1(implode($data)); return $signature === $sign;
}

注意:此后用户每次向公众号发送消息、或者产生自定义菜单点击事件时,开发者填写的服务器配置URL将得到微信服务器推送过来的消息和事件,然后开发者可以依据自身业务逻辑进行响应,例如回复消息等。

© 著作权归作者所有

【微信开发】微信公众平台接入及绑定提示“请求URL超时”的解决办法的更多相关文章

  1. 使用delphi+intraweb进行微信开发1--微信平台接入

    示例代码已经放出!请移步使用delphi+intraweb进行微信开发1~4代码示例进行下载,虽为示例代码但是是从我项目中移出来的,封装很完备适于自行扩展和修改. iw14.0.50来了,在新的版本中 ...

  2. thinkphp开发微信公众号时,验证基本配置提示请求url超时

    原因在index.php入口文件中必须有define('APP_NAME', 'Weixin'); 服务器url:http://bxu2713700584.my3w.com/Weixin/Index/ ...

  3. 微信小程序警告设置 enable-flex 属性以使 flexbox 布局生效的解决办法

    微信小程序警告设置 enable-flex 属性以使 flexbox 布局生效的解决办法 具体情况: scroll-view 滚动,设置 display:flex 不生效并警告设置 enable-fl ...

  4. IOS 开发中 Whose view is not in the window hierarchy 错误的解决办法

    在 IOS 开发当中经常碰到 whose view is not in the window hierarchy 的错误,该错误简单的说,是由于 "ViewController" ...

  5. 微信公众号开发C#系列-2、微信公众平台接入指南

    概述 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流程是这样的,用户发送消息到微信服务器,微信服务器将接收到的消息post到用户接入时填写的url中,在url处理程序中,首先 ...

  6. [转载红鱼儿]delphi 实现微信开发(2)接入微信公众号平台

    先要学习一下接入的资料,在这里,因为原理都在,所以一定要认真阅读,然后,利用Delphi实现一个对应函数,然后申请微信公众平台接口测试帐号. function CheckSignature(const ...

  7. C#微信公众平台接入示例代码

    http://mp.weixin.qq.com/wiki/17/2d4265491f12608cd170a95559800f2d.html 这是微信公众平台提供的接入指南.官网只提供了php的示例代码 ...

  8. 微信开发——微信公众平台实现消息接收以及消息的处理(Java版)

    本文主要讲述了如何在微信公众平台实现消息接收以及消息的处理,使用java语言开发,现在把实现思路和代码整理出来分先给兄弟们,希望给他们带来帮助. 温馨提示: 这篇文章是依赖前几篇的文章的. 第一篇:微 ...

  9. 浅析微信支付:公众平台卡券功能开通、HTML5线上发券(JS-SDK接口)、查看卡券详情

    本文是[浅析微信支付]系列文章的第十六篇,主要讲解如何使用微信公众平台的卡券功能.如何使用HTML5在网页展示用户领券以及微信卡券和商户平台代金券的关系. 浅析微信支付系列已经更新十六篇了哟-,没有看 ...

随机推荐

  1. 使用Windows2003创建DHCP服务器 - 进阶者系列 - 学习者系列文章

    Windows 2003提供的DHCP服务还是挺强大的.下面大概介绍下DHCP服务器的配置. 1.  通过控制面板安装DHCP服务 2.  打开DHCP配置项 3.  选择 新建作用域 4.  输入名 ...

  2. SQL数据库面试题

    SQL数据库面试题 1.SQL SREVER中,向一个表中插入了新数据,如何快捷的得到自增量字段的当前值 这种情况其实我们经常用到,比如我们新建了一个用户,建立完用户后我们希望马上得到这个新用户的ID ...

  3. PHP中实现在数据库中的增、删、查、改

    其实要想在PHP中访问并获取到数据库中的数据其实并不难,下面我以例子为大家介绍: 首先,打开PHP软件和WampServer服务,确保在WampServer中的phpMyAdmin中有你要使用的数据表 ...

  4. beanutils获取带参数get方法

    public Employee getEmployee(int index) {        return new Employee();    } 1.PropertyUtils.getIndex ...

  5. [Usaco2008 Feb]Eating Together麻烦的聚餐[最长不下降子序列]

    Description 为了避免餐厅过分拥挤,FJ要求奶牛们分3批就餐.每天晚饭前,奶牛们都会在餐厅前排队入内,按FJ的设想所有第3批就餐的奶牛排在队尾,队伍的前端由设定为第1批就餐的奶牛占据,中间的 ...

  6. 计算image 积分图

    // testopencv.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <opencv2\opencv.hpp& ...

  7. apache Alias使用问题

    今天在配置apache的过程中,使用了Alias,但是由于配置错误导致403 forbidden错误,不能正常访问. 首先理解一下Alias,Alias就是别名的意思,假如我的项目目录在/home/w ...

  8. ubuntu下使用golang、qml与ubuntu sdk开发桌面应用

    ubuntu下使用golang.qml与ubuntu sdk开发桌面应用 (简单示例) 找了很长时间go的gui库,试了gtk,准备试qt的时候发现了这个qml库,试了下很好用. 准备工作 1.Go ...

  9. Linux环境fork()函数详解

    Linux环境fork()函数详解 引言 先来看一段代码吧, 1 #include <sys/types.h> 2 #include <unistd.h> 3 #include ...

  10. RTB撕开黑盒子 Part 2: Algorithm Meets World

    Part 0介绍了RTB的胜出价格会在凌晨陡升.我们还介绍了一个Pace系统,如果这个系统所有的DSPs都用,那陡升的问题就会消失.Part 0中的系统中含有一个隐式的假设:任何两个请求都认为是相同的 ...