美文网首页让前端飞
微信公众号开发-入门篇

微信公众号开发-入门篇

作者: 马大哈tt | 来源:发表于2017-11-27 21:23 被阅读0次

微信公众号分为三种类型:

  1. 订阅号;
  2. 服务号;
  3. 企业号;
    想要进行微信公众号的开发,必须熟悉一门后台开发语言,如java、php、.net等都可以,接着你需要有一个自己的服务器,像阿里云,新浪云,腾讯云等官网上都能买一个服务器,选个性价比高的就ok啦。然后你要做的就是仔细研究开发者文档,这个很重要。
    链接:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1472017492_58YV5
    接下来介绍几个功能实现的具体步骤:
1. 验证服务器接口

验证微信服务器接口,直接输出echostr

echo $_GET['echostr'];
exit;

进入开发者文档,选择入门指南里的申请公众号


01E3EB26226D94A3E38C3168D47CA657.png

1.4开发者基本设置,设置url接口和token


A12CFDBA-7BCF-4E06-915C-0277B0D5D624.png
提交成功后生成一个二维码
6A0622DF-DB55-4598-83F0-0651B694ACE3.png
2. 错误信息调试
// 当前文件即为消息接口文件
// 错误调试信息
error_reporting(E_ALL);
ini_set("display_errors","On");
3. 解析xml结构数据

就是将xml格式的数据转化成数组形式,原理和json相似。每一行都写了注释,大家有疑问可以看注释

// 引入xml解析类,用于解析xml结构数据,将xml转变成数组操作
include "xmlparse.php";
// 接受微信服务器的原始数据
$input = file_get_contents("php://input");
$XMLParse = new XMLParse();// 创建一个xml解析器实例
// 将接受的数据记录到test.txt 用于调试:http://www.php-xp.com/student/
$fp = fopen("test.txt","w");
fwrite($fp,$input);
fclose($fp);
// $message为解析后的结果,解析后,xml转变成数组
$message = $XMLParse->getXmlData($input);
4. 根据不同消息类型做出回应

消息回复有文本回复,图片发送,语言回复等等,我们以文字回复与图片回复为例;

// MsgType是指消息类型
// text指文本消息
switch($message['MsgType']){
    case "text":
    echo returnTextMessage($message);
    case "image":
//  print_r($message);
    echo returnImgMessage($message);
    
}

下面是文本消息回复,假设是商家做活动,用户发送"one",回复 打0.5折,用户发送"two",回复 打0.8折;用户发送别的文本内容,告诉用户 "查询不到对应的优惠"。

function returnTextMessage($message){
    $time = time();
    // print_r($message);
    $discount = array("one"=>0.5,"two"=>0.8);
    switch($message["Content"]){
        case "one":
        $reply = "打0.5折";
        break;
        case "two":
        $reply = "打0.8折";
        break;
        default:
        $reply = "查询不到对应的优惠";
    }
    $replyMessage = <<<EOF
<xml>
<ToUserName><![CDATA[{$message['FromUserName']}]]></ToUserName>

<FromUserName><![CDATA[{$message['ToUserName']}]]></FromUserName>

<CreateTime>12345678</CreateTime>

<MsgType><![CDATA[text]]></MsgType>

<Content><![CDATA[$reply]]></Content>

</xml>
EOF;
    return $replyMessage;
}

上面$replyMessage是回复的消息,是xml格式的,开发者文档里有,直接复制过来,该一下数据就可以了。
下图:


8ADEE929300AD28EDDF6A10FB4D45273.png

图片回复,语音回复等就不一一说了,写法与上面类似,主要是你想实现什么功能,写对应的逻辑代码,xml格式的那一串文档里都有,直接复制就可以了。

5. 自定义菜单

定义APPId和AppSecret,作为url参数的值,使用access_token做为信号传输。

// 定义APPId,需要在微信公众号平台申请自定义菜单后会得到
    define(AppId,"wx4e5d170fcd409db6");
    // 定义AppSecret
    define(AppSecret,"9017f89fff1a495dcf26b633dbb9b0d1");
    $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".AppId."&secret=".AppSecret;
    $result = file_get_contents($url);
    echo $result;
    $data = json_decode(file_get_contents($url),true);
    if($data["access_token"]){
        // access_token 是access_token存储文件名
        $fp = fopen("access_token","w");
        fwrite($fp,$data['access_token']);
        fclose($fp);
        // 输出token,测试时使用
        echo file_get_contents("access_token");
    }

定义数组存放菜单列表,使用type为view时,需要链接一个地址,例如点击关于我们就跳转到百度页面。

$menu_1 = array(
    'name' => '关于我们',
    'type' => 'view',
    'url' => 'http://www.baidu.com/'
    );
    $menu_2 = array(
    'name' => '联系我们',
    'type' => 'view',
    'url' => 'http://www.jianshu.com/'
    );
    $menu = array('button'=>array($menu_1,$menu_2));
    // 将菜单数组转换成json串
    $menu = json_encode($menu,JSON_UNESCAPED_UNICODE);
    echo $menu;

access_token填写上面 $fp = fopen("access_token","w"); access_token的值;
body填写上面json串的值,点击检查问题,看是否能成功。


44DA607D-1311-416C-9AF3-16B031A526BA.png

最终实现的简易效果如下:


Screenshot_2017-11-27-21-00-42-085_com.tencent.mm.png
END~~~~

相关文章

  • 微信开发

    微信开发 公众号开发 微信WEB开发 JSSDK 小程序开发 公众号开发 公众号 订阅号 服务号 企业号 公众号开...

  • 微信公众号开发 (4) 网页授权

    一、前言 微信公众号开发 (1) 微信接入认证成为开发者 微信公众号开发 (2) 消息处理 微信公众号开发 (3)...

  • 微信公众号开发:微信服务号和订阅号的区别!

    微信开发又称微信公众平台开发、或微信公众号开发,分为微信服务号、微信订阅号、以及微信企业号,其中服务号和订阅号是企...

  • 微信公众号开发-入门篇

    微信公众号分为三种类型: 订阅号; 服务号; 企业号;想要进行微信公众号的开发,必须熟悉一门后台开发语言,如jav...

  • PHP微信公众号支付开发总结

    微信公众号开发是很常见的开发,其中微信支付占有很大的比重。微信公众号分为服务号和订阅号,服务号支持微信支付。 前期...

  • 基于JavaEE——微信网页(二)微信开发

    微信开发测试公众号(沙盒号) 微信API帮助文档 微信接口在线调试 首先申请微信开发的测试公众号,登陆后会看到微信...

  • 1 - 简介

    微信公众号开发 又称微信公众号二次开发。可以将公众账号由一个媒体型营销工具转化成提供服务的产品。 微信公众号开发的...

  • 微信公众号开发 (3) 菜单处理

    一、前言 微信公众号开发 (1) 微信接入认证成为开发者 微信公众号开发 (2) 消息处理 本文将实现 根据App...

  • 微信公众号开发之入门篇

    本篇技术博客来自Worktile 微信之父 @龚林杰的动情分享,为您详细讲述我们微信公众号【getworktile...

  • 微信服务器接入

    这几天正在学习微信公众号开发,后台JAVA基于SSM框架对微信公众号进行开发。 微信公众平台“基本配置”。详细请参...

网友评论

    本文标题:微信公众号开发-入门篇

    本文链接:https://www.haomeiwen.com/subject/kpadbxtx.html