php微信开发接入


Posted in PHP onAugust 27, 2016

微信,想必大家都不陌生,像支付宝一样在悄悄的改变大家的生活方式。伴随着这种新的生活方式,越来越多的微服务也开始进入我们的生活,我们可以使用微信查询信用卡帐单、还款、支付,在最近的一次微信合作伙伴大会上,腾讯向公众服务号开放支付功能与九大高级接口,透过这些接口,开发者可以实现使用利用微信摇控电视、冰箱、洗衣机甚至电饭煲,使用微信的微支付功能,还能方便地在线购买电影票、手机充值、收看互联网电视付费节目等。

下面,就我个人的了解,简单讲述一下微信开发的第一步,如何与微信服务器对接。

想要涉足微信开发,第一步就是要申请一个微信公众号。公众号分为服务号和订阅号。服务号,故名思义,主要是对用户提供服务的,一般是企业或是服务行业用的比较多,功能相对订阅号要强大一些,可以自定义用户菜单;但也有不方便的地方,就是服务号一个月只允许发送一条群消息。订阅号,主要是提供信息和资讯,一般是媒体用的比较多,功能相对服务号要弱一些,但可以每天发送一条群消息。以下的讲述,都是以服务号为基础。

微信公众号申请好之后,我们还需要一个对外的WEB服务器,方便和微信服务器进行数据交互。这一步我就不细讲了,百度和新浪都提供这个服务。

登录微信公众平台,在左侧的导航菜单中选择“功能”--> “高级功能”, 微信为我们提供了两种“编辑模式”和“开发模式”,这两种模式互斥,即如果开启了“编辑模式”,则需要将“开发模式”关闭,反之亦然。“编辑模式”又称傻瓜模式,开发者可以直接在平台上定义菜单,设置自动回复等功能。这里定义的菜单功能比较弱,用户点击自定义菜单后,只能够回复信息或是打开一个网页,如果需要根据用户点击的菜单做一些其他动作,则需要使用到“开发模式”。

使用”开发模式“的前提是您必须申请成为开发者。

         第一步需要指定接收微信服务器数据的URL,同时还需要指定一个TOKEN(由开发者任意填写,用于生成签名),用于接入时的验证。 

        第二步要验证您指定的URL的有效性,微信服务器会像您指定的URL发送一个GET请求,该请求携带四个参数。

php微信开发接入

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

PHP检验代码如下。 

<?php

  $wechatObj = new wechatCallbackAPI();
  $wechatObj->valid(); 


  class wechatCallbackAPI {

    private $token = "WEIXIN";

    private $appId = "APPID";

    private $appSecret = "APPSECRET";
    
    private function checkSignature() {
      $signature = $_GET["signature"];
      $timestamp = $_GET["timestamp"];
      $nonce = $_GET["nonce"];  
          
      $tmpArr = array($this->token, $timestamp, $nonce);
      sort($tmpArr);
      $tmpStr = implode($tmpArr);
      $tmpStr = sha1($tmpStr);
      
      if($tmpStr == $signature) {
        return true;
      } else {
        return false;
      }
    }

    public function valid() {
      $echoStr = $_GET["echostr"];
      
      //valid signature, option
      if($this->checkSignature()){
        echo $echoStr;
        exit;
      }
    }
  }
?>

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

PHP 相关文章推荐
十天学会php(2)
Oct 09 PHP
PHP 常用函数库和一些实用小技巧
Jan 01 PHP
一道求$b相对于$a的相对路径的php代码
Aug 08 PHP
PHP学习笔记之二
Jan 17 PHP
yii框架表单模型使用及以数组形式提交表单数据示例
Apr 30 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
Jun 19 PHP
php利用scws实现mysql全文搜索功能的方法
Dec 25 PHP
php使用timthumb生成缩略图的方法
Jan 22 PHP
ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法
Nov 12 PHP
PHP多维数组元素操作类的方法
Nov 14 PHP
php记录搜索引擎爬行记录的实现代码
Mar 02 PHP
PHP的静态方法与普通方法用法实例分析
Sep 26 PHP
php微信开发自定义菜单
Aug 27 #PHP
PHP7新特性foreach 修改示例介绍
Aug 26 #PHP
简单的自定义php模板引擎
Aug 26 #PHP
PHP flush 函数使用注意事项
Aug 26 #PHP
PHP获取不了React Native Fecth参数的解决办法
Aug 26 #PHP
简单的pgsql pdo php操作类实现代码
Aug 25 #PHP
php mongodb操作类 带几个简单的例子
Aug 25 #PHP
You might like
绿山咖啡和蓝山咖啡
2021/03/04 新手入门
thinkphp文件引用与分支结构用法实例
2014/11/26 PHP
PHP封装的数据库保存session功能类
2016/07/11 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
2017/06/09 PHP
Javascript中找到子元素在父元素内相对位置的代码
2012/07/21 Javascript
jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮
2013/10/11 Javascript
Extjs grid添加一个图片状态或者按钮的方法
2014/04/03 Javascript
jquery常用特效方法使用示例
2014/04/25 Javascript
JS生成不重复随机数组的函数代码
2014/06/10 Javascript
EasyUI布局 高度自适应
2016/06/04 Javascript
微信小程序 摇一摇抽奖简单实例实现代码
2017/01/09 Javascript
jquery基于layui实现二级联动下拉选择(省份城市选择)
2017/06/20 jQuery
vue-cli监听组件加载完成的方法
2018/09/07 Javascript
vue如何解决循环引用组件报错的问题
2018/09/22 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
详解JavaScript中的链式调用
2020/11/27 Javascript
JavaScript中的几种继承方法示例
2020/12/06 Javascript
python实现socket客户端和服务端简单示例
2014/02/24 Python
使用Python多线程爬虫爬取电影天堂资源
2016/09/23 Python
python3个性签名设计实现代码
2018/06/19 Python
python实现逐个读取txt字符并修改
2018/12/24 Python
Python(PyS60)实现简单语音整点报时
2019/11/18 Python
python单例设计模式实现解析
2020/01/07 Python
浅谈tensorflow中张量的提取值和赋值
2020/01/19 Python
基于python实现可视化生成二维码工具
2020/07/08 Python
selenium与xpath之获取指定位置的元素的实现
2021/01/26 Python
iHerb台湾:维生素、保健品和健康产品
2018/01/31 全球购物
Java文件和目录(IO)操作
2014/08/26 面试题
销售部主管岗位职责
2013/12/18 职场文书
20岁生日感言
2014/01/13 职场文书
学校岗位设置方案
2014/01/16 职场文书
幼儿园大班评语大全
2014/04/17 职场文书
房屋产权证明书
2015/06/19 职场文书
2019终止劳动合同协议书最新范本!
2019/07/09 职场文书
高中班主任工作总结(范文)
2019/08/20 职场文书
python自动化之如何利用allure生成测试报告
2021/05/02 Python