通知设置 新通知
【第六篇】微信开发应用之Api.php介绍
文档教程 • geeson 发表了文章 • 5 个评论 • 3009 次浏览 • 2017-10-11 12:42
在这一篇主要介绍与微信如何交互与通信的,这里我创建是一个名称 myDemo的应用作为演示。目录文件如下图:
如果你对目录不了解请回头回文档,创建好之后,然后系统的后台进入此演示应用,在响应中设置关键词,当然也可以在自动回复中增加关键词然后选择演示应用,两者可选。你觉得那个方便使用那个。关键词设为:rhaphp,如下图:
也可以在自动回复中可以设置的,设置完成后可以看到,如下图:
粉丝触发关键词如何回复文本?很简单的代码如下:public function message($msg = [], $param = [])
{
replyText('二狗,你好!你触发了myDemo');
}在公众号输入rhaphp后,效果如下图:
如何看到微信发送的消息?public function message($msg = [], $param = [])
{
replyText(json_encode($msg));
}因为$msg是数据来的,文本方式回复那么我们要把$msg转成json。效果如下图:
当然还可以回复其它,图文消息,图片消息,视频消息等,我在介绍函数文档会说明。 查看全部
在这一篇主要介绍与微信如何交互与通信的,这里我创建是一个名称 myDemo的应用作为演示。目录文件如下图:
如果你对目录不了解请回头回文档,创建好之后,然后系统的后台进入此演示应用,在响应中设置关键词,当然也可以在自动回复中增加关键词然后选择演示应用,两者可选。你觉得那个方便使用那个。关键词设为:rhaphp,如下图:
也可以在自动回复中可以设置的,设置完成后可以看到,如下图:
粉丝触发关键词如何回复文本?很简单的代码如下:
public function message($msg = [], $param = [])在公众号输入rhaphp后,效果如下图:
{
replyText('二狗,你好!你触发了myDemo');
}
如何看到微信发送的消息?
public function message($msg = [], $param = [])因为$msg是数据来的,文本方式回复那么我们要把$msg转成json。效果如下图:
{
replyText(json_encode($msg));
}
当然还可以回复其它,图文消息,图片消息,视频消息等,我在介绍函数文档会说明。
【第五篇】 RhaPHP微信应用开发之视图view
文档教程 • geeson 发表了文章 • 0 个评论 • 2581 次浏览 • 2017-10-10 13:08
因为开发使用得最多的就是模板继承,在使用上也是比较简单与好用的。如果有同学从来都没有没有接触过,建议你去看一下 THINKPHP5文档中模板继承。如果你想按着老套路的当然也是可以的,但是我建议你要跟上流行的节奏。
如何引入应用下的 static里面的资源?如我要引入 static/css/style.css 代码如下:{CSS href="__ADDONSTATIC__/css/style.css" /}__ADDONSTATIC__也是自动的识别当前应用的路径。
如何使用微信的JSSDK?代码如下: {:hook('Jssdk')}当你使用此行为后,并需要你再去配置 JSSDK 任何的东西,系统已经本身已经配置好了,只要你使用了{:hook('Jssdk')}系统已经为你做好了一切。如果报错的话,(签名错误呀,URL不合Fa呀)请不要尝试在系统找原因,只要填写相应的参数是正确的,公众号配置是正确的,那么系统99%是正常的。
投票应用中的代码,如下图:
若配置成功,那么你就可以在 wx.ready中使用你需要的接口了。
使用上传组件:{:hook('Upload',['type'=>'image','name'=>'cover'])}如果你需要传入值:{:hook('Upload',['type'=>'image','name'=>'input name的名称','value'=>'路径'])}多图上传:{:hook('Upload',['type'=>'images','name'=>$v.name,'value'=>$v.value])}需要使用媒体库的话:{:hook('Upload',['type'=>'images','name'=>$v.name,'material'=>true,'value'=>$v.value])}上传文件:{:hook('Upload',['type'=>'file','name'=>$v.name,'bt_title'=>'选择文件','value'=>$v.value])}如何对应用生成 URL?使用:addonUrl()
// 与THINKPHP5 中的 URL()使用方法也是一样的,投票应用使用到
$.post("{:addonUrl('toVote')}",{'bm_id':id},function (res) {
layer.close(index);
layer.msg(res.msg);
})
完整的传入:应用名称/控制器/方法
如果在相同的控制器里跳转,可以只传方法名就可以了。更多可以参考 thinkphp中的 URL函数 查看全部
因为开发使用得最多的就是模板继承,在使用上也是比较简单与好用的。如果有同学从来都没有没有接触过,建议你去看一下 THINKPHP5文档中模板继承。如果你想按着老套路的当然也是可以的,但是我建议你要跟上流行的节奏。
如何引入应用下的 static里面的资源?如我要引入 static/css/style.css 代码如下:
{CSS href="__ADDONSTATIC__/css/style.css" /}__ADDONSTATIC__也是自动的识别当前应用的路径。
如何使用微信的JSSDK?代码如下:
{:hook('Jssdk')}当你使用此行为后,并需要你再去配置 JSSDK 任何的东西,系统已经本身已经配置好了,只要你使用了{:hook('Jssdk')}系统已经为你做好了一切。如果报错的话,(签名错误呀,URL不合Fa呀)请不要尝试在系统找原因,只要填写相应的参数是正确的,公众号配置是正确的,那么系统99%是正常的。
投票应用中的代码,如下图:
若配置成功,那么你就可以在 wx.ready中使用你需要的接口了。
使用上传组件:
{:hook('Upload',['type'=>'image','name'=>'cover'])}
如果你需要传入值:{:hook('Upload',['type'=>'image','name'=>'input name的名称','value'=>'路径'])}
多图上传:{:hook('Upload',['type'=>'images','name'=>$v.name,'value'=>$v.value])}
需要使用媒体库的话:{:hook('Upload',['type'=>'images','name'=>$v.name,'material'=>true,'value'=>$v.value])}
上传文件:{:hook('Upload',['type'=>'file','name'=>$v.name,'bt_title'=>'选择文件','value'=>$v.value])}
如何对应用生成 URL?使用:addonUrl()
// 与THINKPHP5 中的 URL()使用方法也是一样的,投票应用使用到
$.post("{:addonUrl('toVote')}",{'bm_id':id},function (res) {
layer.close(index);
layer.msg(res.msg);
})
完整的传入:应用名称/控制器/方法
如果在相同的控制器里跳转,可以只传方法名就可以了。更多可以参考 thinkphp中的 URL函数
【第四篇】开发微信应用之继承Addon类介绍
文档教程 • geeson 发表了文章 • 10 个评论 • 2314 次浏览 • 2017-10-09 14:02
如何显示模板与模板赋值?<?php
namespace addons\myDemo\controller;
use app\common\controller\Addon;
class index extends Addon
{
public function index(){
$this->assign('name','RhaPHP');
$this->fetch();
}
}经常使用到的有:public function demo()
{
dump($this->mid);//获取公众号有标识 ID
dump($this->mpInfo);//获取公众号信息
dump($this->getAaddonConfigByMp);//获取当前公众的当前应用配置信息
dump($this->addonInfoByFile);//获取当前公众的当前应用Config.php文件中的config配置项
dump($this->addonInfoByDb);//获取当前公众的当前应用安装后的数据库中的配置Config.php文件中的config配置项
}因为要更加灵活,所以控制不分前台或者后台,如果你当前控制器需要管理员才能操作的怎么办?其实也是很简单的:代码如下:class index extends Addon
{
public $adminLogin=true;//需要管理员登录才可操作本控制器
public function index()
{
$this->assign('name', 'RhaPHP');
$this->fetch();
} public $adminLogin=true;设为 true 系统认为该控制器是管理员才可以操作的。拥有业务菜单的控制器都需要此项。
如果你想把页面只限于微信里面打开:class index extends Addon
{
public $onlyWexinOpen=true;//限制需要在微信里面打开
public function index()
{
$this->assign('name', 'RhaPHP');
$this->fetch();
}
如果此应用需要微信授权登录?class index extends Addon
{
public $isWexinLogin=true;//需要微信授权登录
public function index()
{
$this->assign('name', 'RhaPHP');
$this->fetch();
}这里需要你注意一下,这里考虑到了一些没有授权登录权限的公众号。所以使用微信登录首先要到公众号-》【授权&注册】先配置好。如下图:
有网页授权登录权限的请选择系统自动注册,没有授权登录的请选择回复注册|登录。回复注册|登录是使用响应机制的。你可以设置关键词,或者自定菜单触发关键词,然后系统会以图文形式回复为登录入口。其中的跳转地址就是用户点击进入完成登录后,需要跳到的页面地址,一般是你的应用地址。这里的目录就是获取到粉丝的 openid.这里出发点是考虑到没有授权的公众号要做会员中心,用户组,优惠率,等等。
重点重点重点的来了!!!!!
这里可能有同学要骂我了?如果我很多应用都需要获取 openid啊,你这里跳转地址只有一个哇。其实我已经帮你想到这个问题的啦。按照国际惯例,没有页面授权登录的公众号的微信应用都使用了回复关键词或者自定菜单触发关键词,回复图文,然后进入该应用后系统自动的把 openid 传参到该应用的 URL中了 使用 get,或者 input()获取 openid。后台配置如下图:
还有很多比较有意思的设计逻辑。大家在使用过程自然会发现的。有任何改进或者问题欢迎大家反馈。谢谢大家
查看全部
如何显示模板与模板赋值?
<?php经常使用到的有:
namespace addons\myDemo\controller;
use app\common\controller\Addon;
class index extends Addon
{
public function index(){
$this->assign('name','RhaPHP');
$this->fetch();
}
}
public function demo()因为要更加灵活,所以控制不分前台或者后台,如果你当前控制器需要管理员才能操作的怎么办?其实也是很简单的:代码如下:
{
dump($this->mid);//获取公众号有标识 ID
dump($this->mpInfo);//获取公众号信息
dump($this->getAaddonConfigByMp);//获取当前公众的当前应用配置信息
dump($this->addonInfoByFile);//获取当前公众的当前应用Config.php文件中的config配置项
dump($this->addonInfoByDb);//获取当前公众的当前应用安装后的数据库中的配置Config.php文件中的config配置项
}
class index extends Addonpublic $adminLogin=true;设为 true 系统认为该控制器是管理员才可以操作的。拥有业务菜单的控制器都需要此项。
{
public $adminLogin=true;//需要管理员登录才可操作本控制器
public function index()
{
$this->assign('name', 'RhaPHP');
$this->fetch();
}
如果你想把页面只限于微信里面打开:
class index extends Addon如果此应用需要微信授权登录?
{
public $onlyWexinOpen=true;//限制需要在微信里面打开
public function index()
{
$this->assign('name', 'RhaPHP');
$this->fetch();
}
class index extends Addon这里需要你注意一下,这里考虑到了一些没有授权登录权限的公众号。所以使用微信登录首先要到公众号-》【授权&注册】先配置好。如下图:
{
public $isWexinLogin=true;//需要微信授权登录
public function index()
{
$this->assign('name', 'RhaPHP');
$this->fetch();
}
有网页授权登录权限的请选择系统自动注册,没有授权登录的请选择回复注册|登录。回复注册|登录是使用响应机制的。你可以设置关键词,或者自定菜单触发关键词,然后系统会以图文形式回复为登录入口。其中的跳转地址就是用户点击进入完成登录后,需要跳到的页面地址,一般是你的应用地址。这里的目录就是获取到粉丝的 openid.这里出发点是考虑到没有授权的公众号要做会员中心,用户组,优惠率,等等。
重点重点重点的来了!!!!!
这里可能有同学要骂我了?如果我很多应用都需要获取 openid啊,你这里跳转地址只有一个哇。其实我已经帮你想到这个问题的啦。按照国际惯例,没有页面授权登录的公众号的微信应用都使用了回复关键词或者自定菜单触发关键词,回复图文,然后进入该应用后系统自动的把 openid 传参到该应用的 URL中了 使用 get,或者 input()获取 openid。后台配置如下图:
还有很多比较有意思的设计逻辑。大家在使用过程自然会发现的。有任何改进或者问题欢迎大家反馈。谢谢大家
【第三篇】如何建立自己的业务逻辑处理控制层
文档教程 • geeson 发表了文章 • 0 个评论 • 2595 次浏览 • 2017-10-08 13:32
[
'name' => '红包记录',
'url' => 'redPack/Index/index',
'icon' => ''
],
],我这里只有一个菜单,如果你多个,就增在后台增加就可以了。如果你不了解请看第二篇:http://ask.rhaphp.com/article/8
然后在 在redPack的 controller目录下建立 Index.php控制器,然后写一个 index的方法。如下图:
蓝色框部分需要继承的,我们建议你继承!我们建议你继承!我们建议你继承!为什么?将会在第四篇讲解。
如何给模板赋值?$this->assign('值名',值);如果显示出模板? $this->fetch();//也可以自定如: $this->fetch('index')模板路径在当前应用下的 view目录中。这里是、view/inex/index。这里我还是说明一下吧。视频目录都是使用小写。不需要与控制器前面第一个字母是大写的。以 redPack为例如下图:
在这里我想说明一下:为什么我们不与其它的系统那样?表单这些都封装起来,现在咱们的应用插件中的 config那样那样??
第一点:我想减少你对系统研究时间,表单的控制你爱怎么样设计就怎么设计。
第二点:我还是想自由灵活一些吧。
不过你丫的我就是想这样啊,也行,目前只针对表单有做了处理:使用方法如下:$data= array(
[
'name' => 'keyword',
'title' => '关键词',
'type' => 'text',
'value' => '',
'placeholder' => '请输入关键词',
'tip' => '关键词哦',
],
[
'name' => 'password',
'title' => '密码',
'type' => 'password',
'value' => '',
'placeholder' => '请输入密码',
'tip' => '',
],
[
'name' => 'likes',
'title' => '喜欢谁?',
'type' => 'checkbox',
'value' => [
0 => [
'name'=>'ldh',
'title' => '刘德华',
'value' => '0',
'checked' => '0'
],
1 => [
'name'=>'fbb',
'title' => '冰冰',
'value' => '1',
'checked' => '1'
],
2 => [
'name'=>'fj',
'title' => '凤姐',
'value' => '1',
'checked' => '1'
]
],
'placeholder' => '',
'tip' => '',
],
[
'name' => 'time',
'title' => '时间',
'type' => 'date',
'value' => '',
'placeholder' => '',
'tip' => '',
],
[
'name' => 'sex',
'title' => '性别',
'type' => 'radio',
'value' => [
0 => [
'title' => '男',
'value' => '0',
'checked' => '0'
],
1 => [
'title' => '女',
'value' => '1',
'checked' => '1'
]
],
'placeholder' => '',
'tip' => '如果你男与女都不是,系统认为你是条汉子。',
],
[
'name' => 'content',
'title' => '描述',
'type' => 'textarea',
'value' => '',
'placeholder' => '',
'tip' => '',
],
[
'name' => 'myFile',
'title' => '上传文件',
'type' => 'file',
'value' => '',
'placeholder' => '',
'tip' => '',
],
[
'name' => 'myImage',
'title' => '上传图片',
'type' => 'image',
'value' => '',
'placeholder' => '',
'tip' => '',
],
);
$this->assign('menu_list',$data);
$this->fetch('default');
查看全部
'menu' => [我这里只有一个菜单,如果你多个,就增在后台增加就可以了。如果你不了解请看第二篇:http://ask.rhaphp.com/article/8
[
'name' => '红包记录',
'url' => 'redPack/Index/index',
'icon' => ''
],
],
然后在 在redPack的 controller目录下建立 Index.php控制器,然后写一个 index的方法。如下图:
蓝色框部分需要继承的,我们建议你继承!我们建议你继承!我们建议你继承!为什么?将会在第四篇讲解。
如何给模板赋值?
$this->assign('值名',值);如果显示出模板?
$this->fetch();//也可以自定如: $this->fetch('index')模板路径在当前应用下的 view目录中。这里是、view/inex/index。这里我还是说明一下吧。视频目录都是使用小写。不需要与控制器前面第一个字母是大写的。以 redPack为例如下图:
在这里我想说明一下:为什么我们不与其它的系统那样?表单这些都封装起来,现在咱们的应用插件中的 config那样那样??
第一点:我想减少你对系统研究时间,表单的控制你爱怎么样设计就怎么设计。
第二点:我还是想自由灵活一些吧。
不过你丫的我就是想这样啊,也行,目前只针对表单有做了处理:使用方法如下:
$data= array(
[
'name' => 'keyword',
'title' => '关键词',
'type' => 'text',
'value' => '',
'placeholder' => '请输入关键词',
'tip' => '关键词哦',
],
[
'name' => 'password',
'title' => '密码',
'type' => 'password',
'value' => '',
'placeholder' => '请输入密码',
'tip' => '',
],
[
'name' => 'likes',
'title' => '喜欢谁?',
'type' => 'checkbox',
'value' => [
0 => [
'name'=>'ldh',
'title' => '刘德华',
'value' => '0',
'checked' => '0'
],
1 => [
'name'=>'fbb',
'title' => '冰冰',
'value' => '1',
'checked' => '1'
],
2 => [
'name'=>'fj',
'title' => '凤姐',
'value' => '1',
'checked' => '1'
]
],
'placeholder' => '',
'tip' => '',
],
[
'name' => 'time',
'title' => '时间',
'type' => 'date',
'value' => '',
'placeholder' => '',
'tip' => '',
],
[
'name' => 'sex',
'title' => '性别',
'type' => 'radio',
'value' => [
0 => [
'title' => '男',
'value' => '0',
'checked' => '0'
],
1 => [
'title' => '女',
'value' => '1',
'checked' => '1'
]
],
'placeholder' => '',
'tip' => '如果你男与女都不是,系统认为你是条汉子。',
],
[
'name' => 'content',
'title' => '描述',
'type' => 'textarea',
'value' => '',
'placeholder' => '',
'tip' => '',
],
[
'name' => 'myFile',
'title' => '上传文件',
'type' => 'file',
'value' => '',
'placeholder' => '',
'tip' => '',
],
[
'name' => 'myImage',
'title' => '上传图片',
'type' => 'image',
'value' => '',
'placeholder' => '',
'tip' => '',
],
);
$this->assign('menu_list',$data);
$this->fetch('default');
【第二篇】使用RhaPHP开发微信应用之Config.php说明
文档教程 • geeson 发表了文章 • 0 个评论 • 4336 次浏览 • 2017-10-07 15:22
'name' => '',
'addon' => '',
'desc' => '',
'version' => '1.0',
'author' => 'Geeson',
'logo' => 'logo.jpg',
'menu_show' => '1',
'entry_url' => '',
'admin_url' => '',
'install_sql' => '',
'upgrade_sql' => '',
'menu' => [//后台菜单列表
[
'name' => '菜单1',
'url' => '应用名称/控制器/方法',
'icon' => ''
],
[ 'name' => '菜单2',
'url' => '应用名称/控制器/方法',
'icon' => ''
],
],
'config' => array(
[
'name' => 'name',
'title' => '名称',
'type' => 'text',
'value' => '',
'placeholder' => '请输入关名称',
'tip' => '这里是提示,比喻:名称请填写真实性名',
],
[
'name' => 'select',
'title' => '四大城市',
'type' => 'select',
'value' => [
0 => [
'title' => '北京',
'value' => '1',
'selected' => '1'
],
1 => [
'title' => '上海',
'value' => '2',
'selected' => '0'
],
2 => [
'title' => '广州',
'value' => '3',
'selected' => '0'
]
,
3 => [
'title' => '深圳',
'value' => '4',
'selected' => '0'
]
],
'placeholder' => '',
'tip' => '你的城市',
],
[
'name' => 'likes',
'title' => '喜欢谁?',
'type' => 'checkbox',
'value' => [
0 => [
'name'=>'ldh',
'title' => '刘德华',
'value' => '0',
'checked' => '0'
],
1 => [
'name'=>'fbb',
'title' => '冰冰',
'value' => '1',
'checked' => '1'
],
2 => [
'name'=>'fj',
'title' => '凤姐',
'value' => '1',
'checked' => '1'
]
],
'placeholder' => '',
'tip' => '',
],
[
'name' => 'time',
'title' => '时间',
'type' => 'date',
'value' => '',
'placeholder' => '',
'tip' => '',
],
[
'name' => 'sex',
'title' => '性别',
'type' => 'radio',
'value' => [
0 => [
'title' => '男',
'value' => '0',
'checked' => '0'
],
1 => [
'title' => '女',
'value' => '1',
'checked' => '1'
]
],
'placeholder' => '',
'tip' => '如果你男与女都不是,系统认为你是条汉子。',
],
[
'name' => 'content',
'title' => '描述',
'type' => 'textarea',
'value' => '',
'placeholder' => '',
'tip' => '',
],
[
'name' => 'myFile',
'title' => '上传文件',
'type' => 'file',
'value' => '',
'placeholder' => '',
'tip' => '',
],
[
'name' => 'myImage',
'title' => '上传图片',
'type' => 'image',
'value' => '',
'placeholder' => '',
'tip' => '',
],
[
'name' => 'myImages',
'title' => '多图上传',
'type' => 'images',
'value' => '',
'placeholder' => '',
'tip' => '',
],
)
);我们平时开发常用的,RhaPHP都已经集合好了。后台菜单相信大家一看就能懂,看看redPack中的menu 'menu' => [
[
'name' => '红包记录',
'url' => 'redPack/Index/index',
'icon' => ''
],
],进入红包应用后台,在后台的左侧就能看到这个菜单了,当然也是支持多个的。如下图:
那么再看Config表单配置项:redPack为例:'config' => array(
[
'name' => 'amount',//input 中的name值
'title' => '红包总额', //该input的名称
'type' => 'text',//input 类型
'value' => '0',// input 默认值
'placeholder' => '',
'tip' => '单位/元',
],
[
'name' => 'money',
'title' => '红包金额',
'type' => 'text',
'value' => '1',
'placeholder' => '',
'tip' => '领取红包份额,注意红包金额微信不能低于1蚊鸡(1元钱)。',
],
[
'name' => 'nick_name',
'title' => '提供方名',
'type' => 'text',
'value' => '',
'placeholder' => '',
'tip' => '列如:绮梦科技、 RhaPHP、冰冰工作室等等。',
],
[
'name' => 'send_name',
'title' => '红包发送者名',
'type' => 'text',
'value' => '',
'placeholder' => '',
'tip' => '例如:冰冰、努力就有希望、有钱的二狗子等等,字数尽量不要太多。',
],
[
'name' => 'wishing',
'title' => '红包祝福语',
'type' => 'text',
'value' => '',
'placeholder' => '',
'tip' => '例如:恭喜发财、早生贵子、早日分手、你想对领取红包的人说的话。',
],
[
'name' => 'reply_msg',
'title' => '成功回复',
'type' => 'text',
'value' => '红包发放成功,请你继续关注活动,后面福利多多!',
'placeholder' => '',
'tip' => '红包发送成功,回复的消息内容。',
],
[
'name' => 'act_name',
'title' => '活动名称',
'type' => 'text',
'value' => '',
'placeholder' => '',
'tip' => '例如:五一假日活动、三周年庆、等等。',
],
[
'name' => 'start_time',
'title' => '开始时间',
'type' => 'date',
'value' => '',
'placeholder' => '',
'tip' => '',
],
[
'name' => 'end_time',
'title' => '结束时间',
'type' => 'date',
'value' => '',
'placeholder' => '',
'tip' => '',
],
[
'name' => 'number_of_times',
'title' => '领取次数',
'type' => 'text',
'value' => '1',
'placeholder' => '',
'tip' => '每人领取红包次数,默认1次',
],
),那么进入应用后,在后台左侧看到,如下图:
提交表单,系统自动保存参数配置表单的值。不需要开发者写增删改查代码的。
重要的话要来了!重要的话要来了!重要的话要来了!
如果此应用已经安装后,你修改Config.php,请卸载应用重新安装才会生效。因为每一个应用可以对应多个公众号的。所有配置项需入库。
如何在应用中获取配置参数?以redPack为例:
对就是它,getAddonInfo()函数。一般不需要传参数系统自动处理获取到当前公众号的应用的配置参数。
可以dump下可以看到参数。
如何传参?请看代码:/**
* 获取应用配置信息
* @author geeson myrhzq@qq.com
* $param $addonName string //当前应用名称
* @param string $mid //公众号标识 ID
* @return array|bool|mixed
*/
function getAddonInfo($addonName = '', $mid = '')
{
if ($addonName == '' || $mid == '') {
$addonName = session('addonName');
$mid = session('mid')?session('mid'):input('mid');
}
if ($addonName == '' || $mid == '') {
exit('参数不完整:应用名称或者公众号标识不存在');
}
$addon = \think\Db::name('addons')->where(['addon' => $addonName])->find();
$addonInfo = \think\Db::name('addon_info')->where(['addon' => $addonName, 'mpid' => input('mid')])->find();
$addon['path'] = ADDON_PATH . $addonName . '/';
$addon['mp_config'] = json_decode($addonInfo['infos'], true);
$addon['common_config'] = json_decode($addon['config'], true);
unset($addon['config']);
return $addon;
}
查看全部
return array(我们平时开发常用的,RhaPHP都已经集合好了。后台菜单相信大家一看就能懂,看看redPack中的menu
'name' => '',
'addon' => '',
'desc' => '',
'version' => '1.0',
'author' => 'Geeson',
'logo' => 'logo.jpg',
'menu_show' => '1',
'entry_url' => '',
'admin_url' => '',
'install_sql' => '',
'upgrade_sql' => '',
'menu' => [//后台菜单列表
[
'name' => '菜单1',
'url' => '应用名称/控制器/方法',
'icon' => ''
],
[ 'name' => '菜单2',
'url' => '应用名称/控制器/方法',
'icon' => ''
],
],
'config' => array(
[
'name' => 'name',
'title' => '名称',
'type' => 'text',
'value' => '',
'placeholder' => '请输入关名称',
'tip' => '这里是提示,比喻:名称请填写真实性名',
],
[
'name' => 'select',
'title' => '四大城市',
'type' => 'select',
'value' => [
0 => [
'title' => '北京',
'value' => '1',
'selected' => '1'
],
1 => [
'title' => '上海',
'value' => '2',
'selected' => '0'
],
2 => [
'title' => '广州',
'value' => '3',
'selected' => '0'
]
,
3 => [
'title' => '深圳',
'value' => '4',
'selected' => '0'
]
],
'placeholder' => '',
'tip' => '你的城市',
],
[
'name' => 'likes',
'title' => '喜欢谁?',
'type' => 'checkbox',
'value' => [
0 => [
'name'=>'ldh',
'title' => '刘德华',
'value' => '0',
'checked' => '0'
],
1 => [
'name'=>'fbb',
'title' => '冰冰',
'value' => '1',
'checked' => '1'
],
2 => [
'name'=>'fj',
'title' => '凤姐',
'value' => '1',
'checked' => '1'
]
],
'placeholder' => '',
'tip' => '',
],
[
'name' => 'time',
'title' => '时间',
'type' => 'date',
'value' => '',
'placeholder' => '',
'tip' => '',
],
[
'name' => 'sex',
'title' => '性别',
'type' => 'radio',
'value' => [
0 => [
'title' => '男',
'value' => '0',
'checked' => '0'
],
1 => [
'title' => '女',
'value' => '1',
'checked' => '1'
]
],
'placeholder' => '',
'tip' => '如果你男与女都不是,系统认为你是条汉子。',
],
[
'name' => 'content',
'title' => '描述',
'type' => 'textarea',
'value' => '',
'placeholder' => '',
'tip' => '',
],
[
'name' => 'myFile',
'title' => '上传文件',
'type' => 'file',
'value' => '',
'placeholder' => '',
'tip' => '',
],
[
'name' => 'myImage',
'title' => '上传图片',
'type' => 'image',
'value' => '',
'placeholder' => '',
'tip' => '',
],
[
'name' => 'myImages',
'title' => '多图上传',
'type' => 'images',
'value' => '',
'placeholder' => '',
'tip' => '',
],
)
);
'menu' => [进入红包应用后台,在后台的左侧就能看到这个菜单了,当然也是支持多个的。如下图:
[
'name' => '红包记录',
'url' => 'redPack/Index/index',
'icon' => ''
],
],
那么再看Config表单配置项:redPack为例:
'config' => array(那么进入应用后,在后台左侧看到,如下图:
[
'name' => 'amount',//input 中的name值
'title' => '红包总额', //该input的名称
'type' => 'text',//input 类型
'value' => '0',// input 默认值
'placeholder' => '',
'tip' => '单位/元',
],
[
'name' => 'money',
'title' => '红包金额',
'type' => 'text',
'value' => '1',
'placeholder' => '',
'tip' => '领取红包份额,注意红包金额微信不能低于1蚊鸡(1元钱)。',
],
[
'name' => 'nick_name',
'title' => '提供方名',
'type' => 'text',
'value' => '',
'placeholder' => '',
'tip' => '列如:绮梦科技、 RhaPHP、冰冰工作室等等。',
],
[
'name' => 'send_name',
'title' => '红包发送者名',
'type' => 'text',
'value' => '',
'placeholder' => '',
'tip' => '例如:冰冰、努力就有希望、有钱的二狗子等等,字数尽量不要太多。',
],
[
'name' => 'wishing',
'title' => '红包祝福语',
'type' => 'text',
'value' => '',
'placeholder' => '',
'tip' => '例如:恭喜发财、早生贵子、早日分手、你想对领取红包的人说的话。',
],
[
'name' => 'reply_msg',
'title' => '成功回复',
'type' => 'text',
'value' => '红包发放成功,请你继续关注活动,后面福利多多!',
'placeholder' => '',
'tip' => '红包发送成功,回复的消息内容。',
],
[
'name' => 'act_name',
'title' => '活动名称',
'type' => 'text',
'value' => '',
'placeholder' => '',
'tip' => '例如:五一假日活动、三周年庆、等等。',
],
[
'name' => 'start_time',
'title' => '开始时间',
'type' => 'date',
'value' => '',
'placeholder' => '',
'tip' => '',
],
[
'name' => 'end_time',
'title' => '结束时间',
'type' => 'date',
'value' => '',
'placeholder' => '',
'tip' => '',
],
[
'name' => 'number_of_times',
'title' => '领取次数',
'type' => 'text',
'value' => '1',
'placeholder' => '',
'tip' => '每人领取红包次数,默认1次',
],
),
提交表单,系统自动保存参数配置表单的值。不需要开发者写增删改查代码的。
重要的话要来了!重要的话要来了!重要的话要来了!
如果此应用已经安装后,你修改Config.php,请卸载应用重新安装才会生效。因为每一个应用可以对应多个公众号的。所有配置项需入库。
如何在应用中获取配置参数?以redPack为例:
对就是它,getAddonInfo()函数。一般不需要传参数系统自动处理获取到当前公众号的应用的配置参数。
可以dump下可以看到参数。
如何传参?请看代码:
/**
* 获取应用配置信息
* @author geeson myrhzq@qq.com
* $param $addonName string //当前应用名称
* @param string $mid //公众号标识 ID
* @return array|bool|mixed
*/
function getAddonInfo($addonName = '', $mid = '')
{
if ($addonName == '' || $mid == '') {
$addonName = session('addonName');
$mid = session('mid')?session('mid'):input('mid');
}
if ($addonName == '' || $mid == '') {
exit('参数不完整:应用名称或者公众号标识不存在');
}
$addon = \think\Db::name('addons')->where(['addon' => $addonName])->find();
$addonInfo = \think\Db::name('addon_info')->where(['addon' => $addonName, 'mpid' => input('mid')])->find();
$addon['path'] = ADDON_PATH . $addonName . '/';
$addon['mp_config'] = json_decode($addonInfo['infos'], true);
$addon['common_config'] = json_decode($addon['config'], true);
unset($addon['config']);
return $addon;
}
【第一篇】使用RhaPHP开发第一个微信应用,新手必看
文档教程 • geeson 发表了文章 • 1 个评论 • 6110 次浏览 • 2017-10-03 15:07
这里以发红包的应用为例,在 addon目录下建立你的应用目录。由于我比较喜欢中国式英文,红包就叫 redPack.建议使用驼峰式命名法。列如:myApp、redPack、wexinShop等。
建立好 redPack 目录后。然后再建议控制层目录 controller,model(如果需要),static(如果需要)view(如果需要),Common.php(如果需要),Config.php,install.sql(如果需要),logo.jpg 也就是说controller,Config.php,logo.jpg 这三个是必须的。如下图我建立好的目录:
如果你对目录结构不了解,请看:http://ask.rhaphp.com/article/6
因为发红包是要与微信通信和请求微信的接口的,那么在 controller目录下建立 Api.php,如下图:
命名空间:namespace addons\redPack\controller;public function message($msg = , $param = )
{
// 处理微信发来的消息内容
}message()方法是必须的,$msg微信发来的消息内容,$param是当前应用插件参数,目前参数有 mid(当前公众号标识),addon(当前插件的名称)。
这里需要注意的是,Api.php可以理解为通过回复关键词或者是事件触发的,然后微信发来消息了 Api.php才会执行。如果没有特别的情况,Api.php不用继承其它的类。那么我想看下看微信发来的消息内容是什么样的怎么办?我直接告诉你易过借火啊。(客官,对不起,想了想这个还是后面再说,我先把前面的说完。请你耐心看下去)。
这里的common.php我需要说说。玩过框架的同学都知道,这个就是当前应用插件的独立函数库。那么这时有同学可能会想, application目录common.php里面的函数我能不能在应用插件里面使用?我拍着我的良心跟你说,当然可以使用,不用做任何的引入,而且THINKPHP的核心的东西包括vendor都可以使用,而且与 application目录下的模块用法都是一样的。有极少的不同,后面我会说到。
下面,将重点介绍 Config.php,这文件担任着非常重要的角色。没有 Config.php等于这个应用没有生命。<?php
return array(
'name' => '红包营销',// 应用名称
'addon' => 'redPack',// 应用标识与你创建的目录必须一致的
'desc' => '有钱就任性,活动营销-红包爱怎么发就怎么发',//应用介绍
'version' => '1.0',// 版本
'author' => 'Geeson',//作者
'logo' => 'logo.jpg',//logo 与应用目录的 logo 一样的名称
'menu_show' => '1',// 系统发展今后可能用到,忽略
'entry_url' => '',// 如果这应用需要入口的,比较微信商城,那么填写入口,写法 应用名称/ 控制器/方法
// 'install_sql' => 'install.sql',// 数据库安装文件
'upgrade_sql' => 'upgrade.sql',//升级的数据库文件,如果目录存在这个文件,后台自动出现升级
'menu' => [//后台管理菜单
[
'name' => '红包记录',// 菜单名称
'url' => 'redPack/Index/index',// 菜单地址
'icon' => ''
],
],
'config' => array(// 应用配置参数
[//关于配置我会单独写一篇文章介绍的
'name' => 'amount',
'title' => '红包总额',
'type' => 'text',
'value' => '0',
'placeholder' => '',
'tip' => '单位/元',
],
[
'name' => 'money',
'title' => '红包金额',
'type' => 'text',
'value' => '1',
'placeholder' => '',
'tip' => '领取红包份额,注意红包金额微信不能低于1蚊鸡(1元钱)。',
],如果你写好参数,那么进入后台。就可以看到安装啦。如下图:
创建一个应用基本就是这样过程。如果觉得没啥惊喜,继续看第二篇。 查看全部
这里以发红包的应用为例,在 addon目录下建立你的应用目录。由于我比较喜欢中国式英文,红包就叫 redPack.建议使用驼峰式命名法。列如:myApp、redPack、wexinShop等。
建立好 redPack 目录后。然后再建议控制层目录 controller,model(如果需要),static(如果需要)view(如果需要),Common.php(如果需要),Config.php,install.sql(如果需要),logo.jpg 也就是说controller,Config.php,logo.jpg 这三个是必须的。如下图我建立好的目录:
如果你对目录结构不了解,请看:http://ask.rhaphp.com/article/6
因为发红包是要与微信通信和请求微信的接口的,那么在 controller目录下建立 Api.php,如下图:
命名空间:namespace addons\redPack\controller;
public function message($msg = , $param = )message()方法是必须的,$msg微信发来的消息内容,$param是当前应用插件参数,目前参数有 mid(当前公众号标识),addon(当前插件的名称)。
{
// 处理微信发来的消息内容
}
这里需要注意的是,Api.php可以理解为通过回复关键词或者是事件触发的,然后微信发来消息了 Api.php才会执行。如果没有特别的情况,Api.php不用继承其它的类。那么我想看下看微信发来的消息内容是什么样的怎么办?我直接告诉你易过借火啊。(客官,对不起,想了想这个还是后面再说,我先把前面的说完。请你耐心看下去)。
这里的common.php我需要说说。玩过框架的同学都知道,这个就是当前应用插件的独立函数库。那么这时有同学可能会想, application目录common.php里面的函数我能不能在应用插件里面使用?我拍着我的良心跟你说,当然可以使用,不用做任何的引入,而且THINKPHP的核心的东西包括vendor都可以使用,而且与 application目录下的模块用法都是一样的。有极少的不同,后面我会说到。
下面,将重点介绍 Config.php,这文件担任着非常重要的角色。没有 Config.php等于这个应用没有生命。
<?php如果你写好参数,那么进入后台。就可以看到安装啦。如下图:
return array(
'name' => '红包营销',// 应用名称
'addon' => 'redPack',// 应用标识与你创建的目录必须一致的
'desc' => '有钱就任性,活动营销-红包爱怎么发就怎么发',//应用介绍
'version' => '1.0',// 版本
'author' => 'Geeson',//作者
'logo' => 'logo.jpg',//logo 与应用目录的 logo 一样的名称
'menu_show' => '1',// 系统发展今后可能用到,忽略
'entry_url' => '',// 如果这应用需要入口的,比较微信商城,那么填写入口,写法 应用名称/ 控制器/方法
// 'install_sql' => 'install.sql',// 数据库安装文件
'upgrade_sql' => 'upgrade.sql',//升级的数据库文件,如果目录存在这个文件,后台自动出现升级
'menu' => [//后台管理菜单
[
'name' => '红包记录',// 菜单名称
'url' => 'redPack/Index/index',// 菜单地址
'icon' => ''
],
],
'config' => array(// 应用配置参数
[//关于配置我会单独写一篇文章介绍的
'name' => 'amount',
'title' => '红包总额',
'type' => 'text',
'value' => '0',
'placeholder' => '',
'tip' => '单位/元',
],
[
'name' => 'money',
'title' => '红包金额',
'type' => 'text',
'value' => '1',
'placeholder' => '',
'tip' => '领取红包份额,注意红包金额微信不能低于1蚊鸡(1元钱)。',
],
创建一个应用基本就是这样过程。如果觉得没啥惊喜,继续看第二篇。
应用插件基本的目录结构
文档教程 • geeson 发表了文章 • 0 个评论 • 1992 次浏览 • 2017-10-03 13:04
├─addons 应用插件目录
│ ├─myApp 应用名称
│ ├─controller 此控制器目录
│ ├─model 此模型目录
│ ├─view 视图目录
│ ├─static 此应用的静态目录JS,CSS,IMAGE
│ ├─common.php 此应用的函数文件
│ ├─config.php 此应用的配置文件
│ ├─install.sql 此应用的数据库安装文件
│ └─logo.jpg 此应用的LOGO
├─application 应用目录
│ ├─admin 后台模块
│ ├─behavior 行为目录
│ ├─common 公共模块
│ ├─install 系统安装模块
│ ├─mp 操作管理微信公众号模块
│ ├─command.php 命令行工具配置文件
│ ├─common.php 公共函数文件
│ └─tags.php 应用行为扩展定义文件
│
├─public 静态目录JS,CSS,IMAGE
├─data 存放数据
├─config 应用配置目录
│ ├─module_name 模块配置目录
│ │ ├─database.php 数据库配置
│ │ ├─cache 缓存配置
│ │ └─ ...
│ │
│ ├─app.php 应用配置
│ ├─cache.php 缓存配置
│ ├─cookie.php Cookie配置
│ ├─database.php 数据库配置
│ ├─log.php 日志配置
│ ├─session.php Session配置
│ ├─template.php 模板引擎配置
│ └─trace.php Trace配置
├─route 路由定义目录
│ ├─route.php 路由定义
│ └─... 更多
├─runtime 应用的运行时目录
├─thinkphp 框架系统目录
│ ├─lang 语言文件目录
│ ├─library 框架类库目录
│ │ ├─think Think类库包目录
│ │ └─traits 系统Trait目录
│ │
│ ├─tpl 系统模板目录
│ ├─base.php 基础定义文件
│ ├─convention.php 框架惯例配置文件
│ ├─helper.php 助手函数文件
│ └─logo.png 框架LOGO文件
│
├─extend 扩展类库目录
├─vendor 第三方类库目录(Composer依赖库)
├─build.php 自动生成定义文件(参考)
├─安装协议.txt
├─README.md README 文件
├─index.php 系统入口文件
├─composer.json composer 定义文件
├─think 命令行入口文件 查看全部
├─addons 应用插件目录
│ ├─myApp 应用名称
│ ├─controller 此控制器目录
│ ├─model 此模型目录
│ ├─view 视图目录
│ ├─static 此应用的静态目录JS,CSS,IMAGE
│ ├─common.php 此应用的函数文件
│ ├─config.php 此应用的配置文件
│ ├─install.sql 此应用的数据库安装文件
│ └─logo.jpg 此应用的LOGO
├─application 应用目录
│ ├─admin 后台模块
│ ├─behavior 行为目录
│ ├─common 公共模块
│ ├─install 系统安装模块
│ ├─mp 操作管理微信公众号模块
│ ├─command.php 命令行工具配置文件
│ ├─common.php 公共函数文件
│ └─tags.php 应用行为扩展定义文件
│
├─public 静态目录JS,CSS,IMAGE
├─data 存放数据
├─config 应用配置目录
│ ├─module_name 模块配置目录
│ │ ├─database.php 数据库配置
│ │ ├─cache 缓存配置
│ │ └─ ...
│ │
│ ├─app.php 应用配置
│ ├─cache.php 缓存配置
│ ├─cookie.php Cookie配置
│ ├─database.php 数据库配置
│ ├─log.php 日志配置
│ ├─session.php Session配置
│ ├─template.php 模板引擎配置
│ └─trace.php Trace配置
├─route 路由定义目录
│ ├─route.php 路由定义
│ └─... 更多
├─runtime 应用的运行时目录
├─thinkphp 框架系统目录
│ ├─lang 语言文件目录
│ ├─library 框架类库目录
│ │ ├─think Think类库包目录
│ │ └─traits 系统Trait目录
│ │
│ ├─tpl 系统模板目录
│ ├─base.php 基础定义文件
│ ├─convention.php 框架惯例配置文件
│ ├─helper.php 助手函数文件
│ └─logo.png 框架LOGO文件
│
├─extend 扩展类库目录
├─vendor 第三方类库目录(Composer依赖库)
├─build.php 自动生成定义文件(参考)
├─安装协议.txt
├─README.md README 文件
├─index.php 系统入口文件
├─composer.json composer 定义文件
├─think 命令行入口文件
系统目录结构
文档教程 • geeson 发表了文章 • 0 个评论 • 1406 次浏览 • 2017-10-03 12:36
├─addons 应用插件目录
│ ├─myApp1 应用名称
│ ├─controller 此控制器目录
│ ├─model 此模型目录
│ ├─view 视图目录
│ ├─common.php 此应用的函数文件
│ ├─config.php 此应用的配置文件
│ └─logo.jpg 此应用的LOGO
├─application 应用目录
│ ├─admin 后台模块
│ ├─behavior 行为目录
│ ├─common 公共模块
│ ├─install 系统安装模块
│ ├─mp 操作管理微信公众号模块
│ ├─command.php 命令行工具配置文件
│ ├─common.php 公共函数文件
│ ├─config.php 公共配置文件
│ ├─route.php 路由配置文件
│ ├─tags.php 应用行为扩展定义文件
│ └─database.php 数据库配置文件
│ ├─public 静态目录JS,CSS,IMAGE
├─data 存放数据与runtime
│ ├─thinkphp 框架系统目录
│ ├─lang 语言文件目录
│ ├─library 框架类库目录
│ │ ├─think Think类库包目录
│ │ └─traits 系统Trait目录
│ │ │ ├─tpl 系统模板目录
│ ├─base.php 基础定义文件
│ ├─console.php 控制台入口文件
│ ├─convention.php 框架惯例配置文件
│ ├─helper.php 助手函数文件
│ ├─phpunit.xml phpunit配置文件
│ └─start.php 框架入口文件
│ ├─extend 扩展类库目录
├─vendor 第三方类库目录(Composer依赖库)
├─安装协议.txt
├─README.md README 文件
├─index.php 系统入口文件
查看全部
www
├─addons 应用插件目录
│ ├─myApp1 应用名称
│ ├─controller 此控制器目录
│ ├─model 此模型目录
│ ├─view 视图目录
│ ├─common.php 此应用的函数文件
│ ├─config.php 此应用的配置文件
│ └─logo.jpg 此应用的LOGO
├─application 应用目录
│ ├─admin 后台模块
│ ├─behavior 行为目录
│ ├─common 公共模块
│ ├─install 系统安装模块
│ ├─mp 操作管理微信公众号模块
│ ├─command.php 命令行工具配置文件
│ ├─common.php 公共函数文件
│ ├─config.php 公共配置文件
│ ├─route.php 路由配置文件
│ ├─tags.php 应用行为扩展定义文件
│ └─database.php 数据库配置文件
│ ├─public 静态目录JS,CSS,IMAGE
├─data 存放数据与runtime
│ ├─thinkphp 框架系统目录
│ ├─lang 语言文件目录
│ ├─library 框架类库目录
│ │ ├─think Think类库包目录
│ │ └─traits 系统Trait目录
│ │ │ ├─tpl 系统模板目录
│ ├─base.php 基础定义文件
│ ├─console.php 控制台入口文件
│ ├─convention.php 框架惯例配置文件
│ ├─helper.php 助手函数文件
│ ├─phpunit.xml phpunit配置文件
│ └─start.php 框架入口文件
│ ├─extend 扩展类库目录
├─vendor 第三方类库目录(Composer依赖库)
├─安装协议.txt
├─README.md README 文件
├─index.php 系统入口文件
RhaPHP系统数据字典
文档教程 • geeson 发表了文章 • 0 个评论 • 2509 次浏览 • 2017-10-02 18:50
`id` int(10) NOT NULL COMMENT '自增ID',
`name` varchar(255) NOT NULL COMMENT '插件名称',
`addon` varchar(50) NOT NULL COMMENT '标识名',
`desc` text COMMENT '描述',
`version` varchar(10) NOT NULL COMMENT '版本号',
`author` varchar(50) NOT NULL COMMENT '作者姓名',
`logo` text COMMENT 'LOGO',
`status` int(1) NOT NULL DEFAULT '1' COMMENT '状态',
`config` text COMMENT '插件配置',
`entry_url` varchar(160) NOT NULL COMMENT '前端入口',
`admin_url` varchar(160) NOT NULL COMMENT '后台入口',
`menu_show` tinyint(1) NOT NULL COMMENT '是否在菜单显示1:显示0:隐藏'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='应用表';应用插件对应公众号配置信息表:CREATE TABLE IF NOT EXISTS `rh_addon_info` (
`id` int(10) NOT NULL COMMENT '自增ID',
`mpid` int(10) NOT NULL COMMENT '公众号标识',
`addon` varchar(50) NOT NULL COMMENT '插件标识',
`infos` text NOT NULL COMMENT '配置信息'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='插件配置参数表';管理员表:CREATE TABLE IF NOT EXISTS `rh_admin` (
`id` int(11) NOT NULL COMMENT '自增 ID',
`admin_name` varchar(60) NOT NULL COMMENT '管理员登录',
`password` varchar(64) NOT NULL COMMENT '密码',
`status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '1:正常2:禁用',
`ip` varchar(16) DEFAULT NULL COMMENT '登录 IP',
`last_time` int(10) NOT NULL COMMENT '最后登录时间',
`rand_str` varchar(180) NOT NULL COMMENT '密码附加字符',
`admin_id` int(11) NOT NULL DEFAULT '0' COMMENT '超级管理 ID'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;微信公众号素材表:CREATE TABLE IF NOT EXISTS `rh_material` (
`id` int(10) NOT NULL COMMENT '自增ID',
`mpid` int(10) NOT NULL COMMENT '公众号标识',
`type` varchar(50) DEFAULT NULL COMMENT '素材类型',
`title` varchar(255) DEFAULT NULL COMMENT '素材名称|标题',
`url` varchar(500) DEFAULT NULL COMMENT '素材资源地址|图文封面',
`description` text COMMENT '图文素材描述',
`content` text COMMENT '文本素材内容',
`detail` text COMMENT '图文素材详情',
`link` varchar(255) DEFAULT NULL COMMENT '图文链接',
`create_time` int(10) DEFAULT NULL COMMENT '创建时间',
`update_time` int(10) DEFAULT NULL COMMENT '更新时间',
`media_id` varchar(500) DEFAULT NULL COMMENT '媒体 ID',
`from_type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0:本地1:公众号',
`path` varchar(500) DEFAULT NULL COMMENT '资源路径'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='公众号素材表';会员等级表:CREATE TABLE IF NOT EXISTS `rh_member_group` (
`gid` int(11) NOT NULL COMMENT '组 ID',
`mpid` int(11) NOT NULL COMMENT '公众号标识',
`group_name` varchar(60) NOT NULL COMMENT '组等级名称',
`up_score` int(11) NOT NULL DEFAULT '0' COMMENT '升级积分条件',
`up_money` int(11) NOT NULL DEFAULT '0' COMMENT '升级消费金额条件',
`up_type` int(11) NOT NULL DEFAULT '0' COMMENT '升级条件类型0为或:1为且',
`discount` int(11) NOT NULL DEFAULT '0' COMMENT '折扣率',
`description` varchar(250) NOT NULL COMMENT '描述'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;会员金额与积分表:CREATE TABLE IF NOT EXISTS `rh_member_wealth_record` (
`id` int(11) NOT NULL COMMENT '自增 ID',
`member_id` int(11) NOT NULL DEFAULT '0' COMMENT '会员 ID',
`mpid` int(11) NOT NULL DEFAULT '0' COMMENT '公众号标识',
`score` int(11) NOT NULL DEFAULT '0' COMMENT '积分',
`money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '金额',
`time` int(10) DEFAULT NULL COMMENT '时间',
`type` tinyint(1) NOT NULL COMMENT '1为积分,2金额',
`remark` varchar(255) DEFAULT NULL COMMENT '备注'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;系统菜单表:CREATE TABLE IF NOT EXISTS `rh_menu` (
`id` int(11) NOT NULL COMMENT '自增ID',
`pid` int(5) NOT NULL COMMENT '上级ID',
`name` varchar(50) NOT NULL COMMENT '菜单名称',
`url` varchar(180) NOT NULL COMMENT 'Url函数地址',
`sort` int(5) DEFAULT NULL COMMENT '排序',
`icon` varchar(180) DEFAULT NULL COMMENT '图标',
`child` varchar(5) DEFAULT NULL,
`shows` varchar(5) DEFAULT NULL
) ENGINE=InnoDB AUTO_INCREMENT=57 DEFAULT CHARSET=utf8;公众号表:CREATE TABLE IF NOT EXISTS `rh_mp` (
`id` int(10) unsigned NOT NULL COMMENT '自增ID',
`user_id` int(10) NOT NULL COMMENT '用户ID',
`name` varchar(50) NOT NULL COMMENT '公众号名称',
`appid` varchar(50) DEFAULT NULL COMMENT 'AppId',
`appsecret` varchar(50) DEFAULT NULL COMMENT 'AppSecret',
`origin_id` varchar(50) NOT NULL COMMENT '公众号原始ID',
`type` int(1) NOT NULL DEFAULT '0' COMMENT '公众号类型(1:普通订阅号;2:认证订阅号;3:普通服务号;4:认证服务号',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态(0:禁用,1:正常,2:审核中)',
`valid_token` varchar(40) DEFAULT NULL COMMENT '接口验证Token',
`valid_status` tinyint(1) NOT NULL COMMENT '1已接入;0未接入',
`token` varchar(50) DEFAULT NULL COMMENT '公众号标识',
`encodingaeskey` varchar(50) DEFAULT NULL COMMENT '消息加解密秘钥',
`mp_number` varchar(50) DEFAULT NULL COMMENT '微信号',
`desc` text COMMENT '描述',
`logo` varchar(255) DEFAULT NULL COMMENT 'logo',
`qrcode` varchar(255) DEFAULT NULL COMMENT '二维码',
`create_time` int(10) NOT NULL COMMENT '创建时间',
`login_name` varchar(50) DEFAULT NULL COMMENT '公众号登录名',
`is_use` tinyint(1) NOT NULL DEFAULT '0' COMMENT '当前使用'
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='公众号表';微信公众号粉丝表:CREATE TABLE IF NOT EXISTS `rh_mp_friends` (
`id` int(10) NOT NULL COMMENT '自增ID',
`mpid` int(10) NOT NULL COMMENT '公众号标识',
`openid` varchar(255) NOT NULL COMMENT 'openid',
`nickname` varchar(50) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '昵称',
`headimgurl` varchar(255) DEFAULT NULL COMMENT '头像',
`sex` tinyint(1) DEFAULT NULL COMMENT '性别',
`subscribe` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否关注',
`subscribe_time` int(10) DEFAULT NULL COMMENT '关注时间',
`unsubscribe_time` int(10) DEFAULT NULL COMMENT '取消关注时间',
`relname` varchar(50) DEFAULT NULL COMMENT '真实姓名',
`signature` text COMMENT '个性签名',
`mobile` varchar(15) DEFAULT NULL COMMENT '手机号',
`is_bind` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否绑定',
`language` varchar(50) DEFAULT NULL COMMENT '使用语言',
`country` varchar(50) DEFAULT NULL COMMENT '国家',
`province` varchar(50) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '省',
`city` varchar(50) DEFAULT NULL COMMENT '城市',
`remark` varchar(50) DEFAULT NULL COMMENT '备注',
`group_id` int(10) DEFAULT '0' COMMENT '分组ID',
`groupid` int(11) NOT NULL COMMENT '公众号分组标识',
`tagid_list` varchar(255) DEFAULT NULL COMMENT '标签',
`score` int(10) DEFAULT '0' COMMENT '积分',
`money` decimal(10,2) DEFAULT '0.00' COMMENT '金钱',
`latitude` varchar(50) DEFAULT NULL COMMENT '纬度',
`longitude` varchar(50) DEFAULT NULL COMMENT '经度',
`location_precision` varchar(50) DEFAULT NULL COMMENT '精度',
`type` int(11) NOT NULL DEFAULT '0' COMMENT '0:公众号粉丝1:注册会员',
`unionid` varchar(160) DEFAULT NULL COMMENT 'unionid字段',
`password` varchar(64) DEFAULT NULL COMMENT '密码',
`last_time` int(10) DEFAULT '586969200' COMMENT '最后交互时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='公众号粉丝表';公众号自定菜单表:CREATE TABLE IF NOT EXISTS `rh_mp_menu` (
`id` bigint(16) unsigned NOT NULL,
`mp_id` int(11) DEFAULT '0' COMMENT '公众号标识',
`index` bigint(20) DEFAULT '0',
`pindex` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '父id',
`type` varchar(24) DEFAULT NULL COMMENT '菜单类型 null主菜单 link链接 keys关键字 event事件',
`name` varchar(256) DEFAULT NULL COMMENT '菜单名称',
`content` text COMMENT '文字内容',
`sort` int(10) unsigned DEFAULT '0' COMMENT '排序',
`status` tinyint(1) unsigned DEFAULT '1' COMMENT '状态(0禁用1启用)'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='微信自定义菜单表';粉丝信息聊天记录表:CREATE TABLE IF NOT EXISTS `rh_mp_msg` (
`msg_id` int(11) NOT NULL COMMENT '自增 ID',
`pid` int(11) NOT NULL DEFAULT '0' COMMENT '上一条消息 ID',
`openid` varchar(64) DEFAULT NULL COMMENT 'openid',
`mpid` int(11) NOT NULL DEFAULT '0' COMMENT '公众号标识',
`type` varchar(32) DEFAULT NULL COMMENT '消息类型',
`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '消息内容',
`status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0未回复,1已回复',
`is_reply` tinyint(1) NOT NULL DEFAULT '0' COMMENT '1为公众号回复',
`create_time` int(10) NOT NULL DEFAULT '0' COMMENT '创建时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;公众号响应规则表:CREATE TABLE IF NOT EXISTS `rh_mp_rule` (
`id` int(10) NOT NULL COMMENT '自增ID',
`mpid` int(10) NOT NULL COMMENT '公众号ID',
`addon` varchar(50) DEFAULT NULL COMMENT '插件标识',
`keyword` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '关键词内容',
`type` varchar(50) DEFAULT NULL COMMENT '触发类型:text,addon,images,news,voice,music,video',
`event` varchar(50) DEFAULT NULL COMMENT '特殊事件如:关注、取关等',
`entry_id` int(10) DEFAULT NULL COMMENT '功能入口ID',
`reply_id` int(10) DEFAULT NULL COMMENT '自动回复ID',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态(1开户:0关闭)'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='公众号响应规则';回复类型表:CREATE TABLE IF NOT EXISTS `rh_mp_reply` (
`reply_id` int(11) NOT NULL COMMENT '自增ID',
`type` varchar(60) NOT NULL COMMENT '回复类型:text,images,news,voice,music,video',
`title` varchar(250) DEFAULT NULL COMMENT '标题(适用图文)',
`content` text COMMENT '文本内容',
`url` varchar(500) DEFAULT NULL COMMENT '资源地址',
`link` varchar(500) DEFAULT NULL COMMENT '连接(图片连接,图文连接等)',
`status_type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '1:永久0:临时',
`media_id` varchar(500) DEFAULT NULL COMMENT '媒体ID'
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 微信支付交易:CREATE TABLE IF NOT EXISTS `rh_payment` (
`payment_id` int(11) NOT NULL COMMENT '自增 ID',
`member_id` int(11) NOT NULL DEFAULT '0' COMMENT '用户 ID',
`openid` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT 'OPENID',
`title` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT '标题|商品名称',
`order_number` varchar(32) NOT NULL DEFAULT '0' COMMENT '订单号',
`money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '金额',
`pay_type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '交易类型(1为微信2为支付宝)',
`status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态(0:未完成交易1:完成关键交易)',
`create_time` int(10) NOT NULL COMMENT '交易时间',
`mpid` int(11) NOT NULL COMMENT '公众号标识',
`remark` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT '备注',
`attach` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT '附加数据',
`refund` tinyint(1) DEFAULT NULL COMMENT '1:申请退款中2:退款完成'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;二维码:CREATE TABLE IF NOT EXISTS `rh_qrcode` (
`id` int(10) unsigned NOT NULL COMMENT '主键',
`mpid` int(10) DEFAULT NULL COMMENT '公众号标识',
`scene_id` int(32) DEFAULT NULL COMMENT '场景值ID',
`scene_name` varchar(255) DEFAULT NULL COMMENT '场景名称',
`keyword` varchar(255) DEFAULT NULL COMMENT '关联关键词',
`qr_type` char(32) DEFAULT '0' COMMENT '二维码类型',
`scene_str` varchar(255) DEFAULT NULL COMMENT '场景值字符串',
`expire` int(10) DEFAULT NULL COMMENT '过期时间',
`ticket` varchar(255) DEFAULT NULL COMMENT '二维码Ticket',
`short_url` varchar(255) DEFAULT NULL COMMENT '二维码短地址',
`qrcode_url` text NOT NULL COMMENT '二维码原始地址',
`url` varchar(255) DEFAULT NULL COMMENT '二维码图片解析后的地址',
`create_time` int(10) DEFAULT NULL COMMENT '二维码创建时间',
`scan_count` int(11) NOT NULL COMMENT '扫码次数',
`gz_count` int(11) NOT NULL COMMENT '关注数量'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;二维码记录:CREATE TABLE IF NOT EXISTS `rh_qrcode_data` (
`id` int(11) NOT NULL COMMENT '自增ID',
`scene_id` int(11) NOT NULL COMMENT '场景 ID',
`openid` varchar(160) NOT NULL COMMENT 'openid',
`create_time` varchar(60) NOT NULL COMMENT '扫码时间',
`mpid` int(11) NOT NULL COMMENT '公众号标识',
`qrcode_id` int(11) NOT NULL COMMENT '二维码ID',
`scan_count` int(11) NOT NULL DEFAULT '1' COMMENT '扫码次数',
`type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0:默认1:扫码关注'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;发红包:CREATE TABLE IF NOT EXISTS `rh_redpack` (
`id` int(11) NOT NULL COMMENT '自增 ID',
`openid` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT 'openid',
`order_number` varchar(64) CHARACTER SET utf8 DEFAULT NULL COMMENT '单号',
`mpid` int(11) NOT NULL DEFAULT '0' COMMENT '公众号标识',
`money` decimal(10,2) NOT NULL COMMENT '红包金额',
`nick_name` varchar(255) DEFAULT NULL COMMENT '提供方名称',
`send_name` varchar(255) DEFAULT NULL COMMENT '发送者名称',
`create_time` int(10) DEFAULT NULL COMMENT '创建时间',
`addon` varchar(60) DEFAULT NULL COMMENT '应用扩展标识',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态1:正常0:过期'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;公众号配置:CREATE TABLE IF NOT EXISTS `rh_setting` (
`id` int(11) NOT NULL COMMENT '自增ID',
`mpid` int(11) NOT NULL COMMENT '公众号标识',
`name` varchar(180) NOT NULL COMMENT '配置项名称',
`value` text NOT NULL COMMENT '配置值',
`cate` varchar(30) DEFAULT NULL COMMENT '分类'
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 查看全部
CREATE TABLE IF NOT EXISTS `rh_addons` (应用插件对应公众号配置信息表:
`id` int(10) NOT NULL COMMENT '自增ID',
`name` varchar(255) NOT NULL COMMENT '插件名称',
`addon` varchar(50) NOT NULL COMMENT '标识名',
`desc` text COMMENT '描述',
`version` varchar(10) NOT NULL COMMENT '版本号',
`author` varchar(50) NOT NULL COMMENT '作者姓名',
`logo` text COMMENT 'LOGO',
`status` int(1) NOT NULL DEFAULT '1' COMMENT '状态',
`config` text COMMENT '插件配置',
`entry_url` varchar(160) NOT NULL COMMENT '前端入口',
`admin_url` varchar(160) NOT NULL COMMENT '后台入口',
`menu_show` tinyint(1) NOT NULL COMMENT '是否在菜单显示1:显示0:隐藏'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='应用表';
CREATE TABLE IF NOT EXISTS `rh_addon_info` (管理员表:
`id` int(10) NOT NULL COMMENT '自增ID',
`mpid` int(10) NOT NULL COMMENT '公众号标识',
`addon` varchar(50) NOT NULL COMMENT '插件标识',
`infos` text NOT NULL COMMENT '配置信息'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='插件配置参数表';
CREATE TABLE IF NOT EXISTS `rh_admin` (微信公众号素材表:
`id` int(11) NOT NULL COMMENT '自增 ID',
`admin_name` varchar(60) NOT NULL COMMENT '管理员登录',
`password` varchar(64) NOT NULL COMMENT '密码',
`status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '1:正常2:禁用',
`ip` varchar(16) DEFAULT NULL COMMENT '登录 IP',
`last_time` int(10) NOT NULL COMMENT '最后登录时间',
`rand_str` varchar(180) NOT NULL COMMENT '密码附加字符',
`admin_id` int(11) NOT NULL DEFAULT '0' COMMENT '超级管理 ID'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `rh_material` (会员等级表:
`id` int(10) NOT NULL COMMENT '自增ID',
`mpid` int(10) NOT NULL COMMENT '公众号标识',
`type` varchar(50) DEFAULT NULL COMMENT '素材类型',
`title` varchar(255) DEFAULT NULL COMMENT '素材名称|标题',
`url` varchar(500) DEFAULT NULL COMMENT '素材资源地址|图文封面',
`description` text COMMENT '图文素材描述',
`content` text COMMENT '文本素材内容',
`detail` text COMMENT '图文素材详情',
`link` varchar(255) DEFAULT NULL COMMENT '图文链接',
`create_time` int(10) DEFAULT NULL COMMENT '创建时间',
`update_time` int(10) DEFAULT NULL COMMENT '更新时间',
`media_id` varchar(500) DEFAULT NULL COMMENT '媒体 ID',
`from_type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0:本地1:公众号',
`path` varchar(500) DEFAULT NULL COMMENT '资源路径'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='公众号素材表';
CREATE TABLE IF NOT EXISTS `rh_member_group` (会员金额与积分表:
`gid` int(11) NOT NULL COMMENT '组 ID',
`mpid` int(11) NOT NULL COMMENT '公众号标识',
`group_name` varchar(60) NOT NULL COMMENT '组等级名称',
`up_score` int(11) NOT NULL DEFAULT '0' COMMENT '升级积分条件',
`up_money` int(11) NOT NULL DEFAULT '0' COMMENT '升级消费金额条件',
`up_type` int(11) NOT NULL DEFAULT '0' COMMENT '升级条件类型0为或:1为且',
`discount` int(11) NOT NULL DEFAULT '0' COMMENT '折扣率',
`description` varchar(250) NOT NULL COMMENT '描述'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `rh_member_wealth_record` (系统菜单表:
`id` int(11) NOT NULL COMMENT '自增 ID',
`member_id` int(11) NOT NULL DEFAULT '0' COMMENT '会员 ID',
`mpid` int(11) NOT NULL DEFAULT '0' COMMENT '公众号标识',
`score` int(11) NOT NULL DEFAULT '0' COMMENT '积分',
`money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '金额',
`time` int(10) DEFAULT NULL COMMENT '时间',
`type` tinyint(1) NOT NULL COMMENT '1为积分,2金额',
`remark` varchar(255) DEFAULT NULL COMMENT '备注'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `rh_menu` (公众号表:
`id` int(11) NOT NULL COMMENT '自增ID',
`pid` int(5) NOT NULL COMMENT '上级ID',
`name` varchar(50) NOT NULL COMMENT '菜单名称',
`url` varchar(180) NOT NULL COMMENT 'Url函数地址',
`sort` int(5) DEFAULT NULL COMMENT '排序',
`icon` varchar(180) DEFAULT NULL COMMENT '图标',
`child` varchar(5) DEFAULT NULL,
`shows` varchar(5) DEFAULT NULL
) ENGINE=InnoDB AUTO_INCREMENT=57 DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `rh_mp` (微信公众号粉丝表:
`id` int(10) unsigned NOT NULL COMMENT '自增ID',
`user_id` int(10) NOT NULL COMMENT '用户ID',
`name` varchar(50) NOT NULL COMMENT '公众号名称',
`appid` varchar(50) DEFAULT NULL COMMENT 'AppId',
`appsecret` varchar(50) DEFAULT NULL COMMENT 'AppSecret',
`origin_id` varchar(50) NOT NULL COMMENT '公众号原始ID',
`type` int(1) NOT NULL DEFAULT '0' COMMENT '公众号类型(1:普通订阅号;2:认证订阅号;3:普通服务号;4:认证服务号',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态(0:禁用,1:正常,2:审核中)',
`valid_token` varchar(40) DEFAULT NULL COMMENT '接口验证Token',
`valid_status` tinyint(1) NOT NULL COMMENT '1已接入;0未接入',
`token` varchar(50) DEFAULT NULL COMMENT '公众号标识',
`encodingaeskey` varchar(50) DEFAULT NULL COMMENT '消息加解密秘钥',
`mp_number` varchar(50) DEFAULT NULL COMMENT '微信号',
`desc` text COMMENT '描述',
`logo` varchar(255) DEFAULT NULL COMMENT 'logo',
`qrcode` varchar(255) DEFAULT NULL COMMENT '二维码',
`create_time` int(10) NOT NULL COMMENT '创建时间',
`login_name` varchar(50) DEFAULT NULL COMMENT '公众号登录名',
`is_use` tinyint(1) NOT NULL DEFAULT '0' COMMENT '当前使用'
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='公众号表';
CREATE TABLE IF NOT EXISTS `rh_mp_friends` (公众号自定菜单表:
`id` int(10) NOT NULL COMMENT '自增ID',
`mpid` int(10) NOT NULL COMMENT '公众号标识',
`openid` varchar(255) NOT NULL COMMENT 'openid',
`nickname` varchar(50) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '昵称',
`headimgurl` varchar(255) DEFAULT NULL COMMENT '头像',
`sex` tinyint(1) DEFAULT NULL COMMENT '性别',
`subscribe` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否关注',
`subscribe_time` int(10) DEFAULT NULL COMMENT '关注时间',
`unsubscribe_time` int(10) DEFAULT NULL COMMENT '取消关注时间',
`relname` varchar(50) DEFAULT NULL COMMENT '真实姓名',
`signature` text COMMENT '个性签名',
`mobile` varchar(15) DEFAULT NULL COMMENT '手机号',
`is_bind` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否绑定',
`language` varchar(50) DEFAULT NULL COMMENT '使用语言',
`country` varchar(50) DEFAULT NULL COMMENT '国家',
`province` varchar(50) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '省',
`city` varchar(50) DEFAULT NULL COMMENT '城市',
`remark` varchar(50) DEFAULT NULL COMMENT '备注',
`group_id` int(10) DEFAULT '0' COMMENT '分组ID',
`groupid` int(11) NOT NULL COMMENT '公众号分组标识',
`tagid_list` varchar(255) DEFAULT NULL COMMENT '标签',
`score` int(10) DEFAULT '0' COMMENT '积分',
`money` decimal(10,2) DEFAULT '0.00' COMMENT '金钱',
`latitude` varchar(50) DEFAULT NULL COMMENT '纬度',
`longitude` varchar(50) DEFAULT NULL COMMENT '经度',
`location_precision` varchar(50) DEFAULT NULL COMMENT '精度',
`type` int(11) NOT NULL DEFAULT '0' COMMENT '0:公众号粉丝1:注册会员',
`unionid` varchar(160) DEFAULT NULL COMMENT 'unionid字段',
`password` varchar(64) DEFAULT NULL COMMENT '密码',
`last_time` int(10) DEFAULT '586969200' COMMENT '最后交互时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='公众号粉丝表';
CREATE TABLE IF NOT EXISTS `rh_mp_menu` (粉丝信息聊天记录表:
`id` bigint(16) unsigned NOT NULL,
`mp_id` int(11) DEFAULT '0' COMMENT '公众号标识',
`index` bigint(20) DEFAULT '0',
`pindex` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '父id',
`type` varchar(24) DEFAULT NULL COMMENT '菜单类型 null主菜单 link链接 keys关键字 event事件',
`name` varchar(256) DEFAULT NULL COMMENT '菜单名称',
`content` text COMMENT '文字内容',
`sort` int(10) unsigned DEFAULT '0' COMMENT '排序',
`status` tinyint(1) unsigned DEFAULT '1' COMMENT '状态(0禁用1启用)'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='微信自定义菜单表';
CREATE TABLE IF NOT EXISTS `rh_mp_msg` (公众号响应规则表:
`msg_id` int(11) NOT NULL COMMENT '自增 ID',
`pid` int(11) NOT NULL DEFAULT '0' COMMENT '上一条消息 ID',
`openid` varchar(64) DEFAULT NULL COMMENT 'openid',
`mpid` int(11) NOT NULL DEFAULT '0' COMMENT '公众号标识',
`type` varchar(32) DEFAULT NULL COMMENT '消息类型',
`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '消息内容',
`status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0未回复,1已回复',
`is_reply` tinyint(1) NOT NULL DEFAULT '0' COMMENT '1为公众号回复',
`create_time` int(10) NOT NULL DEFAULT '0' COMMENT '创建时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `rh_mp_rule` (回复类型表:
`id` int(10) NOT NULL COMMENT '自增ID',
`mpid` int(10) NOT NULL COMMENT '公众号ID',
`addon` varchar(50) DEFAULT NULL COMMENT '插件标识',
`keyword` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '关键词内容',
`type` varchar(50) DEFAULT NULL COMMENT '触发类型:text,addon,images,news,voice,music,video',
`event` varchar(50) DEFAULT NULL COMMENT '特殊事件如:关注、取关等',
`entry_id` int(10) DEFAULT NULL COMMENT '功能入口ID',
`reply_id` int(10) DEFAULT NULL COMMENT '自动回复ID',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态(1开户:0关闭)'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='公众号响应规则';
CREATE TABLE IF NOT EXISTS `rh_mp_reply` (微信支付交易:
`reply_id` int(11) NOT NULL COMMENT '自增ID',
`type` varchar(60) NOT NULL COMMENT '回复类型:text,images,news,voice,music,video',
`title` varchar(250) DEFAULT NULL COMMENT '标题(适用图文)',
`content` text COMMENT '文本内容',
`url` varchar(500) DEFAULT NULL COMMENT '资源地址',
`link` varchar(500) DEFAULT NULL COMMENT '连接(图片连接,图文连接等)',
`status_type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '1:永久0:临时',
`media_id` varchar(500) DEFAULT NULL COMMENT '媒体ID'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `rh_payment` (二维码:
`payment_id` int(11) NOT NULL COMMENT '自增 ID',
`member_id` int(11) NOT NULL DEFAULT '0' COMMENT '用户 ID',
`openid` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT 'OPENID',
`title` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT '标题|商品名称',
`order_number` varchar(32) NOT NULL DEFAULT '0' COMMENT '订单号',
`money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '金额',
`pay_type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '交易类型(1为微信2为支付宝)',
`status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态(0:未完成交易1:完成关键交易)',
`create_time` int(10) NOT NULL COMMENT '交易时间',
`mpid` int(11) NOT NULL COMMENT '公众号标识',
`remark` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT '备注',
`attach` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT '附加数据',
`refund` tinyint(1) DEFAULT NULL COMMENT '1:申请退款中2:退款完成'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `rh_qrcode` (二维码记录:
`id` int(10) unsigned NOT NULL COMMENT '主键',
`mpid` int(10) DEFAULT NULL COMMENT '公众号标识',
`scene_id` int(32) DEFAULT NULL COMMENT '场景值ID',
`scene_name` varchar(255) DEFAULT NULL COMMENT '场景名称',
`keyword` varchar(255) DEFAULT NULL COMMENT '关联关键词',
`qr_type` char(32) DEFAULT '0' COMMENT '二维码类型',
`scene_str` varchar(255) DEFAULT NULL COMMENT '场景值字符串',
`expire` int(10) DEFAULT NULL COMMENT '过期时间',
`ticket` varchar(255) DEFAULT NULL COMMENT '二维码Ticket',
`short_url` varchar(255) DEFAULT NULL COMMENT '二维码短地址',
`qrcode_url` text NOT NULL COMMENT '二维码原始地址',
`url` varchar(255) DEFAULT NULL COMMENT '二维码图片解析后的地址',
`create_time` int(10) DEFAULT NULL COMMENT '二维码创建时间',
`scan_count` int(11) NOT NULL COMMENT '扫码次数',
`gz_count` int(11) NOT NULL COMMENT '关注数量'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `rh_qrcode_data` (发红包:
`id` int(11) NOT NULL COMMENT '自增ID',
`scene_id` int(11) NOT NULL COMMENT '场景 ID',
`openid` varchar(160) NOT NULL COMMENT 'openid',
`create_time` varchar(60) NOT NULL COMMENT '扫码时间',
`mpid` int(11) NOT NULL COMMENT '公众号标识',
`qrcode_id` int(11) NOT NULL COMMENT '二维码ID',
`scan_count` int(11) NOT NULL DEFAULT '1' COMMENT '扫码次数',
`type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0:默认1:扫码关注'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `rh_redpack` (公众号配置:
`id` int(11) NOT NULL COMMENT '自增 ID',
`openid` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT 'openid',
`order_number` varchar(64) CHARACTER SET utf8 DEFAULT NULL COMMENT '单号',
`mpid` int(11) NOT NULL DEFAULT '0' COMMENT '公众号标识',
`money` decimal(10,2) NOT NULL COMMENT '红包金额',
`nick_name` varchar(255) DEFAULT NULL COMMENT '提供方名称',
`send_name` varchar(255) DEFAULT NULL COMMENT '发送者名称',
`create_time` int(10) DEFAULT NULL COMMENT '创建时间',
`addon` varchar(60) DEFAULT NULL COMMENT '应用扩展标识',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态1:正常0:过期'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `rh_setting` (
`id` int(11) NOT NULL COMMENT '自增ID',
`mpid` int(11) NOT NULL COMMENT '公众号标识',
`name` varchar(180) NOT NULL COMMENT '配置项名称',
`value` text NOT NULL COMMENT '配置值',
`cate` varchar(30) DEFAULT NULL COMMENT '分类'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
微信公众号如如何接入平台?
文档教程 • geeson 发表了文章 • 0 个评论 • 3153 次浏览 • 2017-10-02 13:33
进入接入信息界面后:如图:
然后微信进入公众号:https://mp.weixin.qq.com/
右侧找到开发:【基本配置】
首先配置IP 白名单,点击【修改】把系统平台的 IP 填写进入。如果多 IP 请换行填写。
然后找到下面的【服务器配置】
点击【修改配置】
把接入的信息,复制到微信服务器配置中。
然后保存提交。提示配置成功后。已经生效了。 查看全部
进入接入信息界面后:如图:
然后微信进入公众号:https://mp.weixin.qq.com/
右侧找到开发:【基本配置】
首先配置IP 白名单,点击【修改】把系统平台的 IP 填写进入。如果多 IP 请换行填写。
然后找到下面的【服务器配置】
点击【修改配置】
把接入的信息,复制到微信服务器配置中。
然后保存提交。提示配置成功后。已经生效了。
如何在平台中增加公众号与注意事项
文档教程 • geeson 发表了文章 • 0 个评论 • 1572 次浏览 • 2017-10-02 13:09
需要注意的是:APPID,APPSECRET,LOGO,二维码都是重要参数。务必正确填写。
其中的开启状态,如果是开启那么代表系统正常使用。如果关闭系统功能与粉丝互动将会停止。在公众号进行互动时会提示,关闭回复的内容。 查看全部
安装RhaPHP微信公众号管理系统
文档教程 • geeson 发表了文章 • 26 个评论 • 5371 次浏览 • 2017-10-02 12:36
系统要求:php版本5.5或以上,mysql在5.5或以上。为了系统达到更佳效果。我们建议你使用 PHP7.0或以上版本。
数据库编码选择:utf8mb4。
获取 RHAPHP 系统源代码
下载地址:https://github.com/geesondog/rhaphp
1:然后将其解压后上传到你的网站根目录,在安装之前请把 addon,application,data,uploads 目录设为可读可写权限。linux,mac设为777权限。window 设为可读可写权限。
2:为了系统更加的安全,我们建议你自定runtime目录,方法如下:
系统目录默认是 runtime 那么这个目录我想定义为:myruntime,在系统根目录下的index.php中的runtime改为 myruntime.
3:那么现在就开始安装吧。整个安装过程是比较简单的。http://域名/index.php系统自动进入安装界面.
在环境检查时,请检查是否满足系统安装条件。如下图:
若全部满足点击一步进入系统配置。如图:
若所有的参数都正确填写,那么点击下一步系统会自动安装完成。
如果你不懂安装,需要技术支持。请联系官方人员。 查看全部
系统要求:php版本5.5或以上,mysql在5.5或以上。为了系统达到更佳效果。我们建议你使用 PHP7.0或以上版本。
数据库编码选择:utf8mb4。
获取 RHAPHP 系统源代码
下载地址:https://github.com/geesondog/rhaphp
1:然后将其解压后上传到你的网站根目录,在安装之前请把 addon,application,data,uploads 目录设为可读可写权限。linux,mac设为777权限。window 设为可读可写权限。
2:为了系统更加的安全,我们建议你自定runtime目录,方法如下:
系统目录默认是 runtime 那么这个目录我想定义为:myruntime,在系统根目录下的index.php中的runtime改为 myruntime.
3:那么现在就开始安装吧。整个安装过程是比较简单的。http://域名/index.php系统自动进入安装界面.
在环境检查时,请检查是否满足系统安装条件。如下图:
若全部满足点击一步进入系统配置。如图:
若所有的参数都正确填写,那么点击下一步系统会自动安装完成。
如果你不懂安装,需要技术支持。请联系官方人员。