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 相关文章推荐
Discuz! Passport 通行证整合
Mar 27 PHP
php 结果集的分页实现代码
Mar 10 PHP
批量修改RAR文件注释的php代码
Nov 20 PHP
PHPUnit安装及使用示例
Oct 29 PHP
windows中为php安装mongodb与memcache
Jan 06 PHP
PHP自动生成表单代码分享
Jun 19 PHP
Yii rules常用规则示例
Mar 15 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
Mar 23 PHP
php进行ip地址掩码运算处理的方法
Jul 11 PHP
Yii安装与使用Excel扩展的方法
Jul 13 PHP
PHP 实现浏览记录并按日期分组
May 11 PHP
Laravel框架创建路由的方法详解
Sep 04 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字符串替换函数substr_replace()用法实例
2015/03/17 PHP
PHP页面间传递值和保持值的方法
2016/08/24 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020/04/04 PHP
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.2 0
2008/03/22 Javascript
JavaScript 学习笔记(四)
2009/12/31 Javascript
javascript简易缓动插件(源码打包)
2012/02/16 Javascript
jquery ajax对特殊字符进行转义防止js注入使用示例
2013/11/21 Javascript
利用jquery写的左右轮播图特效
2014/02/12 Javascript
JavaScript组合拼接字符串的效率对比测试
2014/11/06 Javascript
浅谈javascript对象模型和function对象
2014/12/26 Javascript
Javascript实现鼠标框选操作  不是点击选取
2016/04/14 Javascript
jQuery CSS3自定义美化Checkbox实现代码
2016/05/12 Javascript
关于session和cookie的简单理解
2016/06/08 Javascript
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
nodejs模块学习之connect解析
2017/07/05 NodeJs
详解vue.js数据传递以及数据分发slot
2018/01/20 Javascript
NodeJS实现自定义流的方法
2018/08/01 NodeJs
Node.JS在命令行中检查Chrome浏览器是否安装并打开指定网址
2019/05/21 Javascript
nodejs使用node-xlsx生成excel的方法示例
2019/08/22 NodeJs
浅谈vue项目,访问路径#号的问题
2020/08/14 Javascript
构建一个JavaScript插件系统
2020/10/20 Javascript
python简单读取大文件的方法
2016/07/01 Python
python保存二维数组到txt文件中的方法
2018/11/15 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
2019/07/07 Python
python抓取多种类型的页面方法实例
2019/11/20 Python
通过python连接Linux命令行代码实例
2020/02/18 Python
Python猴子补丁Monkey Patch用法实例解析
2020/03/23 Python
Python列表嵌套常见坑点及解决方案
2020/09/30 Python
Nike台湾官方商店:Nike.com (TW)
2017/08/16 全球购物
铭立家具面试题
2012/12/06 面试题
预防煤气中毒方案
2014/06/16 职场文书
招标授权委托书样本
2014/09/23 职场文书
2014年办公室个人工作总结
2014/11/12 职场文书
倡议书作文
2015/01/19 职场文书
行政助理岗位职责
2015/02/10 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书