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 相关文章推荐
sourcesafe管理phpproj文件的补充说明(downmoon)
Apr 11 PHP
关于Appserv无法打开localhost问题的解决方法
Oct 16 PHP
完美实现GIF动画缩略图的php代码
Jan 02 PHP
php中利用post传递字符串重定向的实现代码
Apr 21 PHP
PHP中将字符串转化为整数(int) intval() printf() 性能测试
Mar 20 PHP
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
Jun 14 PHP
PHP仿博客园 个人博客(1) 数据库与界面设计
Jul 05 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
May 04 PHP
PHP产生不重复随机数的5个方法总结
Nov 12 PHP
PHP使用ODBC连接数据库的方法
Jul 18 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 PHP
php实现微信支付之退款功能
May 30 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 5.0对象模型深度探索之对象复制
2008/03/27 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
2019/10/16 PHP
超级简单的图片防盗(HTML),好用
2007/04/08 Javascript
ext checkboxgroup 回填数据解决
2009/08/21 Javascript
js 判断checkbox是否选中的实现代码
2010/11/23 Javascript
利用javascript解决图片缩放及其优化的代码
2012/05/23 Javascript
HTML5之lang属性与dir属性的详解
2013/06/19 Javascript
jQuery怎么解析Json字符串(Json格式/Json对象)
2013/08/09 Javascript
在ASP.NET中使用JavaScript脚本的方法
2013/11/12 Javascript
js实现window.open不被拦截的解决方法汇总
2014/10/30 Javascript
有效提高JavaScript执行效率的几点知识
2015/01/31 Javascript
浅谈jQuery中setInterval()方法
2015/07/07 Javascript
jQuery基于ajax操作json数据简单示例
2017/01/05 Javascript
AngularJS页面传参的5种方式
2017/04/01 Javascript
vue如何集成raphael.js中国地图的方法示例
2017/08/15 Javascript
webpack4.0+vue2.0利用批处理生成前端单页或多页应用的方法
2019/06/28 Javascript
Jquery Datatables的使用详解
2020/01/30 jQuery
Python实现的建造者模式示例
2018/08/06 Python
pandas分别写入excel的不同sheet方法
2018/12/11 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
2019/04/12 Python
python openCV获取人脸部分并存储功能
2019/08/28 Python
使用python和pygame制作挡板弹球游戏
2019/12/03 Python
Pandas —— resample()重采样和asfreq()频度转换方式
2020/02/26 Python
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
京东奢侈品:全球奢侈品牌
2018/03/17 全球购物
土木工程毕业生推荐信
2013/10/28 职场文书
公司财务自我评价分享
2013/12/17 职场文书
社区居务公开实施方案
2014/03/27 职场文书
法人代表委托书
2014/04/04 职场文书
如何写股份合作协议书
2014/09/11 职场文书
事业单位人员的自我评价范文
2014/09/21 职场文书
幼儿教师自我剖析材料
2014/09/29 职场文书
乡镇科协工作总结2015
2015/05/19 职场文书
关于法制教育的宣传语
2015/07/13 职场文书
乡镇团代会开幕词
2016/03/04 职场文书
入党转正申请自我鉴定
2019/06/25 职场文书