php微信公众平台配置接口开发程序


Posted in PHP onSeptember 22, 2016

在阅读这篇文章之前你要做以下的准备:

1.注册一个订阅号(通过微信公众平台https://mp.weixin.qq.com/);
2.注册新浪云并实名认证http://sae.sina.com.cn/
3.实名认证新浪云之后,创建一个云应用.
4.你需要知道php基础知识.

一:验证接口

1.登录我们的公众号.然后点击进入开发者工具,在登录之后页面的左下角.

2.点击进入开发者文档.之后点击开始开发,点击接入指南,我们会看到如下图.

php微信公众平台配置接口开发程序

图片上有说,接入微信公众平台开发,开发者需要按照如下步骤完成:

1.填写服务器配置
2.验证服务器地址的有效性
3.依据接口文档实现业务逻辑.

第一步:填写服务器配置

我们登录微信公众号之后,右下角基本开发配置点进去,

php微信公众平台配置接口开发程序

URL是开发者用来接收微信消息和事件的接口URL.具体怎么填我们等下详细说.

Token可以随意填写(但是每个人都不一样的,如果后面提交失败可以试着修改Token),这个Token会和接口中包含的Token进行比对,从而验证安全性,EncodingAESKey由开发者手动填写或随机生成,将用作消息体加解密密钥。

填写的URL,需要我们有自己的服务器的地址,现在我们就要到我们之前注册的新浪云云应用了.

一.登录新浪云,点击云应用,点击进入控制台.如下图创建

php微信公众平台配置接口开发程序

二.级域名和应用名称,自己起个名字就好.然后点击进入下图红色标记的地方.

php微信公众平台配置接口开发程序

三.如下图箭头指示点击进入编辑代码

php微信公众平台配置接口开发程序

四.之后会弹出SAE的界面,我们需要在里面建立一个php文件,然后点击通过URL访问,之后我们把这个网址拷贝下来,放到我们之前基本配置的URL上.

php微信公众平台配置接口开发程序

第二步:验证消息的确来自微信服务器

具体的php代码如下:

<?php
 // //最简单的验证方式
 // echo $_GET["echostr"];

 //验证是否来自于微信
 function checkWeixin(){
  //微信会发送4个参数到我们的服务器后台 签名 时间戳 随机字符串 随机数

  $signature = $_GET["signature"];
  $timestamp = $_GET["timestamp"];
  $nonce = $_GET["nonce"];
  $echostr = $_GET["echostr"];
  $token = "qilipingmgl";

  // 1)将token、timestamp、nonce三个参数进行字典序排序
  $tmpArr = array($nonce,$token,$timestamp);
  sort($tmpArr,SORT_STRING);

  // 2)将三个参数字符串拼接成一个字符串进行sha1加密
  $str = implode($tmpArr);
  $sign = sha1($str);

  // 3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
  if ($sign == $signature) {
   echo $echostr;
  }
 }
 checkWeixin();
?>

注意:代码中 $token 是每个人不同的,我们需要填写自己的,点击开发者工具,之后右边有公众平台测试账号,点击进入,之后我们会看到接口配置,把Token复制过来放到代码中.

我们把这个代码复制到我们刚创建的SAE的php文件里,再保存(记得要保存哦),然后点击通过URL访问,

如果报错了(报错的信息是数字的话),请点击开发者文档中,点击开始前必读,有个接口返回码说明,我们可以对照一下,错误在哪里, 注意:0的时候表示请求成功.

二.获取access_token

提示:access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token.我们作为开发者要妥善保存,access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。

第一步,我们点击开发者文档,点击开始开发,点击获取access_token之后会看到,http请求方式:GET,然后一个网址,我们需要用到这个网址,如下图,

php微信公众平台配置接口开发程序

E0204D74-2EA6-4943-B93F-7E7C1E2FA88A.png

第二步:我们写GET请求的函数,获取access_token

<?php
 class Weixin{
  private $appID = "wxe62f370c4e2cade2";
  private $appsecret = "58807091ae5a4c59ee3e47108184bdb7";

  function getAccessToken(){
   $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$this->appID}&secret={$this->appsecret}";

   // return $this->httpGet($url);
   //json字符串
   $json = $this->httpGet($url);
   //解析json
   $obj = json_decode($json);
   return $obj->access_token;
  }

  function httpGet($url){
   //1.初始化
   $curl = curl_init();
   //配置curl
   curl_setopt($curl, CURLOPT_URL, $url);
   curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
   //执行curl
   $res = curl_exec($curl);
   //关闭curl
   curl_close($curl);
   return $res;
  }
 }
 $wx = new Weixin();
 echo $wx->getAccessToken();

 /*
  获取access_token方法 get方法
 */
