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 相关文章推荐
PHPEXCEL 使用小记
Jan 06 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
Aug 07 PHP
php的一个简单加密解密代码
Jan 14 PHP
PHP面向对象精要总结
Nov 07 PHP
PHP中使用imagick实现把PDF转成图片
Jan 26 PHP
php可扩展的验证类实例(可对邮件、手机号、URL等验证)
Jul 09 PHP
php格式化json函数示例代码
May 12 PHP
PHP实现一个简单url路由功能实例
Nov 05 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
Dec 14 PHP
PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法
Jun 20 PHP
关于laravel框架中的常用目录路径函数
Oct 23 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
May 15 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的Yii框架中请求与响应的处理流程
2016/03/17 PHP
laravel 实现根据字段不同值做不同查询
2019/10/23 PHP
laravel框架分组控制器和分组路由实现方法示例
2020/01/25 PHP
javascript语句中的CDATA标签的意义
2007/05/09 Javascript
滚动图片效果 jquery实现回旋滚动效果
2013/01/08 Javascript
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
一个仿微博登陆邮箱提示框js开发案例
2016/07/28 Javascript
XMLHttpRequest Level 2 使用指南
2016/08/26 Javascript
layui 给数据表格加序号的方法
2018/08/20 Javascript
JS检索下拉列表框中被选项目的索引号(selectedIndex)
2019/12/17 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
2020/05/06 Javascript
JS中作用域以及变量范围分析
2020/07/18 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 大神专访第二弹!
2014/05/20 DOTA
[45:34]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.18
2020/12/19 DOTA
python实现调用其他python脚本的方法
2014/10/05 Python
python3中dict(字典)的使用方法示例
2017/03/22 Python
Python3学习笔记之列表方法示例详解
2017/10/06 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
2018/05/25 Python
如何在django里上传csv文件并进行入库处理的方法
2019/01/02 Python
浅谈python标准库--functools.partial
2019/03/13 Python
深入了解Python在HDA中的应用
2019/09/05 Python
python实现简易淘宝购物
2019/11/22 Python
python对Excel按条件进行内容补充(推荐)
2019/11/24 Python
利用keras加载训练好的.H5文件,并实现预测图片
2020/01/24 Python
Python 实现敏感目录扫描的示例代码
2020/05/21 Python
html5中如何将图片的绝对路径转换成文件对象
2018/01/11 HTML / CSS
英国最大的专业户外零售商:Mountain Warehouse
2018/06/06 全球购物
Moss Bros官网:英国排名第一的西装店
2020/02/26 全球购物
荣耀俄罗斯官网:HONOR俄罗斯
2020/10/31 全球购物
小学美术教学反思
2014/02/01 职场文书
大学生就业意向书范文
2014/04/01 职场文书
党委班子对照检查材料
2014/08/19 职场文书
省委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
2015年小学实验室工作总结
2015/07/28 职场文书
银行工作心得体会范文
2016/01/23 职场文书
微软团队与 NASA 科学家和惠普企业(HPE)的工程师合作
2022/04/21 数码科技