微信开发初探

一、前期准备

  1、搭建服务器,创建应用,配置域名,

  

  2、申请公众号,开启开发者模式,进入公众平台测试账号,修改接口配置信息,URL和上面服务器的域名相同,Token自己随便设置。然后下面有测试号二维码,用手机扫一扫就可以关注进行测试。

  

  3、在开发者工具页面进入开发者文档,一切准备就绪。

二、在本地建一个文件夹,名字为1,在这个文件夹下,从服务器的svn仓库把代码checkout下来,新建index.php文件,开始写代码了。

<?php

    $WechatObj = new wechatCallbackapiTest($appID,$appsecret);

    if (!isset($_GET[‘echostr‘])) {

        $WechatObj ->action();
    }else{
        $WechatObj ->valid();
    }

class wechatCallbackapiTest {

    public function valid() {
        $echoStr = $_GET["echostr"];
        if($this->checkSignature()){
            echo $echoStr;
            exit;
        }
    }

    //加密签名,检验该请求是否来源于微信
    private function checkSignature(){
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr, SORT_STRING);
        $tmpStr = implode($tmpArr);
        $tmpStr = sha1($tmpStr);

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

    //微信操作
    public function action(){
        echo ‘helloworld‘;
    }
}

三、以上代码是必须的,接下来就可以看着开发文档一步步进行啦。

  1、实现公众号自动回复。 

//自动回复
    public function response_msg(){
        $poststr = $GLOBALS[‘HTTP_RAW_POST_DATA‘];//接收用户信息
        $postobj = simplexml_load_string($poststr,‘SimpleXMLElement‘,LIBXML_NOCDATA);//将xml转换为对象
        $fromusername = $postobj ->FromUserName;//消息发送方
        $tousername = $postobj ->ToUserName;//消息接收方
        $type = $postobj ->MsgType;//消息类型
        $event = $postobj ->Event;//事件
        $event_key = $postobj ->Event_Key;
        $mid = $postobj ->MediaId;//媒体消息id
        $link = $postobj ->Url;//链接消息地址
        $latitude = $postobj ->Location_X;//位置的经度
        $longitude = $postobj ->Location_Y;//纬度

        $keyword = trim($postobj ->Content);//用户发送的关键字,去除多余空格
        $time = time();//消息接收时间

        //文本模板
        $textTpl = "
            <xml>
            <ToUserName><![CDATA[%s]]></ToUserName>
            <FromUserName><![CDATA[%s]]></FromUserName>
            <CreateTime>%s</CreateTime>
            <MsgType><![CDATA[text]]></MsgType>
            <Content><![CDATA[%s]]></Content>
            </xml>";
if($type == ‘text‘){
            switch ($keyword) {
                case ‘早上好‘:
                    $content = ‘早安,又是美好的一天!‘;break;
                case ‘晚安‘:
                    $content = ‘美好的一天过去了,晚安,你和世界!‘;break;
                default:
                    $content = ‘熊孩子,你好呀!‘;break;
            }

        }elseif($type == ‘event‘){
            switch ($event) {
                case ‘subscribe‘:
                    $content = ‘欢迎关注,带你进入奇妙有趣的微信公众号开发之旅‘;break;
                case ‘unsubscribe‘:
                    $content = ‘欢迎再次关注!‘;break;
            }
        }else{
            switch ($type) {
                case ‘image‘:
                    $content = ‘image‘.$mid;break;
                case ‘voice‘:
                    $content = ‘voice‘.$mid;break;
                case ‘music‘:
                    $content = ‘music‘.$mid;break;
                case ‘video‘:
                    $content = ‘video‘.$mid;break;
                case ‘location‘:
                    $content = $latitude.‘,‘.$longitude;break;
                case ‘link‘:
                    $content = $link;break;
            }

        }
        $result = printf($textTpl,$fromusername,$tousername,$time,$content);
        echo $result;
    }

  2、上面公众号自动回复的全是文本消息,下面看看还有些什么类型的消息。

  

  

时间: 2024-11-25 10:37:28

微信开发初探的相关文章

【微信开发】网页授权多域名解决方案

