功能使用

功能使用

我还是觉得很方便,你们觉得呢

分享geeson 发表了文章 • 6 个评论 • 617 次浏览 • 2017-12-28 21:28 • 来自相关话题

 

80E21CBE-F218-4453-9B60-5FE8B5F81B7E.png


74D0EBF8-1035-46BC-A1FA-D9E3AFDD3551.png

 

关于使用公众平台选择安全模式下接入说明

分享geeson 发表了文章 • 0 个评论 • 488 次浏览 • 2017-12-07 14:15 • 来自相关话题

        在rhaphp开发之初,已经想到默认上要支持安全模式的,但大家放心,选择明文模式也是没有什么大碍的。比较多的平台都是选择明文模式的,所以在rhaphp1.2.2版本是没有支持到安全模式接入,是因为想到 PHP7已经流行。
在rhaphp下一个版本中默认是支持安全模式的,但是需要说明一点的是:在微信官方提供对消息的解密是使用mcrypt 扩展的,而且这个扩展在 PHP7.1已经失效的了。PHP官方说明:http://php.net/manual/zh/migration71.deprecated.php
mcrypt 扩展已经过时了大约10年,并且用起来很复杂。因此它被废弃并且被 OpenSSL 所取代。 从PHP 7.2起它将被从核心代码中移除并且移到PECL中。
在 rhaphp发布1.2.3版本后,是默认支持安全模式的,如果你的 PHP版本是5.5-7.0之间,是可以使用选择安全模式的。如果在 PHP7.1以上的就需要安装OpenSSL扩展并且代替mcrypt加密与解密的函数。在rhaphp系统中使用的 PHPSDK 我们会一直更新的。并且还要说明一点:这并不是rhaphp的缺憾,如果你的环境是满足的那么可以忽略此文。 查看全部
        在rhaphp开发之初,已经想到默认上要支持安全模式的,但大家放心,选择明文模式也是没有什么大碍的。比较多的平台都是选择明文模式的,所以在rhaphp1.2.2版本是没有支持到安全模式接入,是因为想到 PHP7已经流行。
在rhaphp下一个版本中默认是支持安全模式的,但是需要说明一点的是:在微信官方提供对消息的解密是使用mcrypt 扩展的,而且这个扩展在 PHP7.1已经失效的了。PHP官方说明:http://php.net/manual/zh/migration71.deprecated.php
mcrypt 扩展已经过时了大约10年,并且用起来很复杂。因此它被废弃并且被 OpenSSL 所取代。 从PHP 7.2起它将被从核心代码中移除并且移到PECL中。
在 rhaphp发布1.2.3版本后,是默认支持安全模式的,如果你的 PHP版本是5.5-7.0之间,是可以使用选择安全模式的。如果在 PHP7.1以上的就需要安装OpenSSL扩展并且代替mcrypt加密与解密的函数。在rhaphp系统中使用的 PHPSDK 我们会一直更新的。并且还要说明一点:这并不是rhaphp的缺憾,如果你的环境是满足的那么可以忽略此文。

如何隐藏入口index.php,Apache,iis,Nginx配置

文档教程geeson 发表了文章 • 2 个评论 • 1864 次浏览 • 2017-10-29 13:51 • 来自相关话题

[ Apache ]

httpd.conf配置文件中加载了mod_rewrite.so模块(一般集成环境已经配置,可忽略)
AllowOverride None 将None改为 All
把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下:<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>




[ IIS ]

如果你的服务器环境支持ISAPI_Rewrite的话,(iis6)可以配置httpd.ini文件,添加下面的内容:RewriteRule (.*)$ /index\.php\?s=$1

在IIS的高版本下面可以配置web.Config,在中间添加rewrite节点:<rewrite>
<rules>
<rule name="OrgPage" stopProcessing="true">
<match url="^(.*)$" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^(.*)$" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" />
</rule>
</rules>
</rewrite>
 


[ Nginx ]


在Nginx低版本中,是不支持PATHINFO的,但是可以通过在Nginx.conf中配置转发规则实现:location / { // …..省略部分代码
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
} 查看全部


[ Apache ]


httpd.conf配置文件中加载了mod_rewrite.so模块(一般集成环境已经配置,可忽略)
AllowOverride None 将None改为 All
把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下:
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>




[ IIS ]


如果你的服务器环境支持ISAPI_Rewrite的话,(iis6)可以配置httpd.ini文件,添加下面的内容:
RewriteRule (.*)$ /index\.php\?s=$1 

