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 数组排序 array_multisort与uasort的区别
Mar 24 PHP
destoon实现VIP排名一直在前面排序的方法
Aug 21 PHP
php获取错误信息的方法
Jul 17 PHP
ThinkPHP在Cli模式下使用模板引擎的方法
Sep 25 PHP
关于PHP中Session文件过多的问题及session文件保存位置
Mar 17 PHP
理清PHP在Linxu下执行时的文件权限方法
Jun 07 PHP
微信开发之获取JSAPI TICKET
Jul 07 PHP
PHP实现的各类hash算法长度及性能测试实例
Aug 27 PHP
visual studio code 调试php方法(图文详解)
Sep 15 PHP
PHP中cookie知识点学习
May 06 PHP
PHP实现简单用户登录界面
Oct 23 PHP
php 函数中静态变量使用的问题实例分析
Mar 05 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
phpMyAdmin 链接表的附加功能尚未激活的问题
2010/08/01 PHP
PHP实现的ID混淆算法类与用法示例
2018/08/10 PHP
基于jquery扩展漂亮的CheckBox(自己编写)
2013/11/19 Javascript
JavaScript设计模式学习之“类式继承”
2015/03/12 Javascript
JavaScript实现简单的二级导航菜单实例
2015/04/15 Javascript
使用node+vue.js实现SPA应用
2016/01/28 Javascript
js和jq使用submit方法无法提交表单的快速解决方法
2016/05/17 Javascript
微信小程序 rpx 尺寸单位详细介绍
2016/10/13 Javascript
JScript实现表格的简单操作
2017/08/15 Javascript
JavaScript实现三级级联特效
2017/11/05 Javascript
Less 安装及基本用法
2018/05/05 Javascript
webpack项目轻松混用css module的方法
2018/06/12 Javascript
vue模块拖拽实现示例代码
2019/03/09 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
2020/08/17 Javascript
[50:34]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python网络编程之文件下载实例分析
2015/05/20 Python
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
利用Python循环(包括while&amp;for)各种打印九九乘法表的实例
2017/11/06 Python
zookeeper python接口实例详解
2018/01/18 Python
对python xlrd读取datetime类型数据的方法详解
2018/12/26 Python
python滑块验证码的破解实现
2019/11/10 Python
python matplotlib 画dataframe的时间序列图实例
2019/11/20 Python
Python使用Turtle库绘制一棵西兰花
2019/11/23 Python
在Django下创建项目以及设置settings.py教程
2019/12/03 Python
关于Python Tkinter Button控件command传参问题的解决方式
2020/03/04 Python
LUISAVIAROMA德国官网:时尚奢侈品牌购物网站
2020/11/12 全球购物
如何利用find命令查找文件
2015/02/07 面试题
卫校中专生个人自我评价
2013/09/19 职场文书
交通事故私了协议书
2014/04/16 职场文书
银行金融服务方案
2014/06/11 职场文书
五五普法心得体会
2014/09/04 职场文书
毕业论文致谢范文
2015/05/14 职场文书
大学生入党群众意见书
2015/06/02 职场文书
运动会新闻稿
2015/07/17 职场文书
2019财务管理制度最新范本!
2019/07/09 职场文书
本地搭建minio文件服务器(使用bat脚本启动)的方法
2022/07/15 Servers