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 相关文章推荐
PHPWind 发帖回帖Api PHP版打包下载
Feb 08 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
Dec 03 PHP
ThinkPHP整合百度Ueditor图文教程
Oct 21 PHP
PHP多线程编程之管道通信实例分析
Mar 07 PHP
调试WordPress中定时任务的相关PHP脚本示例
Dec 10 PHP
PHP中array_keys和array_unique函数源码的分析
Feb 26 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
Oct 17 PHP
PHP实现基于回溯法求解迷宫问题的方法详解
Aug 17 PHP
Laravel学习教程之从入口到输出过程详解
Aug 27 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
Nov 17 PHP
PHP实现微信红包金额拆分试玩的算法示例
Apr 07 PHP
PHP Pipeline 实现中间件的示例代码
Apr 26 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 Image Resize图片大小调整的函数代码
2011/01/17 PHP
Laravel与CI框架中截取字符串函数
2016/05/08 PHP
jquery简单瀑布流实现原理及ie8下测试代码
2013/01/23 Javascript
图片动画横条广告带上下滚动可自定义图片、链接等等
2013/10/20 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/09/26 Javascript
jQuery中:nth-child选择器用法实例
2014/12/31 Javascript
jQuery实现不断闪烁文字的方法
2015/05/15 Javascript
js下拉选择框与输入框联动实现添加选中值到输入框的方法
2015/08/17 Javascript
AngularJS实现全选反选功能
2015/12/08 Javascript
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
避免jQuery名字冲突 noConflict()方法
2016/07/30 Javascript
EditPlus 正则表达式 实战(3)
2016/12/15 Javascript
canvas快速绘制圆形、三角形、矩形、多边形方法介绍
2016/12/29 Javascript
vue中将网页打印成pdf实例代码
2017/06/15 Javascript
vue双向数据绑定知识点总结
2018/04/18 Javascript
如何进行微信公众号开发的本地调试的方法
2019/06/16 Javascript
微信小程序之 catalog 切换实现解析
2019/09/12 Javascript
[01:54]TI4西雅图DOTA2选手欢迎晚宴 现场报道
2014/07/08 DOTA
Windows系统下多版本pip的共存问题详解
2017/10/10 Python
详解pyqt5 动画在QThread线程中无法运行问题
2018/05/05 Python
Python小工具之消耗系统指定大小内存的方法
2018/12/03 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
2019/06/17 Python
Python中的相关分析correlation analysis的实现
2019/08/29 Python
python3.x中安装web.py步骤方法
2020/06/23 Python
selenium+超级鹰实现模拟登录12306
2021/01/24 Python
Mybag美国/加拿大:英国奢华包包和名牌手袋网站
2020/02/16 全球购物
Oracle里面常用的数据字典有哪些
2014/02/14 面试题
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
2015/01/27 面试题
财务人员求职自荐书范文
2014/02/10 职场文书
社会学专业求职信
2014/02/24 职场文书
二手房买卖协议书
2014/04/10 职场文书
法制宣传日活动总结
2014/04/29 职场文书
乔丹名人堂演讲稿
2014/05/24 职场文书
家庭教育的心得体会
2014/09/01 职场文书
学校领导班子群众路线整改措施
2014/09/16 职场文书
授权委托书协议书
2014/10/16 职场文书