php微信开发接入

yipeiwu_com5年前PHP代码库

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

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

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

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

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

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

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

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

开发者通过检验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;
      }
    }
  }
?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【宜配屋www.yipeiwu.com】。

相关文章

PHP中str_replace函数使用小结

这段时间在看《PHP和MySQL Web开发》一书看到str_replace讲解,一段小提示写到:可以为str_replace的三个都使用数组传入,但讲解比较简单,于是决定自己的试验一下...

php基础知识:类与对象(1)

php基础知识:类与对象(1)

类的定义:   以关键字 class 开头,后面跟着类名,可以是任何非 PHP 保留字的名字。后面跟着一对花括号,里面包含有类成员和方法的定义。伪变量$this可以在...

php学习之数据类型之间的转换代码

复制代码 代码如下: /*数据类型之间相互转换 * 一种是强制转换 * setType(变量,类型); //int,integer,float,double等等。 * 这个函数将原变量的...

在PHP中实现Javascript的escape()函数代码

这里,一般都需要预先将正常的字符串编码成 JavaScript unescape() 函数能够解译的格式,以 PHP 为例,可以使用以下函数实现 Javascript 中 escape(...

浏览器关闭后,能继续执行的php函数(ignore_user_abort)

多的不说,直接上代码: 复制代码 代码如下: ignore_user_abort(true); //设置客户端断开连接时是否中断脚本的执行 set_time_limit(0); $fil...