公众号开发(一)

订阅号与服务号的区别:

1、申请主体

2.主要用途

服务号:为企业和组织提供更强大的业务服务与用户管理能力,主要偏向服务类交互;

订阅号:为媒体和个人提供一种新的信息传播方式,主要功能是在微信侧给用户传达资讯;

3.消息展示服务号的推送消息直接显示在好友对话列表中;订阅号的推送消息则是显示在“订阅号消息”文件夹中;

4.群发次数

服务号:1个月(按自然月)内可发送4条群发消息。

订阅号:(认证用户、非认证用户)1天内可群发1条消息。

公众平台的两种模式:

1、编辑模式:直接使用微信公众平台所提供的后台操作进行用户交互。编辑模式可以使用在如下的场景:不具备开发能力的运营者,主要是进行品牌宣传、新闻媒体、自助客服的公众账号,运营初期,不需要特别多的功能,开发模式系统升级,故障等特殊情况

2、开发者模式:直接使用接口代码实现用户的交流

认识一下编辑模式:

消息群发:在这里插入图片描述
在这里插入图片描述
自定义菜单

这里如果启用了开发者模式中的服务器配置就会强制关闭自定义菜在这里插入图片描述
在这里插入图片描述
自动回复
在这里插入图片描述

开发者模式

注意:在开启开发者模式之后编辑模式中部分功能不能正常使用。即开发者模式跟编辑模式存在冲突。

在这里插入图片描述

为了线上服务器可以正确响应微信发送的token验证,线上代码为

$signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];
	$flag = '';
    $token = TOKEN;
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr, SORT_STRING);
    $tmpStr = implode( $tmpArr );
    $tmpStr = sha1( $tmpStr );
    
    if( $tmpStr == $signature ){
      $flag= true;
    }else{
        $flag =false;
    }
  if($flag){
      echo $_GET['echostr']
    }

开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:

测试回复消息功能

        $postStr = file_get_contents('php://input');    
        if (!empty($postStr)){
             libxml_disable_entity_loader(true);
             $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
             $fromUsername = $postObj->FromUserName;
             $toUsername = $postObj->ToUserName;
             //发送的消息
            $keyword = trim($postObj->Content);
            $time = time();
$textTpl = "<xml>
                            <ToUserName><![CDATA[%s]]></ToUserName>
                            <FromUserName><![CDATA[%s]]></FromUserName>
                            <CreateTime>%s</CreateTime>
                            <MsgType><![CDATA[%s]]></MsgType>
                            <Content><![CDATA[%s]]></Content>
                            <FuncFlag>0</FuncFlag>
                            </xml>";
                if(!empty( $keyword ))
{
      $msgType = "text";
      //回复的消息
    $contentStr = "Welcome to wechat world!";
    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
    echo $resultStr;
}else{
    echo "Input something...";
}

}else {
    echo "";
    exit;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值