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 相关文章推荐
Mysql的GROUP_CONCAT()函数使用方法
Mar 28 PHP
使用迭代器 遍历文件信息的详解
Jun 08 PHP
php实现天干地支计算器示例
Mar 14 PHP
基于php的微信公众平台开发入门实例
Apr 15 PHP
php pthreads多线程的安装与使用
Jan 19 PHP
Thinkphp和onethink实现微信支付插件
Apr 13 PHP
PHP常用的三种设计模式汇总
Aug 28 PHP
Yii框架引用插件和ckeditor中body与P标签去除的方法
Jan 19 PHP
Yii实现复选框批量操作实例代码
Mar 15 PHP
YII中Ueditor富文本编辑器文件和图片上传的配置图文教程
Mar 15 PHP
PHP实践教程之过滤、验证、转义与密码详解
Jul 24 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
Oct 11 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
php解压文件代码实现php在线解压
2014/02/13 PHP
Thinkphp集成抖音SDK的实现方法
2020/04/28 PHP
JavaScript 题型问答有答案参考
2010/02/17 Javascript
ext combox 下拉框不出现自动提示,自动选中的解决方法
2010/02/24 Javascript
基于JQuery的一句代码实现表格的简单筛选
2010/07/26 Javascript
原生javascript实现图片弹窗交互效果
2015/01/12 Javascript
angularjs客户端实现压缩图片文件并上传实例
2015/07/06 Javascript
JS+CSS实现美化的下拉列表框效果
2015/08/11 Javascript
微信小程序购物商城系统开发系列-工具篇的介绍
2016/11/21 Javascript
HTML5canvas 绘制一个圆环形的进度表示实例
2016/12/16 Javascript
JS正则表达式修饰符global(/g)用法分析
2016/12/27 Javascript
详解Weex基于Vue2.0开发模板搭建
2017/03/20 Javascript
微信小程序的日期选择器的实例详解
2017/09/29 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
vue 设置proxyTable参数进行代理跨域
2018/04/09 Javascript
vue实现动态列表点击各行换色的方法
2018/09/13 Javascript
浅谈vue引用静态资源需要注意的事项
2018/09/28 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
2020/11/04 Javascript
Python中返回字典键的值的values()方法使用
2015/05/22 Python
Python实现学生成绩管理系统
2020/04/05 Python
Django之模型层多表操作的实现
2019/01/08 Python
python协程之动态添加任务的方法
2019/02/19 Python
python 实现识别图片上的数字
2019/07/30 Python
Python提取PDF内容的方法(文本、图像、线条等)
2019/09/25 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
2020/01/15 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
2020/02/20 Python
Marmot土拨鼠官网:美国专业户外运动品牌
2018/01/11 全球购物
Vision Direct比利时:在线订购隐形眼镜
2019/08/27 全球购物
阿联酋优惠券服务:Living Kool
2019/12/12 全球购物
海蓝之谜英国官网:La Mer英国
2020/01/15 全球购物
《小草和大树》教学反思
2014/02/16 职场文书
弄虚作假心得体会
2014/09/10 职场文书
大学新生军训自我鉴定
2014/09/18 职场文书
医院领导班子四风问题对照检查材料
2014/10/26 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
微软Win11 全新照片应用面向 Dev预览版推出 新版本上手体验图集
2022/09/23 数码科技