公众号

  • 包名(mp)
  • 目录(app/mp)

必须是认证的服务号,方可使用。

配置

登录公众号 mp.weixin.qq.com

在 设置与开发 -> 基本配置 找到 服务器配置

消息加解密方式 选 安全模式(推荐)

URL填写

域名/mp/open/server

H5登录

域名/mp/open/index?/mp/open/welcome

支持功能

支持:菜单关注回复关键词回复

回复支持:文本图文素材

菜单支持:URL图文图片(素材)打开小程序

同步聊天记录、同步素材

用户扫码事件处理

add_action('mp.server',function(&$arr)){
 $arr['ret_message'] = "有值时会向用户返回信息";
});

其中$arr数组key有eventmsg_typeevent_keycontentopenid

需要记录日志的话请使用 trace($msg,'info')函数

$arr['ret_message']的格式

  • 文本
$arr['ret_message'] = '文本内容';
  • 素材图片
$arr['ret_message'] = [
    'MsgType'=>'image',
    'Image'=>['MediaId'=>$media_id],
];

同步素材及聊天记录

  • 开启计划任务
php think mp_sync

可每小时执行一次

技术相关

  • 通过H5授权取用户信息
$one = get_user_openid($openid,'weixin_mp');  

将有 nicknameavataraccess_tokenrefresh_token

  • 取用户openid是否关注了公众号
$res = db_get("mp_subscribe",['openid'=>$openid],1);

其中 eventsubscribeunsubscribe,时间字段subscribe_atunsubscribe_at 分别表示关注时间、取消关注时间。

  • 公众号接口查寻用户当前是否关注公众号
mp_get_user_info($openid)

其中 subscribe 为1时表示已关注

unionid 暂不支持

一个公众号用户有openid,如果同一主体有多个公众号或小程序,在微信开放平台绑定后,此时会员将有unionid字段。

同一个用户在同一个主体下的多个公众号、小程序下unionid 的值是一样的。

部分页面效果

注:其中【报名】为enroll报名模块、如只安装mp公众号模块是不会出现报名的。