在做微信开发的时候,会遇到这样的场景:一个公众号,会有多个业务:官网.论坛.商城等等 网页授权是只能一个域名,那么问题来了?这怎么搞? 答案就是: 做一个中转服务! 域名1: www.test.com 域名2: bbs.test.com 这时候,再解析一个二级域名:code.test.com 作为中转授权域名 并在微信公众平台后台网页授权域名地方填写这个 中转域名 www.test.com   授权代码改为: header("location:http://code.test.com/code.

Java企业微信开发_09_身份验证之移动端网页授权(有完整项目源码)

注: 源码已上传github: https://github.com/shirayner/WeiXin_QiYe_Demo 一.本节要点 1.1 授权回调域(可信域名) 在开始使用网页授权之前,需要先设置一下授权回调域.这里瞬间想到之前做JSSDK的时候,也设置过一个域名.二者本质上都是设置可信域名. 当用户授权完毕之后,请求将重定向到此域名(或者子域名)下的执行者(jsp页面或者servlet等).如何设置授权回调域,请见第二节. 1.2 获取Code https://open.weixin.

夺命雷公狗---微信开发23----客服消息接口基础和推送文本

我们这边课程里面一共用到了三个文件,分别是WeChat.class.php和common.php以及index.php 我们在写这个功能之前也要学会查手册,手册我们可以在微信开发这里找到,如下所示: 点击进去后我们将会看到客服接口,我们可以点击下进去看看里面有什么动动 这里有一个发送文本消息的,我们点击进去看下 这里很明显就看到文本消息是通过一个json数据来进行实现的,废话不多说,开工 这里我们先来写一个WeChat.php的文件,这里作用主要适用于封装一个CURL上传类的,代码如下所示: <

微信开发学习总结(一)—微信开发环境搭建

目前移动App开发领域主要分为以下几种类型: 一.微信开发环境搭建 1.要有一个用来测试的公众号. 2.用来调式代码的开发环境 1.1.注册测试公众号 微信公众号分为服务号.订阅号.企业号,订阅号可以个人申请,服务号和企业号要有企业资质才可以. 我们所说的微信公众号开发指的是订阅号和服务号. 关于订阅号和服务号的区别,官方是这样解释的 服务号:主要偏向于服务交互(功能类似12315,114,银行,提供绑定信息,服务交互),每月可群发4条消息:服务号适用人群:媒体.企业.政府或其他组织. 订阅号:

微信开发之如何使用开发工具--weixin-java-tools

一.前沿 微信公众平台由于没有提供针对语言的开发包,只公布了一个基于Http协议的接口和加解密的算法sdk,这样给微信公众号的开发者带来很多工作量,除了实现业务逻辑外,还需要自己处理底层的接口协议细节,因此选择一个良好的sdk能够节省这样的工作量,而目前已经有不少的开源sdk可供使用,java语言的微信公众号sdk也有不少,那么作为java开发者我们应该如何选择呢?我将带着各位对java开源的一些微信公众号的sdk进行各方面的对比分析,为读者选择适合自己的sdk包提供一些帮助. 二.为什么要用w

Java企业微信开发_03_通讯录同步

一.本节要点 1.获取通讯录密钥 获取方式: 登录企业微信—>管理工具—>通讯录同步助手—>开启“API接口同步”  ; 开启后,即可看到通讯录密钥,也可设置通讯录API的权限:读取或者编辑通讯录. 获取通讯录密钥的目的: 通过企业ID(CorpId)和 通讯录密钥可以获取通讯录相关接口的使用凭证(AccessToken).有了AccessToken,就可以使用通讯录相关接口了. 凭证的获取方式有两种(此处暂时存疑,以待勘误): 通讯录AccessToken:CorpId+通讯录密钥 其

Unity3D游戏开发初探—2.初步了解3D模型基础

一.什么是3D模型? 1.1 3D模型概述 简而言之,3D模型就是三维的.立体的模型,D是英文Dimensions的缩写. 3D模型也可以说是用3Ds MAX建造的立体模型,包括各种建筑.人物.植被.机械等等,比如一个大楼的3D模型图.3D模型也包括玩具和电脑模型领域. 互联网的形态一直以来都是2D模式的,但是随着3D技术的不断进步,在未来的时间里,将会有越来越多的互联网应用以3D的方式呈现给用户,包括网络视讯.电子阅读.网络游戏.虚拟社区.电子商务.远程教育等等.甚至对于旅游业,3D互联网也能

微信开发束缚了你的思想

最近通过在新浪云上建立了自己的应用,进行了微信的开发.渐渐对微信开发由开始的好奇变成了一种轻视的态度(当然此处不乏装逼的嫌疑.)下面谈谈自己对微信开发的一点理解,希望对即将进行微信开发的人员有一点帮助. 微信开发的关键就是有一个可以线上调试的域名.空间.之前,在网上搜索各种免费的域名.空间啊,然后就是各种注册,最后还是没得到.有的获得了域名.空间,但是速度那是相当的慢啊.恰巧公司同事有在做微信开发的,下班的时候就询问了一下,如何获得域名.空间啊.然后就知道了新浪云,可以以较少的费用获取新浪云,当

微信开发系列----01.开发者的资格

利用第三方的SDK[Senparc.Weixin.MP]来开发属于自己的微信公众号. 此项目的GitHub地址:https://github.com/Andyahui/xgyxsh_WeiXin 这个系列是自己做的一个dome,主要想通过这个练习理清微信开发的基本流程和网站开发的思路,学会在项目实战中学习知识,使自己朝大牛的路上更近一步. 废话不多说--进入主题. 一:开发工具大礼包 微信公众平台开发者API: 微信公众号平台接口调试工具: Senparc.Weixin.MP的github地址: