微信订阅号开发笔记(二)

微信开发的流程其实很简单 o(∩_∩)o 哈哈!在微信网站的编辑操作 额,就不说了。虽然有人问过。下面是我的微信开发过程,简单记录下。

成为开发者

材料:1、自己的服务器资源,百度的BAE,新浪的SAE都不错。

2、懂那么点编程语言。

3、注册微信公众号。

上面的都有了之后,就可以自己动手开发了。哇咔咔,好兴奋。有木有。

在登录进去之后,怎么成为开发者?不知道,自己看去。

开始coding吧。

1、验证

if (! empty ( $_GET [‘echostr‘] ) && ! empty ( $_GET ["signature"] ) && ! empty ( $_GET ["nonce"] )) {
            $this->valid();
        }
// valid token
    private function valid()
    {
        $echoStr = $_GET["echostr"];
        //valid signature , option
        if($this->checkSignature()){
            echo $echoStr;
            exit;
        }
    }
    // check Signature
    private function checkSignature()
    {
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];   

        $token = TOKEN;
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr);
        $tmpStr = implode( $tmpArr );
        $tmpStr = sha1( $tmpStr );

        if( $tmpStr == $signature ){
            return true;
        }else{
            return false;
        }
    }

就是这样,都是从官网开发文档抄来的。

2、接收消息

$postObj = simplexml_load_string($postStr, ‘SimpleXMLElement‘, LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$keyword = trim($postObj->Content);
$time = time();
$msgType = $postObj->MsgType;

3、处理消息

//接受普通消息--
if($msgType=="text"){
//收到文本消息
$contentStr = "Welcome to wechat world!".$ret." ok ";
$this->responseMsgText($fromUsername, $toUsername, $time,  $contentStr  );
            }
    //回复文本消息
    public function responseMsgText($fromUsername, $toUsername, $time,  $contentStr  )
    {
        $textTpl = "<xml>
                    <ToUserName><![CDATA[%s]]></ToUserName>
                    <FromUserName><![CDATA[%s]]></FromUserName>
                    <CreateTime>%s</CreateTime>
                    <MsgType><![CDATA[text]]></MsgType>
                    <Content><![CDATA[%s]]></Content>
                    </xml>";            

        $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time,   $contentStr);
        echo $resultStr;
    }

上面只是简单的回复文本消息,还可以根据各种模版,发送图片、图文、语音等消息。

微信订阅号开发笔记(二),布布扣,bubuko.com

时间: 2024-10-20 07:36:11

微信订阅号开发笔记(二)的相关文章

微信订阅号开发笔记(三)

1.接收语音识别结果 if($msgType=="voice"){ //收到语音消息 //MediaId 语音消息媒体id,可以调用多媒体文件下载接口拉取数据. //Format 语音格式,如amr,speex等 $format = $postObj->Format; $mediaId = $postObj->MediaId; //开通语音识别功能,用户每次发送语音给公众号时,微信会在推送的语音消息XML数据包中,增加一个Recongnition字段. //注:由于客户端缓

微信订阅号开发笔记(四)

1.创建菜单 //创建菜单 public function createMenu(){ $url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token="; $url.=$this->getacctoken(); //目前自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单.一级菜单最多4个汉字, //二级菜单最多7个汉字,多出来的部分将会以"..."代替.请注意,创建自定义菜单

微信订阅号开发笔记(五)

1.用户管理 //查询所有分组 public function queryGroups(){ $url = "https://api.weixin.qq.com/cgi-bin/groups/get?access_token="; $url.=$this->getacctoken(); $result = $this->cget($url); header("Content-type: text/html; charset=utf-8"); print_

微信公众号开发笔记1(nodejs开发的)

本篇记录了微信公众号开发的一些笔记 一.微信服务器与我们服务器的交流 微信开发者拥有自己的服务器,在我们服务器上可以与微信服务器进行交流.既然可以交流,那就必定需要前提条件(微信认证),也就是说,只有自己的服务器与微信服务器进行认证通过后,才能与他交流.如何进行认证? 1. 接口认证 接口的认证是token验证,微信服务器会发送一个get请求给我们在公众号配置的接口,如http://xxxx/weixin/api ,这个请求带了如下参数 然后,微信规定我们 1)将token.timestamp.

微信公众号开发(二)用户关注

微信公众号开发之用户关注   前面讲了基本配置,如果配置成功,那么现在就进入我们的微信公众号开发之旅吧! 这个旅程应该从哪里开始比较好呢?想想....首先说用户关注吧 !毕竟这是入口. 用户关注公众号可以通过三种方式: 1.扫公众号的二维码 2.搜索公众号的名称 3.扫带参数的二维码,但是第一个用户只能通过前面两种方式关注. 一.扫公众号的二维码 用户扫了二维码之后,点击关注,微信服务器会向我们的服务器发送一串数据(对象形式): reqMap:{ FromUserName:xx, EventKe

微信公众号开发笔记

试了一段时间的微信公众号开发,本文主要以图片和代码的形式,介绍一些公众号开发的内容. 基于微信公众号的第三方开发,主要是需要搞清楚[微信用户],[微信服务器],[第三方服务器]三者之间的数据流程和走向,废话不说,直接上图吧. 1. 第三方URL验证,微信用户关注公众号事件 2. 用户发送消息,点击自定义菜单事件 3. 设置公众号自定义菜单 4. 网页开发授权 暂时先发这4张图,代码后续再发.希望对开发者有所帮助.

微信订阅号开发-1

前天申请了个微信订阅号,准备试试php开发微商场. 今天中午去bae搞了个服务器,然后就开始验证token,到晚上才弄完.别人的服务器用着就是麻烦,更新一下代码就要push到git上,对接口不熟悉真的是太浪费时间了.下面是终于测试成功的token验证代码. 1 class Main 2 { 3 private $sign; //微信加密签名 4 private $time; //时间戳 5 private $nonce; //随机数 6 private $echostr; //随机字符串 7 p

微信服务号开发笔记

原理 微信服务号的原理比较简单.从请求响应角度来看,逻辑是: 用户微信客户端 <—> 微信服务器 <—> 微信服务号后台程序 <—> 数据库或Web Service 也就是,用户的各种请求先经过微信的服务器,微信服务器将请求转发给微信服务号后台程序. 既然是微信服务器把用户请求数据转发给我们开发的微信服务号后台程序,那么在启用服务号的开发模式时就需要提供一个URL.另外为了安全 考虑,还需要提供一个token,用来校验请求是否来自微信服务器.校验的方法见微信开发者文档.

微信公众号项目笔记 二

一.项目介绍  通过公众号页面调用系统接口,完成物流系统客户签收功能. 1界面展示使用html5+css布局,使用weui样式库. 2Web项目使用asp.net MVC4技术.接口调用使用jquery库Ajax异步调用. 3 服务器环境server2008系统,Web容器IIS6 运行环境.net4.0 集成模式 二.用到知识点 1.  用户权限管理,首次登录保存用户token(openId)客户唯一标识符,微信公众号平台获取关注公众号的用户返回给系统调用,系统通过与工作号绑定的webAPI接