?>

注意:代码中 $appID 和 $appsecret 是每个人不同的,我们需要填写自己的,点击开发者工具,之后右边有公众平台测试账号,点击进入,之后我们会看到测试号信息.然后复制过来放到代码中.

第三步:我们代码复制到SAEphp文件中,点击右键通过URL访问,如果返回 {"access_token":"ACCESS_TOKEN","expires_in":7200} 表示我们获取token成功.如果不幸报错了,没关系我们找错误,点击开发文档,点击开始前必读,点击接口返回码说明,我们对照一下,根据提示找错误就好了.

说道这里我们的配置接口就完成了,下一节我们继续微信开发->自定菜单创建接口.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
提升PHP执行速度全攻略
Oct 09 PHP
PHP完整的日历类(CLASS)
Nov 27 PHP
PHP中用hash实现的数组
Jul 17 PHP
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
Jun 28 PHP
PHP使用JSON和将json还原成数组
Feb 12 PHP
laravel5创建service provider和facade的方法详解
Jul 26 PHP
mysql查找删除重复数据并只保留一条实例详解
Sep 24 PHP
PHP魔术方法以及关于独立实例与相连实例的全面讲解
Oct 18 PHP
PHP实现基于3DES算法加密解密字符串示例
Aug 24 PHP
在PHP中输出JS语句以及乱码问题的解决方案
Feb 13 PHP
Yii2.0框架模型添加/修改/删除数据操作示例
Jul 18 PHP
使用php的mail()函数实现发送邮件功能
Jun 03 PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
Sep 22 #PHP
php中二分法查找算法实例分析
Sep 22 #PHP
Yii2中SqlDataProvider用法示例
Sep 22 #PHP
php实现压缩合并js的方法【附demo源码下载】
Sep 22 #PHP
php简单压缩css样式示例
Sep 22 #PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
Sep 22 #PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
Sep 21 #PHP
You might like
PHP+DBM的同学录程序(1)
2006/10/09 PHP
PHP快速生成各种信息提示框的方法
2016/02/03 PHP
PHP strcmp()和strcasecmp()的区别实例
2016/11/05 PHP
PHP快速推送微信模板消息
2017/04/14 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
php ZipArchive实现多文件打包下载实例
2019/10/31 PHP
jQuery EasyUI API 中文文档 - Pagination分页
2011/09/29 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
浅析JavaScript中的类型和对象
2013/11/29 Javascript
Javascript中的方法链(Method Chaining)介绍
2015/03/15 Javascript
修复jQuery tablesorter无法正确排序的bug(加千分位数字后)
2016/03/30 Javascript
js跨域资源共享 基础篇
2016/07/02 Javascript
bootstrap中添加额外的图标实例代码
2017/02/15 Javascript
深入理解ES6学习笔记之块级作用域绑定
2017/08/19 Javascript
Angular路由ui-router配置详解
2018/08/01 Javascript
解决微信小程序中的滚动穿透问题
2019/09/16 Javascript
javascript浅层克隆、深度克隆对比及实例解析
2020/02/09 Javascript
[00:32]10月24、25日 辉夜杯外卡赛附加赛开赛!
2015/10/23 DOTA
[32:39]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第一场 11.04
2020/11/04 DOTA
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
Python实现的简单dns查询功能示例
2017/05/24 Python
Python基于递归算法求最小公倍数和最大公约数示例
2018/07/27 Python
python 3.7.0 安装配置方法图文教程
2018/08/27 Python
python实现简单聊天室功能 可以私聊
2019/07/12 Python
django 自定义filter 判断if var in list的例子
2019/08/20 Python
python安装scipy的步骤解析
2019/09/28 Python
Python稀疏矩阵及参数保存代码实现
2020/04/18 Python
python 错误处理 assert详解
2020/04/20 Python
Python脚本如何在bilibili中查找弹幕发送者
2020/06/04 Python
详解canvas绘制多张图的排列顺序问题
2019/01/21 HTML / CSS
JACK & JONES英国官方网站:欧洲领先的男装生产商
2017/09/27 全球购物
西班牙最大的在线滑板和街头服饰商店:Fillow.net
2019/04/15 全球购物
工程造价自荐信
2013/10/09 职场文书
劳动保障个人工作总结
2015/03/04 职场文书
2015年幼儿园德育工作总结
2015/05/25 职场文书