在IIS的高版本下面可以配置web.Config,在中间添加rewrite节点:
<rewrite>
<rules>
<rule name="OrgPage" stopProcessing="true">
<match url="^(.*)$" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^(.*)$" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" />
</rule>
</rules>
</rewrite>
 



[ Nginx ]



在Nginx低版本中,是不支持PATHINFO的,但是可以通过在Nginx.conf中配置转发规则实现:
location / { // …..省略部分代码
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}

【第六篇】微信开发应用之Api.php介绍

文档教程geeson 发表了文章 • 5 个评论 • 2280 次浏览 • 2017-10-11 12:42 • 来自相关话题

在微信开发的第一篇有说明了Api.php:http://ask.rhaphp.com/article/7
在这一篇主要介绍与微信如何交互与通信的,这里我创建是一个名称 myDemo的应用作为演示。目录文件如下图:





如果你对目录不了解请回头回文档,创建好之后,然后系统的后台进入此演示应用,在响应中设置关键词,当然也可以在自动回复中增加关键词然后选择演示应用,两者可选。你觉得那个方便使用那个。关键词设为:rhaphp,如下图:





也可以在自动回复中可以设置的,设置完成后可以看到,如下图:





粉丝触发关键词如何回复文本?很简单的代码如下:public function message($msg = [], $param = [])
{
replyText('二狗,你好!你触发了myDemo');
}在公众号输入rhaphp后,效果如下图:





如何看到微信发送的消息?public function message($msg = [], $param = [])
{
replyText(json_encode($msg));
}因为$msg是数据来的,文本方式回复那么我们要把$msg转成json。效果如下图:






当然还可以回复其它,图文消息,图片消息,视频消息等,我在介绍函数文档会说明。 查看全部
在微信开发的第一篇有说明了Api.php:http://ask.rhaphp.com/article/7
在这一篇主要介绍与微信如何交互与通信的,这里我创建是一个名称 myDemo的应用作为演示。目录文件如下图:

1.png

如果你对目录不了解请回头回文档,创建好之后,然后系统的后台进入此演示应用,在响应中设置关键词,当然也可以在自动回复中增加关键词然后选择演示应用,两者可选。你觉得那个方便使用那个。关键词设为:rhaphp,如下图:

1.png

也可以在自动回复中可以设置的,设置完成后可以看到,如下图:

1.png

粉丝触发关键词如何回复文本?很简单的代码如下:
public function message($msg = [], $param = [])
{
replyText('二狗,你好!你触发了myDemo');
}
在公众号输入rhaphp后,效果如下图:

1.png

如何看到微信发送的消息?
public function message($msg = [], $param = [])
{
replyText(json_encode($msg));
}
因为$msg是数据来的,文本方式回复那么我们要把$msg转成json。效果如下图:


1.png

当然还可以回复其它,图文消息,图片消息,视频消息等,我在介绍函数文档会说明。

【第五篇】 RhaPHP微信应用开发之视图view

文档教程geeson 发表了文章 • 0 个评论 • 1902 次浏览 • 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函数 查看全部
应用的视图是支持模板的继承,从官方提供的投票的应用中有使用到,如下图:
1.png

因为开发使用得最多的就是模板继承,在使用上也是比较简单与好用的。如果有同学从来都没有没有接触过,建议你去看一下 THINKPHP5文档中模板继承。如果你想按着老套路的当然也是可以的,但是我建议你要跟上流行的节奏。

如何引入应用下的 static里面的资源?如我要引入 static/css/style.css 代码如下:
{CSS href="__ADDONSTATIC__/css/style.css" /}
__ADDONSTATIC__也是自动的识别当前应用的路径。

如何使用微信的JSSDK?代码如下:
 {:hook('Jssdk')}
当你使用此行为后,并需要你再去配置 JSSDK 任何的东西,系统已经本身已经配置好了,只要你使用了{:hook('Jssdk')}系统已经为你做好了一切。如果报错的话,(签名错误呀,URL不合Fa呀)请不要尝试在系统找原因,只要填写相应的参数是正确的,公众号配置是正确的,那么系统99%是正常的。

投票应用中的代码,如下图

1.png

若配置成功,那么你就可以在 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 个评论 • 1662 次浏览 • 2017-10-09 14:02 • 来自相关话题

Api.php是与微信交互响应控制器,因此该控制器并不需要继承Addon,其它在 controller目录下的控制器,如果没有特别的情况,我们建议你都继承 Addon,因为它能够在开发帮你处理很多东西,快速开发。
如何显示模板与模板赋值?<?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。后台配置如下图:






还有很多比较有意思的设计逻辑。大家在使用过程自然会发现的。有任何改进或者问题欢迎大家反馈。谢谢大家
  查看全部
Api.php是与微信交互响应控制器,因此该控制器并不需要继承Addon,其它在 controller目录下的控制器,如果没有特别的情况,我们建议你都继承 Addon,因为它能够在开发帮你处理很多东西,快速开发。
如何显示模板与模板赋值?
<?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();
}
这里需要你注意一下,这里考虑到了一些没有授权登录权限的公众号。所以使用微信登录首先要到公众号-》【授权&注册】先配置好。如下图:

1.png

有网页授权登录权限的请选择系统自动注册,没有授权登录的请选择回复注册|登录。回复注册|登录是使用响应机制的。你可以设置关键词,或者自定菜单触发关键词,然后系统会以图文形式回复为登录入口。其中的跳转地址就是用户点击进入完成登录后,需要跳到的页面地址,一般是你的应用地址。这里的目录就是获取到粉丝的 openid.这里出发点是考虑到没有授权的公众号要做会员中心,用户组,优惠率,等等。

重点重点重点的来了!!!!!
这里可能有同学要骂我了?如果我很多应用都需要获取 openid啊,你这里跳转地址只有一个哇。其实我已经帮你想到这个问题的啦。按照国际惯例,没有页面授权登录的公众号的微信应用都使用了回复关键词或者自定菜单触发关键词,回复图文,然后进入该应用后系统自动的把 openid 传参到该应用的 URL中了 使用 get,或者 input()获取 openid。后台配置如下图:

1.png


还有很多比较有意思的设计逻辑。大家在使用过程自然会发现的。有任何改进或者问题欢迎大家反馈。谢谢大家
 

微信公众号如如何接入平台?

文档教程geeson 发表了文章 • 0 个评论 • 2196 次浏览 • 2017-10-02 13:33 • 来自相关话题

成功增加公众号后,进入公众号管理。如图:





进入接入信息界面后:如图:





然后微信进入公众号:https://mp.weixin.qq.com/
右侧找到开发:【基本配置】
首先配置IP 白名单,点击【修改】把系统平台的 IP 填写进入。如果多 IP 请换行填写。






然后找到下面的【服务器配置】
点击【修改配置】





把接入的信息,复制到微信服务器配置中。










然后保存提交。提示配置成功后。已经生效了。 查看全部
成功增加公众号后,进入公众号管理。如图:

2FE44EB5-1EFE-4B15-B803-0D75CB52949B.png

进入接入信息界面后:如图:

5B0C8949-32EE-4684-9DA3-2DFE97606E81.png

然后微信进入公众号:https://mp.weixin.qq.com/
右侧找到开发:【基本配置】
首先配置IP 白名单,点击【修改】把系统平台的 IP 填写进入。如果多 IP 请换行填写。

B7498331-0016-450B-96DA-517107BBA0C1.png


然后找到下面的【服务器配置】
点击【修改配置】

09F32956-4D4D-4761-8ECB-7BD1D468F7E6.png

把接入的信息,复制到微信服务器配置中。

5B0C8949-32EE-4684-9DA3-2DFE97606E81.png


09F32956-4D4D-4761-8ECB-7BD1D468F7E6.png

然后保存提交。提示配置成功后。已经生效了。

如何在平台中增加公众号与注意事项

文档教程geeson 发表了文章 • 0 个评论 • 1121 次浏览 • 2017-10-02 13:09 • 来自相关话题

登录系统后,系统管理->公众号管理->增加公众号,如图:





需要注意的是:APPID,APPSECRET,LOGO,二维码都是重要参数。务必正确填写。
其中的开启状态,如果是开启那么代表系统正常使用。如果关闭系统功能与粉丝互动将会停止。在公众号进行互动时会提示,关闭回复的内容。 查看全部
登录系统后,系统管理->公众号管理->增加公众号,如图:

3748EED6-9CD9-42C2-B1B9-F1362F55913D.png

需要注意的是:APPID,APPSECRET,LOGO,二维码都是重要参数。务必正确填写。
其中的开启状态,如果是开启那么代表系统正常使用。如果关闭系统功能与粉丝互动将会停止。在公众号进行互动时会提示,关闭回复的内容。

我还是觉得很方便,你们觉得呢

分享geeson 发表了文章 • 6 个评论 • 617 次浏览 • 2017-12-28 21:28 • 来自相关话题

 

80E21CBE-F218-4453-9B60-5FE8B5F81B7E.png


74D0EBF8-1035-46BC-A1FA-D9E3AFDD3551.png

 

关于使用公众平台选择安全模式下接入说明

分享geeson 发表了文章 • 0 个评论 • 488 次浏览 • 2017-12-07 14:15 • 来自相关话题

        在rhaphp开发之初,已经想到默认上要支持安全模式的,但大家放心,选择明文模式也是没有什么大碍的。比较多的平台都是选择明文模式的,所以在rhaphp1.2.2版本是没有支持到安全模式接入,是因为想到 PHP7已经流行。
在rhaphp下一个版本中默认是支持安全模式的,但是需要说明一点的是:在微信官方提供对消息的解密是使用mcrypt 扩展的,而且这个扩展在 PHP7.1已经失效的了。PHP官方说明:http://php.net/manual/zh/migration71.deprecated.php
mcrypt 扩展已经过时了大约10年,并且用起来很复杂。因此它被废弃并且被 OpenSSL 所取代。 从PHP 7.2起它将被从核心代码中移除并且移到PECL中。
在 rhaphp发布1.2.3版本后,是默认支持安全模式的,如果你的 PHP版本是5.5-7.0之间,是可以使用选择安全模式的。如果在 PHP7.1以上的就需要安装OpenSSL扩展并且代替mcrypt加密与解密的函数。在rhaphp系统中使用的 PHPSDK 我们会一直更新的。并且还要说明一点:这并不是rhaphp的缺憾,如果你的环境是满足的那么可以忽略此文。 查看全部
        在rhaphp开发之初,已经想到默认上要支持安全模式的,但大家放心,选择明文模式也是没有什么大碍的。比较多的平台都是选择明文模式的,所以在rhaphp1.2.2版本是没有支持到安全模式接入,是因为想到 PHP7已经流行。
在rhaphp下一个版本中默认是支持安全模式的,但是需要说明一点的是:在微信官方提供对消息的解密是使用mcrypt 扩展的,而且这个扩展在 PHP7.1已经失效的了。PHP官方说明:http://php.net/manual/zh/migration71.deprecated.php
mcrypt 扩展已经过时了大约10年,并且用起来很复杂。因此它被废弃并且被 OpenSSL 所取代。 从PHP 7.2起它将被从核心代码中移除并且移到PECL中。
在 rhaphp发布1.2.3版本后,是默认支持安全模式的,如果你的 PHP版本是5.5-7.0之间,是可以使用选择安全模式的。如果在 PHP7.1以上的就需要安装OpenSSL扩展并且代替mcrypt加密与解密的函数。在rhaphp系统中使用的 PHPSDK 我们会一直更新的。并且还要说明一点:这并不是rhaphp的缺憾,如果你的环境是满足的那么可以忽略此文。

如何隐藏入口index.php,Apache,iis,Nginx配置

文档教程geeson 发表了文章 • 2 个评论 • 1864 次浏览 • 2017-10-29 13:51 • 来自相关话题

[ Apache ]

httpd.conf配置文件中加载了mod_rewrite.so模块(一般集成环境已经配置,可忽略)
AllowOverride None 将None改为 All
把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下:<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>




[ IIS ]

如果你的服务器环境支持ISAPI_Rewrite的话,(iis6)可以配置httpd.ini文件,添加下面的内容:RewriteRule (.*)$ /index\.php\?s=$1

在IIS的高版本下面可以配置web.Config,在中间添加rewrite节点:<rewrite>
<rules>
<rule name="OrgPage" stopProcessing="true">
<match url="^(.*)$" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^(.*)$" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" />
</rule>
</rules>
</rewrite>
 


[ Nginx ]


在Nginx低版本中,是不支持PATHINFO的,但是可以通过在Nginx.conf中配置转发规则实现:location / { // …..省略部分代码
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
} 查看全部


[ Apache ]


httpd.conf配置文件中加载了mod_rewrite.so模块(一般集成环境已经配置,可忽略)
AllowOverride None 将None改为 All
把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下:
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>




[ IIS ]


如果你的服务器环境支持ISAPI_Rewrite的话,(iis6)可以配置httpd.ini文件,添加下面的内容:
RewriteRule (.*)$ /index\.php\?s=$1 

在IIS的高版本下面可以配置web.Config,在中间添加rewrite节点:
<rewrite>
<rules>
<rule name="OrgPage" stopProcessing="true">
<match url="^(.*)$" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^(.*)$" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" />
</rule>
</rules>
</rewrite>
 



[ Nginx ]



在Nginx低版本中,是不支持PATHINFO的,但是可以通过在Nginx.conf中配置转发规则实现:
location / { // …..省略部分代码
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}

【第六篇】微信开发应用之Api.php介绍

文档教程geeson 发表了文章 • 5 个评论 • 2280 次浏览 • 2017-10-11 12:42 • 来自相关话题

在微信开发的第一篇有说明了Api.php:http://ask.rhaphp.com/article/7
在这一篇主要介绍与微信如何交互与通信的,这里我创建是一个名称 myDemo的应用作为演示。目录文件如下图:





如果你对目录不了解请回头回文档,创建好之后,然后系统的后台进入此演示应用,在响应中设置关键词,当然也可以在自动回复中增加关键词然后选择演示应用,两者可选。你觉得那个方便使用那个。关键词设为:rhaphp,如下图:





也可以在自动回复中可以设置的,设置完成后可以看到,如下图:





粉丝触发关键词如何回复文本?很简单的代码如下:public function message($msg = [], $param = [])
{
replyText('二狗,你好!你触发了myDemo');
}在公众号输入rhaphp后,效果如下图:





如何看到微信发送的消息?public function message($msg = [], $param = [])
{
replyText(json_encode($msg));
}因为$msg是数据来的,文本方式回复那么我们要把$msg转成json。效果如下图:






当然还可以回复其它,图文消息,图片消息,视频消息等,我在介绍函数文档会说明。 查看全部
在微信开发的第一篇有说明了Api.php:http://ask.rhaphp.com/article/7
在这一篇主要介绍与微信如何交互与通信的,这里我创建是一个名称 myDemo的应用作为演示。目录文件如下图:

1.png

如果你对目录不了解请回头回文档,创建好之后,然后系统的后台进入此演示应用,在响应中设置关键词,当然也可以在自动回复中增加关键词然后选择演示应用,两者可选。你觉得那个方便使用那个。关键词设为:rhaphp,如下图:

1.png

也可以在自动回复中可以设置的,设置完成后可以看到,如下图:

1.png

粉丝触发关键词如何回复文本?很简单的代码如下:
public function message($msg = [], $param = [])
{
replyText('二狗,你好!你触发了myDemo');
}
在公众号输入rhaphp后,效果如下图:

1.png

如何看到微信发送的消息?
public function message($msg = [], $param = [])
{
replyText(json_encode($msg));
}
因为$msg是数据来的,文本方式回复那么我们要把$msg转成json。效果如下图:


1.png

当然还可以回复其它,图文消息,图片消息,视频消息等,我在介绍函数文档会说明。

【第五篇】 RhaPHP微信应用开发之视图view

文档教程geeson 发表了文章 • 0 个评论 • 1902 次浏览 • 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函数 查看全部
应用的视图是支持模板的继承,从官方提供的投票的应用中有使用到,如下图:
1.png

因为开发使用得最多的就是模板继承,在使用上也是比较简单与好用的。如果有同学从来都没有没有接触过,建议你去看一下 THINKPHP5文档中模板继承。如果你想按着老套路的当然也是可以的,但是我建议你要跟上流行的节奏。

如何引入应用下的 static里面的资源?如我要引入 static/css/style.css 代码如下:
{CSS href="__ADDONSTATIC__/css/style.css" /}
__ADDONSTATIC__也是自动的识别当前应用的路径。

如何使用微信的JSSDK?代码如下:
 {:hook('Jssdk')}
当你使用此行为后,并需要你再去配置 JSSDK 任何的东西,系统已经本身已经配置好了,只要你使用了{:hook('Jssdk')}系统已经为你做好了一切。如果报错的话,(签名错误呀,URL不合Fa呀)请不要尝试在系统找原因,只要填写相应的参数是正确的,公众号配置是正确的,那么系统99%是正常的。

投票应用中的代码,如下图

1.png

若配置成功,那么你就可以在 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 个评论 • 1662 次浏览 • 2017-10-09 14:02 • 来自相关话题

Api.php是与微信交互响应控制器,因此该控制器并不需要继承Addon,其它在 controller目录下的控制器,如果没有特别的情况,我们建议你都继承 Addon,因为它能够在开发帮你处理很多东西,快速开发。
如何显示模板与模板赋值?<?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。后台配置如下图:






还有很多比较有意思的设计逻辑。大家在使用过程自然会发现的。有任何改进或者问题欢迎大家反馈。谢谢大家
  查看全部
Api.php是与微信交互响应控制器,因此该控制器并不需要继承Addon,其它在 controller目录下的控制器,如果没有特别的情况,我们建议你都继承 Addon,因为它能够在开发帮你处理很多东西,快速开发。
如何显示模板与模板赋值?
<?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();
}
这里需要你注意一下,这里考虑到了一些没有授权登录权限的公众号。所以使用微信登录首先要到公众号-》【授权&注册】先配置好。如下图:

1.png

有网页授权登录权限的请选择系统自动注册,没有授权登录的请选择回复注册|登录。回复注册|登录是使用响应机制的。你可以设置关键词,或者自定菜单触发关键词,然后系统会以图文形式回复为登录入口。其中的跳转地址就是用户点击进入完成登录后,需要跳到的页面地址,一般是你的应用地址。这里的目录就是获取到粉丝的 openid.这里出发点是考虑到没有授权的公众号要做会员中心,用户组,优惠率,等等。

重点重点重点的来了!!!!!
这里可能有同学要骂我了?如果我很多应用都需要获取 openid啊,你这里跳转地址只有一个哇。其实我已经帮你想到这个问题的啦。按照国际惯例,没有页面授权登录的公众号的微信应用都使用了回复关键词或者自定菜单触发关键词,回复图文,然后进入该应用后系统自动的把 openid 传参到该应用的 URL中了 使用 get,或者 input()获取 openid。后台配置如下图:

1.png


还有很多比较有意思的设计逻辑。大家在使用过程自然会发现的。有任何改进或者问题欢迎大家反馈。谢谢大家
 

微信公众号如如何接入平台?

文档教程geeson 发表了文章 • 0 个评论 • 2196 次浏览 • 2017-10-02 13:33 • 来自相关话题

成功增加公众号后,进入公众号管理。如图:





进入接入信息界面后:如图:





然后微信进入公众号:https://mp.weixin.qq.com/
右侧找到开发:【基本配置】
首先配置IP 白名单,点击【修改】把系统平台的 IP 填写进入。如果多 IP 请换行填写。






然后找到下面的【服务器配置】
点击【修改配置】





把接入的信息,复制到微信服务器配置中。










然后保存提交。提示配置成功后。已经生效了。 查看全部
成功增加公众号后,进入公众号管理。如图:

2FE44EB5-1EFE-4B15-B803-0D75CB52949B.png

进入接入信息界面后:如图:

5B0C8949-32EE-4684-9DA3-2DFE97606E81.png

然后微信进入公众号:https://mp.weixin.qq.com/
右侧找到开发:【基本配置】
首先配置IP 白名单,点击【修改】把系统平台的 IP 填写进入。如果多 IP 请换行填写。

B7498331-0016-450B-96DA-517107BBA0C1.png


然后找到下面的【服务器配置】
点击【修改配置】

09F32956-4D4D-4761-8ECB-7BD1D468F7E6.png

把接入的信息,复制到微信服务器配置中。

5B0C8949-32EE-4684-9DA3-2DFE97606E81.png


09F32956-4D4D-4761-8ECB-7BD1D468F7E6.png

然后保存提交。提示配置成功后。已经生效了。

如何在平台中增加公众号与注意事项

文档教程geeson 发表了文章 • 0 个评论 • 1121 次浏览 • 2017-10-02 13:09 • 来自相关话题

登录系统后,系统管理->公众号管理->增加公众号,如图:





需要注意的是:APPID,APPSECRET,LOGO,二维码都是重要参数。务必正确填写。
其中的开启状态,如果是开启那么代表系统正常使用。如果关闭系统功能与粉丝互动将会停止。在公众号进行互动时会提示,关闭回复的内容。 查看全部
登录系统后,系统管理->公众号管理->增加公众号,如图:

3748EED6-9CD9-42C2-B1B9-F1362F55913D.png

需要注意的是:APPID,APPSECRET,LOGO,二维码都是重要参数。务必正确填写。
其中的开启状态,如果是开启那么代表系统正常使用。如果关闭系统功能与粉丝互动将会停止。在公众号进行互动时会提示,关闭回复的内容。