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;
      }
    }
  }
?>

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

(0)

相关推荐

  • 微信开发 消息推送实现代码

    最近做微信公共号的开发,有个需求是这样的消息推送,以文本的形式把编辑的消息发送给微信企业号中的某一个应用组,这里做下笔记,以下是整理内容: //定义数据模型 public class Access_token { public Access_token() { // // TODO: 在此处添加构造函数逻辑 // } string _access_token; string _expires_in; /// /// 获取到的凭证 /// public string access_token {

  • 比较完整的微信开发php代码

    本文实例为大家分享了微信开发php代码,供大家参考,具体内容如下 <?php //封装成一个微信接口类 class WeixinApi { private $appid; private $appsecret; //构造方法 初始化赋值 public function __construct($appid="",$appsecret="") { $this->appid = $appid; $this->appsecret = $appsecret

  • php版微信开发之接收消息,自动判断及回复相应消息的方法

    本文实例讲述了php版微信开发之接收消息,自动判断及回复相应消息的方法.分享给大家供大家参考,具体如下: 微信的api现在己经强大到可以随意调用我们网站或指定数据库的内容进行自能回复现推送消息了,这里就来给大家介绍一个微信开发的笔记. 发送1,2,3,7测试相应的消息,菜单模式需要升级为服务号,或者订阅人数超过500以上. 1. 用户发送的消息都是通过你提交的开发者URL来接收,这里订阅号就可以搞定,发送过来的都是xml格式数据,需要解析,代码如下: $data = $GLOBALS["HTTP

  • 微信开发 微信授权详解

    最近有机会做到一个微信项目:把其中自己整理的笔记分享给大家,有不足或错误的地方望大家指正! 1关于微信授权这块的流程图,如下 一些代码碎片仅供参考: var myNickname; var myHeadimgurl; var activityId; function saveData() { //$("#divShow").show(); var obj = {}; obj.openId = myOpenId; obj.nickname = myNickname;// 微信昵称 obj

  • 微信开发之使用java获取签名signature

    一.前言 微信接口调用验证最终需要用到的三个参数noncestr.timestamp.signature: 接下来将会给出获取这三个参数的详细代码 本文的环境eclipse + maven 本文使用到的技术HttpClient.Json字符串转map.sha1加密 二.需要用到的jar包 maven依赖的包有: 1.HttpClient包依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <ar

  • php微信开发之带参数二维码的使用

    最近做微信PC端网页微信相关功能的开发,从一个新手的角度来说,微信公众号的文档还是不好理解的,网上找的帖子大都也都基本上是复制微信公众平台上给的文档,开发微信带参数二维码过程中还是遇到不少坑的,在此把我的开发过程比较详细的记录下,希望对大家有所帮助. 我本次开发使用的是认证服务号. 1 接入 首先进入微信公众号 -> 基本配置  下面是基本配置的页面,在URL中填写服务器地址,这个地址就是接受微信推送事件的一个接口,我是使用thinkPHP框架开发的程序,在其中一个Module(Decorati

  • php微信开发之批量生成带参数的二维码

    带参数的二维码对于渠道营销推广来说是很有用的,可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送,可喜的是微信开通了这个接口,那下面就来研究一下吧.  具体接口说明请参见,微信公众平台开发者文档(http://mp.weixin.qq.com/wiki/18/28fc21e7ed87bec960651f0ce873ef8a.html) ,我这里就直接上代码.  演示图: 由于带参数二维码生成是有限的,所有我是按编号生成的,下次生成的时候直接累加. 另外带设置有备注,方便以后统

  • java微信开发API第四步 微信自定义个性化菜单实现

    微信如何实现自定义个性化菜单,下面为大家介绍 一.全局说明 详细说明请参考前两篇文章. 二.本文说明 本文分为五部分:     * 工具类AccessTokenUtils的封装     * 自定义菜单和个性化菜单文档的阅读解析     * 菜单JSON的分析以及构建对应bean     * 自定义菜单的实现     * 个性化菜单的实现 微信自定义菜单所有类型菜单都给出演示 本文结束会给出包括本文前四篇文章的所有演示源码 工具类AccessTokenUtils的封装 在上文中关于AccessTo

  • php微信开发接入

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

  • asp.net微信开发(开发者接入)

    先上图,看一看需要进行哪些项目的操作: 在项目的根目录或者特定的文件夹内,创建一个ashx文件(一般处理程序文件),如图 public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string postString = string.Empty; if (HttpContext.Current.Request.HttpMethod.ToUpper() ==

  • java微信开发API第一步 服务器接入

    微信开发API如何接入服务器,下面就为大家进行介绍 一.说明 * 本示例根据微信开发文档:http://mp.weixin.qq.com/wiki/home/index.html最新版(4/3/2016 5:34:36 PM )进行开发演示. * 编辑平台:myeclipse10.7+win32+jdk1.7+tomcat7.0  * 服务器:阿里云 windows server 2008 64bits * 平台要求:servlet使用注解方式,平台要求:j2ee6.0+.jdk6.0+.tom

  • 微信开发(一) asp.net接入

    想要微信开发,首先要有个服务器,但是自己没有.这时候可以用花生壳,将内网映射到公网上,这样就可以在公网访问自己的网站了.具体见:http://www.jb51.net/article/83783.htm 然后要写一个接入代码,而微信上只有php是示例.这里附上asp.net的示例.  首先创建一个Default.aspx.在Page_Load里进行检验:(MyLog是日志类,可以忽略)   关于checkSignature()就和所查到的差不多了.这里贴一下 MyLog.DebugInfo("r

  • nodejs微信开发之接入指南

    最近又拾起了微信开发,之前的公众号是用的flask进行开发的,所以最近想要用nodejs改写一下,这些算是记录吧,边写代码边写下这篇文章. 因为我对nodejs也并不是那么的熟悉,仅仅是新手的状态,如果有错误的地方请指出. 文章最后会放出源码.公众号部署在leancloud,这里也会稍微介绍一下leancloud的云引擎,方便部署. 这部分文章涉及的代码不多,多是工具的介绍以及一个接入指南. 内网穿透 由于微信开发的端口必须是80(最近貌似增加了443),所以一个内网穿透工具还是很有必要的.我个

  • 使用Android开发接入第三方原生SDK实现微信登录

    微信开放平台 : https://open.weixin.qq.com/ 一.准备工作 : 1. Android Studio环境下:在build.gradle文件中,添加如下依赖即可: dependencies { implementation'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+' } 2. 在清单文件AndroidManifest.xml中加入权限: <uses-permission android:name="an

  • ASP.NET MVC开发接入微信公共平台

    目录 申请微信公共账号 编写网站逻辑 配置微信公共平台上的信息 申请微信公共账号 既然要接入微信公共平台,微信公共号是必须的(当然如果只是测试的话也可以申请微信公共平台接口测试账号),来这里微信公共平台 申请微信公共号(注:申请微信公共号不能用已绑定微信的邮箱),微信公共平台有自己的官方文档,官方文档有不少资料,可以多看看,开发者模式默认是关闭的,需要配置并启用,如下图: URL即你的网站处理微信模块,必须是HTTP://开头的网站,笔者自己之前接入几天一直失败,最终发现是因为自己网站加密了用的

  • java微信开发第二步 获取消息和回复消息

    接着上一篇java微信开发API第一步 服务器接入进行学习,下面介绍java微信开发第二步:获取消息和回复消息,具体内容如下 * 本示例根据微信开发文档:http://mp.weixin.qq.com/wiki/home/index.html最新版(4/3/2016 5:34:36 PM )进行开发演示. * 编辑平台:myeclipse10.7+win32+jdk1.7+tomcat7.0  * 服务器:阿里云 windows server 2008 64bits * 平台要求:servlet

  • ASP.NET微信开发(接口指南)

    公众平台用户提交信息后,微信服务器将发送GET请求到填写的URL上,并且带上四个参数: 开发者通过检验signature对请求进行校验(下面有校验方式).若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,否则接入失败. signature结合了开发者填写的token参数和请求中的timestamp参数.nonce参数. 加密/校验流程: 1. 将token.timestamp.nonce三个参数进行字典序排序 2. 将三个参数字符串拼接成一个字符串进行sha1加密

  • asp.net微信开发(消息应答)

    当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上. 请注意: 1.关于重试的消息排重,推荐使用msgid排重. 2.微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次.假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试.详情请见"发送消息-被动回复消息". 3.为了保证更高的安全保障,开发者可以在公众平台官网的开发者中心处设置消息加密.开启加密后,用户发来的消息会被加密

随机推荐