拽写人:小黄牛
-
使用说明
- 后台PHP用法:
- 0、环境要求
- 1、创建管理员
- 2、模板中如何进行权限判断
- 3、数据库管理
- 4、添加操作日志记录
- 5、验证当前管理员地区权限
- 6、获取当前管理员地区权限列表
- 7、调用短信发送接口
- 8、调用邮件发送接口
- 9、七牛云OSS存储接口
- 10、微信开发接口
- 1、Token认证
- 2、自动文本回复
- 3、更新自定义菜单
- 4、拉取自定义菜单
- 5、删除自定义菜单
- 6、写入日志
- 7、自定义开发
- 8、创建二维码
- 9、长连接转换
- 10、更改行业信息
- 11、获得模板ID
- 12、发送消息模板
- 13、生成网页登录授权链接
- 14、根据code去获取特殊access_token
- 15、根据凭据,更新特殊access_token
- 16、获取用户信息
- 17、完整的登录案例代码(控制器中的代码)
- 18、获取用户列表
- 19、设置用户的备注名
- 20、JSAPI支付
- 21、二维码支付:模式一
- 22、二维码支付:模式二
- 23、查询订单
- 24、申请退款
- 25、查询退款
- 26、下载微信支付对账单
- 11、微信浏览器检测域名屏蔽
- 12、免费快递查询
- 13、网站收录量查询
- 14、CMD工具命令扩展
- 15、聚合登录接口
- 16、百度翻译接口
- 17、手机归属地查询接口
- 18、居民身份证真实性查询接口
- 19、密码表简单加解密
- 20、IP省市区地址查询
- 21、文件压缩解压
- 公关函数库:
- 后台JS用法:
- 更新日程
- 注意事项
- 文件以及目录说明
后端 - 后台开发文档
0、环境要求
操作系统:Windows/Linux
PHP:5.6+
MySql:5.6+
1、创建管理员
A、添加对应的菜单列表
B、创建需要的部门,例如:技术部、司机部等
C、创建需要分配权限菜单的角色
D、创建需要的岗位,例如:技术部经理、实习生等,一个岗位可关联多个角色
E、创建管理员,系统最多只能同时存在3个超级管理员
2、模板中如何进行权限判断
在模板文件中,使用下列方式即可判断权限显示对应的菜单:
{if condition="$adminController->vif('控制器','方法')"} {/if}
3、数据库管理
出于安全考虑,当前系统只支持数据库表详情查看
功能
4、添加操作日志记录
在控制器中使用$this->addLog();
添加操作日志,参数如下:
/** * 记录操作日志 * @param string $type 操作类型 * @param string $title 详细描述 * @param int $status 操作状态 1|2|3 成功|失败|异常 * @param bool $model 是否需要重定向回上一页 * @return 无 */ public function addLog($type, $title, $status, $model=true){ }
5、验证当前管理员地区权限
在控制器中使用$this->regionVif();
验证地区权限,参数如下:
/** * 验证是否拥有地区访问权限 * @param int $id 地区ID * @return bool */ public function regionVif($id = ''){ }
6、获取当前管理员地区权限列表
在控制器中使用$this->regionGet();
拉取地区权限,该方法不需要传参:
/** * 拉取地区访问权限 * @return bool|string */ public function regionGet(){ }
7、调用短信发送接口
在控制器中使用\sms\Sms::run(手机号, 短信内容)
发送短信,该方法需要传参:
/** * 调用发送接口 * @param string $phone 接收短信手机号集合,多个用逗号分隔 * @param mixed $param 短信变量内容,就是你短信模板里的{},多个用,逗号隔开 * @return string|bool */ public static function run($phone, $param) { } 当返回值为true时,表示发送成功 当返回值为string时,为发送失败的原因 当返回值为false时,表示后台关闭了发送短信设置
8、调用邮件发送接口
在控制器中使用\email\Email::run(邮箱, 邮件标题, 邮件内容)
发送邮件,该方法需要传参:
/** * 发送邮件 * @param string $email 邮件人邮箱,多个使用,逗号隔开 * @param string $title 邮件标题 * @param string $html 邮件内容 * @return string|bool */ public static function run($email, $title, $html) { } 当返回值为true时,表示发送成功 当返回值为string时,为发送失败的原因
9、七牛云OSS存储接口
七牛云相关接口,是一整套图片相关操作的SDK,可以组合成自己想要的功能:
1、获取文件大小限制
在控制器中直接使用\qiniu\Qiniu::get_size()
:
/** * 获得限制大小 * @return int */ public static function get_size(){ } 返回值为字节数
2、获取文件类型限制
在控制器中直接使用\qiniu\Qiniu::get_type()
:
/** * 获得限制类型 * @return string */ public static function get_type(){ } 返回值为后台设置的限制类型
3、是否开启七牛云存储
在控制器中直接使用\qiniu\Qiniu::get_status()
:
/** * 获得开启状态 * @return int */ public static function get_status(){ } 返回值0,关闭 返回值1,开启
4、是否开启图片压缩
在控制器中直接使用\qiniu\Qiniu::get_zip()
:
/** * 获得压缩状态 * @return int */ public static function get_zip(){ } 返回值0,关闭 返回值1,开启
5、压缩图片
在控制器中使用\qiniu\Qiniu::image_png_size_add(图片路径, 压缩后保存路径)
进行图片压缩,该方法需要传参:
/** * 压缩本地图片 * @param string $imgsrc 图片路径 * @param string $imgdst 压缩后保存路径 * @return void */ public static function image_png_size_add($imgsrc,$imgdst){ } 没有返回值
6、七牛云:上传文件
在控制器中使用\qiniu\Qiniu::put(图片路径, 七牛云保存的文件名)
进行七牛云文件上传,该方法需要传参:
/** * 上传七牛云图片 * @param string $filePath 要上传文件的本地路径 * @param string $key 上传到七牛后保存的文件名 * @return string|bool */ public static function put($filePath, $key){ } 当返回值为true时,表示删除成功 当返回值为false时,发送失败或后台已经关闭七牛云启用设置
7、七牛云:删除文件
在控制器中使用\qiniu\Qiniu::delete(图片路径)
进行七牛云文件删除,该方法需要传参:
/** * 删除七牛云图片 * @param string $filePath 图片地址 * @return bool */ public static function delete($filePath){ } 当返回值为true时,表示删除成功 当返回值为false时,发送失败或后台已经关闭七牛云启用设置
10、微信开发接口
JunAMS基于官方SDK封装了一套微信开发的相关接口,可以直接使用官方提供的功能,也可以自定义组合成自己想要的功能:
在使用微信开发API前,请先到API参数管理中设置相关参数,再进行调用。
1、Token认证
官方提供了的默认认证地址为/admin.php/common/token_vif
,如果你想自定义认证,也可以调用\weixin\Weixin::token_vif()
,该方法返回bool
值。
2、自动文本回复
官方提供了的默认的自动回复功能,但只支持文本回复,程序处理地址为/admin.php/common/token_vif
,如果你想自定义认证,也可以调用\weixin\Weixin
类里的方法进行组合开发。
注意:默认情况下,官方的自动回复功能是关闭的,需要在API参数管理中进行开启。
3、更新自定义菜单
官方提供了的默认的菜单更新功能,在API参数管理中可以进行点击更新,如果你想自定义菜单更新功能,可以调用\weixin\Weixin::save_menu()
方法,该方法成功返回true
,失败返回错误原因。
注意:该方法读取的是config
表中的weixin_menu
字段内容进行菜单更新,所以在自定义调用前,请先更新表中的字段内容。
4、拉取自定义菜单
官方提供了的默认的菜单拉取功能,在API参数管理中可以进行点击拉取,如果你想自定义菜单拉取功能,可以调用\weixin\Weixin::get_menu()
方法,该方法成功返回菜单JSON,失败返回{}
。
5、删除自定义菜单
官方提供了的默认的菜单删除功能,在API参数管理中可以进行点击删除,如果你想自定义菜单删除功能,可以调用\weixin\Weixin::delete_menu()
方法,该方法返回bool
值。
6、写入日志
调用\weixin\Weixin::add_log( 一个一维数组自定义内容,是否记录系统错误信息)
写入微信日志文件,该方法传参比较特殊,例如:。
\weixin\Weixin::add_log([ '微信认证处理', '加密签名'=>$signature, '时间戳'=>$timestamp, '随机数'=>$nonce, '随机字符串'=>$echoStr, ], true);
注意:默认情况下,日志文件是追加记录方式,如果需要切换日志模式,可以在API参数管理中进行设置。
7、自定义开发
JunAMS提供了强大便捷的微信API类库,如果需要自定义功能的开发者们,可以参考/extend/weixin/Weixin.php
类文件中的各个方法,再灵活组合使用。
8、创建二维码
调用方法为\weixin\Weixin::get_qrcode(二维码参数, 二维码的类型)
,该方法返回获取二维码的URL,直接放入src中即可。
/** * 创建微信二维码 * @todo 注意:不是支付二维码 * @param string $val 二维码参数 * @param mixed $type 二维码的类型 1|2|3 = 临时|永久|永久的字符串参数值 * @return string 二维码的url */ public static function get_qrcode($val, $type = 1) { }
9、长连接转换
调用方法为\weixin\Weixin::get_shorturl(链接地址)
,该方法返回false
为失败,成功返回短连接。
/** * 长链接转短链接接口 * @todo 无 * @param string $long_url 长链接转短链接 * @return string|bool */ public static function get_shorturl($long_url) { }
10、更改行业信息
调用方法为\weixin\Weixin::save_industry(所属行业编码1, 所属行业编码2)
,该方法成功返回true
,失败返回微信msg。
/** * 更改行业信息 * @todo 无 * @param string $str_1 所属行业编码 * @param mixed $str_2 所属行业编码 * @return string|bool */ public static function save_industry($str_1=1, $str_2=2){ }
11、获得模板ID
调用方法为\weixin\Weixin::get_template(模板库中模板的编号)
,该方法成功返回模板ID,失败返回false
。
/** * 获得模板ID * @todo 无 * @param string $mid 模板库中模板的编号 * @return string|bool */ public static function get_template($mid) { }
12、发送消息模板
调用方法为\weixin\Weixin::send_msg(用户的微信ID, 模板ID, 点击跳转到的详情地址, 模板消息内容)
,该方法成功返回微信msgid
,失败返回false
。
/** * 发送消息模板 * @todo 无 * @param string $open_id 用户的微信ID * @param string $mid get_template()返回的模板ID * @param string $url 模板消息中,需要点击跳转到的详情地址 * @param json $data 模板消息内容,具体格式参考微信开发文档 * @return string|bool */ public static function send_msg($open_id, $mid, $url, $data){ }
13、生成网页登录授权链接
调用方法为\weixin\Weixin::wx_login(回调地址,附加自定义参数不能为空)
,该方法成功返回一个URL地址,用于重定向微信授权。
/** * 生成网页登录授权链接 * @todo 无 * @param string $url 授权后重定向的回调链接地址 * @param string $state 自己定义的参数,具体看微信开发手册 * @return string */ public static function wx_login($url, $state=1){ }
14、根据code去获取特殊access_token
调用方法为\weixin\Weixin::get_code_token(授权后返回的code参数默认自动获取)
,该方法成功返回一维数组,失败返回false
。
/** * 根据code去获取特殊access_token * @todo 无 * @param string $code 授权后返回的code参数 * @return array|bool */ public static function get_code_token($code=''){ }
15、根据凭据,更新特殊access_token
调用方法为\weixin\Weixin::save_code_token(更新凭据)
,该方法成功返回一维数组,失败返回false
。
/** * 根据凭据,更新特殊access_token * @todo 注意,在get_code_token()中并没有返回refresh_token参数,所以需要自行修改代码获取 * @param string $refresh_token 在get_code_token()中的更新凭据 * @return array|bool */ public static function save_code_token($refresh_token){ }
16、获取用户信息
调用方法为\weixin\Weixin::get_user(特殊access_token, 微信OpenID)
,该方法成功返回一维数组,失败返回false
。
/** * 获取用户信息 * @todo 无 * @param string $token 特殊access_token * @param string $open_id 用户的OpenId * @return array|bool 微信用户的基本信息 */ public static function get_user($token, $open_id){ }
17、完整的登录案例代码(控制器中的代码)
# 以下为控制器中的测试方法 public function test(){ # 生成跳转链接 - 使用生成的链接放到微信浏览器中跳转 dump(\weixin\Weixin::wx_login('http://tim.junphp.com/admin.php/common/test2')); } public function test2(){ # 获取token $token = \weixin\Weixin::get_code_token(); # 获取用户信息 dump(\weixin\Weixin::get_user($token['access_token'], $token['openid'])); }
18、获取用户列表
调用方法为\weixin\Weixin::get_user_list(第一个拉取的微信OpenID)
,该方法成功返回多维数组,失败返回false
。
/** * 获取用户列表 * @todo 无 * @param string $open_id 第一个拉取的OPENID,不填默认从头开始拉取 * @return array|bool */ public static function get_user_list($open_id=null) { }
19、设置用户的备注名
调用方法为\weixin\Weixin::save_remark(微信OpenID, 设置的备注名)
,该方法成功返回true
,失败返回false
。
/** * 设置用户的备注名 * @todo 无 * @param string $open_id 用户的OpenId * @param string $remark 设置的备注名 * @return bool */ public static function save_remark($open_id, $remark) { }
20、JSAPI支付
微信的JSAPI支付需要依赖3个接口,才能成功挑起,分别为:统一下单、生成JS支付参数、生成收货地址JS参数,具体的使用方法如下:
$order = \weixin\Weixin::jsapi( '我是商品描述', '我是附加信息', '100.15' ); dump($order); # 将这个给JS发起支付 $jsApiParameters = \weixin\Weixin::GetJsApiParameters($order); dump($jsApiParameters); # 获取共享收货地址js函数参数 $editAddress = \weixin\Weixin::GetEditAddressParameters(); dump($editAddress); # 注意如果提示url参数错误,请检查后台API参数设置,与微信支付平台域名、目录绑定等设置是否有错。 /** * 生成JSAPI需要的json参数 * @todo 无 * @param string $Body 商品描述 * @param string $attach 附加数据 * @param string $total_fee 商品金额,单位是:分 * @param string $trade_no 商品订单号,要具有唯一性,默认是时间戳 * @param string $goods_tag 商品代金券说明 * @return void JSAPI需要的参数 */ public static function jsapi($body, $attach, $total_fee, $trade_no=null, $goods_tag='no'){ # 注意如果$trade_no为空,则使用当前时间戳 }
21、二维码支付:模式一
调用方法为\weixin\Weixin::qrpay_1(商品ID)
,该方法成功返回一段二维码URL,失败弹出错误报告。注意:获得url后,要使用\weixin\Weixin::qrcode(支付URL)
生成二维码。
/** * 微信二维码支付:模式一 * @todo 注意:二维码要使用Weixin::qrcode()生成 * @param string $productId 商品ID * @return string 返回二维码链接 */ public static function qrpay_1($productId) { } # 案例如下: \weixin\Weixin::qrcode(\weixin\Weixin::qrpay_1("123456789"));
22、二维码支付:模式二
调用方法为\weixin\Weixin::qrpay_2(与JSAPI支付参数一致)
,该方法成功返回一段二维码URL,失败则返回false
。注意:获得url后,要使用\weixin\Weixin::qrcode(支付URL)
生成二维码。
/** * 微信二维码支付:模式二 * @todo 注意:二维码要使用Weixin::qrcode()生成 * @param string $Body 商品描述 * @param string $attach 附加数据 * @param string $total_fee 商品金额,单位是:分 * @param string $product_id 商品ID * @param string $trade_no 商品订单号,要具有唯一性,默认是时间戳 * @param string $goods_tag 商品代金券说明 * @return string|bool 返回二维码链接 */ public static function qrpay_2($body, $attach, $total_fee, $product_id, $trade_no=null, $goods_tag='no'){ } # 案例如下: \weixin\Weixin::qrcode(\weixin\Weixin::qrpay_2( '我是商品描述', '我是附加信息', '100.15', "123456789" ));
23、查询订单
调用方法为\weixin\Weixin::get_wx_order(微信系统订单号,商户自定义单号)
。
/** * 查询微信支付订单 * @todo 无 * @param string $transaction_id 微信系统订单号 * @param string $out_trade_no 商户自定义单号 * @return void 查询到的订单信息 */ public static function get_wx_order($transaction_id='', $out_trade_no=''){ } # 注意,由于微信支付过期了,该方法还没验证是否无错
24、申请退款
调用方法为\weixin\Weixin::out_wx_order(订单总金额, 退款金额, 微信系统订单号, 商户自定义单号)
。
/** * 微信支付订单申请退款 * @todo 退款金额不能大于订单总额,如果调用时出现CURL错误,请参考这个网址进行解决: http://blog.csdn.net/Hiking_Tsang/article/details/52667781 * @param string $total_fee 订单总金额 * @param string $refund_fee 退款金额 * @param string $transaction_id 微信系统订单号 二选一 优先 * @param string $out_trade_no 商户自定义单号 二选一 次级 * @return void 退款返回值 */ public function out_wx_order($total_fee, $refund_fee, $transaction_id='', $out_trade_no=''){ } # 注意,由于微信支付过期了,该方法还没验证是否无错
25、查询退款
调用方法为\weixin\Weixin::get_out_wx_order(微信退款单号, 微信系统订单号, 商户自定义单号, 商户退款单号)
。
/** * 微信支付订单退款查询 * @todo 四个参数只需要填写一个,其余为空即可 * @param string $refund_id 微信退款单号 一级 * @param string $transaction_id 微信系统订单号 二级 * @param string $out_trade_no 商户自定义单号 三级 * @param string $out_refund_no 商户退款单号 四级 * @return void 查询返回值 $data['result_code'] SUCCESS 申请成功 * 退款状态: $data['refund_status_$n'] $n一般为0 ,SUCCESS|FAIL|PROCESSING|CHANGE 退款成功|退款失败|退款处理中|转入代发 * CHANGE|转入代发 退款到银行发现用户的卡作废或者冻结了,导致原路退款银行卡失败,资金回流到商户的现金帐号,需要商户人工干预,通过线下或者财付通转账的方式进行退款。 */ public function get_out_wx_order($refund_id='', $transaction_id='', $out_trade_no='', $out_refund_no=''){ } # 注意,由于微信支付过期了,该方法还没验证是否无错
26、下载微信支付对账单
调用方法为\weixin\Weixin::download_order(对账单日期时间, 对账单类型)
。
/** * 下载微信支付对账单 * @todo 无 * @param string $time 对账单日期时间:精确到日 20170227 * @param string $type 对账单类型:ALL|SUCCESS|REFUND|REVOKED 所有订单|成功支付订单|退款订单|撤销订单 * @return array 一个三维数组,top是table的表题值,body是内容值 */ public function download_order($time, $type='ALL'){ } # 注意,由于微信支付过期了,该方法还没验证是否无错
11、微信浏览器检测域名屏蔽
调用\org\Iswx::run(域名)
进行屏蔽检测,未屏蔽返回true
,已被屏蔽返回false
。
12、免费快递查询
调用/kuaidi/Express::run(快递单号,中文快递公司)
进行快递查询。
注意1:不填快递公司时,将自动识别快递公司。
注意2:默认情况下,快递接口使用权限是关闭的,请到API参数管理中进行开启设置。
注意3:该方法返回的是一个多维数组或者false
,例如:
返回值为false
时,系统关闭了快递接口的使用权限。
code为 00
时,查询成功,快递流程在data中
code为 01
时,快递单号为空
code为 02
时,快递公司自动识别失败,单号可能已过期
code为 03
时,暂无该快递公司类型,或者查询失败
code为 04
时,快递接口调用出错,msg中是接口官方的提示内容
13、网站收录量查询
调用\org\Indexes::run(服务商编码,网址)
进行收录量查询。
注意1:当前API只支持3家服务商,编码为:baidu、360、sougou。
注意2:该方法返回的是个一维数组,例如:
code为 00
时,查询成功,收录量在data中
code为 01
时,查询类型为空
code为 02
时,查询网址为空
code为 03
时,暂无该查询类型
14、CMD工具命令扩展
我们需要在后台Cmd.php
控制器的run()
方法中先加入对应的指令分流处理,
然后再将对应的指令封装到/extend/cmd/
文件夹中,规范为一组指令为一个文件,该文件需要继承Common.php
基类。
self::json('02', '内容');
表示返回单条记录。
$data[] = '第一条';
$data[] = '第二条';
self::json('00', $data);
表示返回多条记录。
15、聚合登录接口
在使用聚合登录API前,请先到API参数管理中设置相关参数,再进行调用。
当前聚合登录暂只支持以下4种登录方式:
1、神牛教
2、百度
3、微博
4、github
登录跳转授权,使用
\oauth2\Oauth2::run('神牛教');
这样的调用方式,授权回调地址为统一监听,可以在API参数中设置。
在回调的统一地址中,我们需要以下代码监听获取到的第三方用户信息:
$data = \oauth2\Oauth2::monitor();
该方法若获取失败统一返回 false,否则返回用户信息,结构如下:
[ 'user_id' => '用户ID', 'name' => '用户名', 'nick' => '用户昵称', 'sex' => '性别 0 未知 1男 2女', 'portrait' => '头像地址', 'type' => '第三方类型', ]
第三方类型码有如下:
git 对应 github
snj 对应 神牛教
bd 对应 百度
wb 对应 微博
16、百度翻译接口
该接口主要以CURL爬虫实现,无需百度官方key支持,依赖\org\Fanyi::run(翻译内容, 目标语言)
方法支持。翻译失败返回false
,成功返回一个数组。具体使用案例如下:
// 翻译内容为一维数组 $array = [ '这是一条测试语句,', '这是第二条测试语。', ]; // 目标语言为中文字符串,类内部自动识别转换,你也可以自己输入百度的编码,例如zh、en $list = \org\Fanyi::run($array, '英语'); // 翻译结果是个多维数组,转换内容在dst字段中 foreach ($list as $v) { echo $v['dst']."
"; }
目标语言支持以下种类,为百度官方编码:
$Lang = [ 'zh' => '中文', 'jp' => '日语', 'jpka' => '日语假名', 'th' => '泰语', 'fra' => '法语', 'en' => '英语', 'spa' => '西班牙语', 'kor' => '韩语', 'tr' => '土耳其语', 'vie' => '越南语', 'ms' => '马来语', 'de' => '德语', 'ru' => '俄语', 'ir' => '伊朗语', 'ara' => '阿拉伯语', 'est' => '爱沙尼亚语', 'be' => '白俄罗斯语', 'bul' => '保加利亚语', 'hi' => '印地语', 'is' => '冰岛语', 'pl' => '波兰语', 'fa' => '波斯语', 'dan' => '丹麦语', 'tl' => '菲律宾语', 'fin' => '芬兰语', 'nl' => '荷兰语', 'ca' => '加泰罗尼亚语', 'cs' => '捷克语', 'hr' => '克罗地亚语', 'lv' => '拉脱维亚语', 'lt' => '立陶宛语', 'rom' => '罗马尼亚语', 'af' => '南非语', 'no' => '挪威语', 'pt_BR' => '巴西语', 'pt' => '葡萄牙语', 'swe' => '瑞典语', 'sr' => '塞尔维亚语', 'eo' => '世界语', 'sk' => '斯洛伐克语', 'slo' => '斯洛文尼亚语', 'sw' => '斯瓦希里语', 'uk' => '乌克兰语', 'iw' => '希伯来语', 'el' => '希腊语', 'hu' => '匈牙利语', 'hy' => '亚美尼亚语', 'it' => '意大利语', 'id' => '印尼语', 'sq' => '阿尔巴尼亚语', 'am' => '阿姆哈拉语', 'as' => '阿萨姆语', 'az' => '阿塞拜疆语', 'eu' => '巴斯克语', 'bn' => '孟加拉语', 'bs' => '波斯尼亚语', 'gl' => '加利西亚语', 'ka' => '格鲁吉亚语', 'gu' => '古吉拉特语', 'ha' => '豪萨语', 'ig' => '伊博语', 'iu' => '因纽特语', 'ga' => '爱尔兰语', 'zu' => '祖鲁语', 'kn' => '卡纳达语', 'kk' => '哈萨克语', 'ky' => '吉尔吉斯语', 'lb' => '卢森堡语', 'mk' => '马其顿语', 'mt' => '马耳他语', 'mi' => '毛利语', 'mr' => '马拉提语', 'ne' => '尼泊尔语', 'or' => '奥利亚语', 'pa' => '旁遮普语', 'qu' => '凯楚亚语', 'tn' => '塞茨瓦纳语', 'si' => '僧加罗语', 'ta' => '泰米尔语', 'tt' => '塔塔尔语', 'te' => '泰卢固语', 'ur' => '乌尔都语', 'uz' => '乌兹别克语', 'cy' => '威尔士语', 'yo' => '约鲁巴语', 'yue' => '粤语', 'wyw' => '文言文', 'cht' => '中文繁体' ];
17、手机归属地查询接口
该接口主要以CURL爬虫实现,依赖\org\Phone::run(手机号)
方法支持。查询失败返回false
,成功返回一维数组。具体使用案例如下:
# 使用DEMO $array = \org\Phone::run(15992431788); dump($array); 返回值说明如下: mts :手机号前7位数 province :归属地(省) catName : 运营商 carrier :归属地运营商 telString :手机号
18、居民身份证真实性查询接口
该接口主要以CURL爬虫实现,依赖\org\Idcard::run(身份证号)
方法支持。查询失败返回false
,成功返回一维数组。具体使用案例如下:
# 使用DEMO $array = \org\Idcard::run(身份证号码); dump($array); 返回值说明如下: card :身份证号码 province :归属地(省) city :归属地(市) area :归属地(区) date :出生日期(年月日) time :出生日期(时间戳) month : 生日(月) day : 生日(日) sex :性别
19、jun-密码表简单加解密
该接口主要以字符串替换 + 简单私钥,base加密的方式实现加解密。具体使用案例如下:
# 加密 $sign = \org\Encryption::run('xiaoniuniu', 123456); # 解密 $str = \org\Encryption::decrypt($sign, 123456); 参数说明如下: 参数1:加密前 或 加密后的字符串,必填 参数2:加解密私钥,选填
20、IP省市区地址查询
该接口主要以抓取第三方IP实现。具体使用案例如下:
# 根据IP查询对应的省市区归属地 $data = \org\Ipcity::run('IP地址'); 返回值为一维数组,查询失败返回false,说明如下: province :省名称,某位不带省 city :市名称,某位不带市 area :区名称,会存在获取不到 flow :服务供应商,例如电信、移动
21、文件压缩解压
该接口主要用于对指定文件或目录进行压缩打包,或者解压操作。 其核心参数主要有3个调用方法:
# 先实例化类,再调用以下三个方法之一 $obj = new \org\Zip(); /** * 创建压缩文件 * @todo 无 * @author 小黄牛 * @version v1.1.7 + 2019.03.29 * @deprecated 暂不弃用 * @global 无 * @param string $SavePath 压缩包保存到的路径 * @param string $Pack 需要打包的目录或文件 * @param string $SaveName 压缩包保存的文件名 默认为空,为空时则使用时间戳充当为文件名,禁止使用中文 * @param string $ZipType 压缩包保存的类型 默认为zip * @return bool */ public function save_zip($SavePath, $Pakc, $SaveName='', $ZipType='zip') {} /** * 解压文件到指定目录 * @todo 无 * @author 小黄牛 * @version v1.1.7 + 2019.03.29 * @deprecated 暂不弃用 * @global 无 * @param string $src_file zip压缩文件的路径 * @param string $dest_dir 解压文件的目的路径 * @param bool $overwrite 是否重写已经存在的文件 * @param bool $type 是否需要删除压缩包 * @return bool */ public function un_zip($src_file, $dest_dir='', $overwrite=true, $type=false) {} /** * 输出压缩包下载 * @todo 无 * @author 小黄牛 * @version v1.1.7 + 2019.03.29 * @deprecated 暂不弃用 * @global 无 * @param string $url 下载文件地址 * @return void */ public function dow_zip($url) {}
注意,该类在使用时,所填入的目录相关参数,都建议使用绝对路径,否则容易发生错误。
1、过滤敏感词
有效域:全局共用
介绍:主要关联后端的敏感词库,用于对字符串进行敏感词识别过滤。
详细介绍如下:
/** * 过滤敏感词 * @todo 无 * @author 小黄牛 * @version v1.2.1 + 2019.04.02 * @deprecated 暂不弃用 * @global 无 * @param string $str 需要被过滤的字符串 * @return array['code'=>'bool', 'msg'=>'包含的敏感词'] */ function vif_sensitive($str=null) { }
1、弹窗提示
$.thinkmimi({Content : '提示内容', Type:2, Align:'right', OutTime:2000}); 其中: Content :提示内容 Type :弹窗类型 1|2 正确|错误 Align :弹窗位置 right|center 右侧|居中 OutTime :弹窗自动关闭秒数
2、新窗口弹出页面
JunAMS是使用的layui前端框架,
弹出新窗口主要依赖于layui.open组件。
在弹窗出的页面中,需要新建一个doSubimt()
函数,用作返回值。
例如:我们在Index.html中利用如下代码,弹出Add.html页面:
layer.open({
type: 2,
title: '添加新管理员',
shadeClose: true,
shade: false,
maxmin: true,
area: ['100%', '100%'],
btn: ['确认', '取消'],
content: href,
yes: function(index, layero) {
var _this = layero.find('iframe')[0];
var bool = _this.contentWindow.doSubimt();
if (bool !== false) {
$.thinkmimi({Content : bool['msg'],Type : 1,Align:'right',OutTime:2000,});
menu_run();
layer.closeAll();
window.setTimeout(function(){
window.location.reload();
}, 700);
}
},
});
那么,我们在Add.html页面中就需要新建一个doSubimt()函数,用作返回值。
function doSubimt() {
var res;
var data = {};
$.ajax({
type: 'post',
data: data,
async: false,
url: "/login/add.html",
success: function(data) {
var array = eval('('+data+')');
res = array;
if (array['code'] == '01') {
$.thinkmimi({Content : array['msg'], Type:2, Align:'right', OutTime:2000});
res = false;
}
}
});
return res;
}
更新日程
1、2018-09-30 开发者:小黄牛
2、2018-10-09 开发者:小黄牛
3、2018-10-10 开发者:小黄牛
4、2018-10-12 开发者:小黄牛
5、2018-10-12 开发者:小黄牛
6、2018-10-16 开发者:小黄牛
7、2018-10-18 开发者:小黄牛
8、2018-11-23 开发者:小黄牛
9、2018-12-03 开发者:小黄牛
10、2018-12-21 开发者:小黄牛
11、2018-12-24 开发者:小黄牛
12、2019-03-15 开发者:小黄牛
13、2019-03-18 开发者:小黄牛
14、2019-03-22 开发者:小黄牛
15、2019-03-26 开发者:小黄牛
16、2019-03-28 开发者:小黄牛
17、2019-03-29 开发者:小黄牛
18、2019-04-01 开发者:小黄牛
19、2019-04-03 开发者:小黄牛、宣言、默许、水云霜
注意事项
为了兼容linux系统的日常写入修改删除操作,以下目录与文件均需要手动设置0777
权限,否则将报错。
/index.php 用于CMS模块切换项目绑定 /application/ 用于安装写入数据库配置文件,与创建项目模块 /runtime/ 用于日常thinkphp框架的缓存日志 /extend/weixin/access_token.json 用于记录微信的token /extend/weixin/ssl_path/apiclient_cert.pem 用于修改微信支付接口的证书 /extend/weixin/ssl_path/apiclient_key.pem 用于修改微信支付接口的证书 /public/cms/ 用于CMS模块的静态文件管理 /public/edit/ 用于保存后台上传文件 /public/txt/ 用于保存CMD模块与模型特殊模块的配置文件 /public/weixin_log/ 用于保存微信接口的日志文件 /public/install.sql JunAMS安装的数据库文件
文件以及目录说明
WEB部署目录 ├─index.php 前端PHP入口文件 ├─admin.php 后台PHP入口文件 ├─html 前端静态文件存放目录 ├─extend 第三方接口封装目录 │ ├─org 零散的第三方接口类文件存放目录 │ │ ├─Idcard.php 身份证真实性验证类 │ │ ├─Phone.php 手机归属地获取类 │ │ ├─Fanyi.php 百度翻译获取类 │ │ ├─Cpu.php 服务器信息获取类 │ │ ├─Indexes.php 网站收录量查询类 │ │ ├─Iswx.php 检测微信浏览器是否屏蔽域名类 │ │ ├─Bom.php BOM头检测清除类 │ │ ├─Fileroot.php Class注释生成文档类 │ │ ├─Encryption.php 简单加解密类 │ │ ├─Ipcity.php IP地址查询省市区类 │ │ ├─Zip.php 压缩解压类 │ │ └─Baksql.php 数据库操作类,用于后台拉取数据库表详情 │ ├─cmd CMD工具指令分流存放目录 │ ├─oauth2 第三方登录接口存放目录 │ │ ├─Oauth 基类分支处理目录 │ │ │ ├─Basics.php 基类接口 │ │ │ ├─Weibo.php 微博登录 │ │ │ ├─Github.php Github登录 │ │ │ ├─Shenniu.php 神牛教登录 │ │ │ └─Baidu.php 百度登录 │ │ └─Oauth2.php 聚合登录调用类 │ ├─kuaidi 快递查询类文件存放目录 │ │ ├─Kuaidi 快递查询类文件存放目录 │ │ │ ├─Kdcx.php kdcx.cn接口 │ │ │ └─Kd100.php 快递100接口 │ │ └─Express.php 快递查询调用类 │ ├─weixin 微信开发类文件存放目录 │ │ ├─ssl_path 微信支付证书存放目录 │ │ ├─lib 微信官方SDK存放目录(代码已经过二次修改,不支持直接覆盖升级) │ │ ├─Weixin 微信SDK局部静态配置文件存放目录 │ │ │ └─Wxconfig.php 所有微信相关API请求地址配置文件存放文件 │ │ ├─access_token.json 普通AccessToken缓存文件 │ │ └─Weixin.php 微信开发调用类 │ ├─sms 短信发送类文件存放目录 │ │ ├─Alidayu.php 阿里大鱼短信SDK封装 │ │ ├─Miaodi.php 秒嘀短信SDK封装 │ │ └─Sms.php 短信发送调用类 │ ├─qiniu 七牛云OSS类文件存放目录 │ │ ├─Qiniu 七牛云官方SDK(改动了命名空间) │ │ └─Qiniu.php 七牛云调用类 │ └─mail 邮件发送类文件存放目录 │ ├─mail Phpmailer第三方类目录 │ └─Email.php 邮件发送调用类 │ ├─public 静态文件存放地址 │ ├─admin 后台静态样式文件存放目录 │ ├─home 前端静态样式文件存放目录 │ ├─edit layui编辑器文件上传存放目录 │ ├─cms CMS模块静态文件存放目录 │ │ ├─decompose 项目导入时存放临时文件 │ │ ├─logo 存放项目logo │ │ ├─zip 存放项目导出压缩包 │ │ └─ready 项目导出时存放临时文件 │ │ ├─code 存放项目对应的PHP文件 │ │ ├─logo 存放项目logo文件 │ │ ├─static 存放项目对应的静态文件 │ │ ├─add.sql 存放项目相关的SQL数据 │ │ └─prefix.txt 存放项目导出时的数据库前缀 │ │ │ ├─weixin_log 微信API日志文件存放目录 │ ├─txt 文件配置文件存放目录 │ ├─install.php JunAMS安装文件 │ └─install.sql JunAMS安装数据库文件 │ └─application 后端程序应用目录 ├─database.php 数据库配置文件 ├─config.php 项目公共配置文件 ├─common.php 项目公共函数库 │ ├─common 中间件存放目录 │ ├─tag CMS自定义标签存放目录 │ │ └─Ams.php list标签 │ ├─controller 全站中间件存放位置 │ │ ├─Main.php 前端中间件 │ │ └─Backend.php 后台中间件 │ └─view 跳转模板文件 │ └─Tpl │ └─ip_end.html 检测到被封禁IP时候显示的404模板 │ ├─index 前端 │ ├─config.php 独立配置文件 │ ├─common.php 独立函数库 │ │ │ └─controller 接口控制器存放目录 │ └─admin 后台程序文件存放目录 ├─config.php 独立配置文件 ├─common.php 独立函数库 │ ├─controller 后台控制器存放目录 │ ├─Actionlog.php 管理员操作日志管理 │ ├─Article.php CMS模块 - 内容管理 │ ├─Cmd.php CMD工具 │ ├─Common.php 后台通用公共方法 │ ├─Codefile.php CMS模块 - 代码管理 │ ├─Column.php CMS模块 - 栏目管理 │ ├─Content.php CMS模块 - ILDM管理 │ ├─Database.php 数据库 - 服务器管理 │ ├─Deploy.php 全站API参数管理 │ ├─Docroot.php 文档管理 │ ├─Edition.php 版本管理 │ ├─Field.php CMS模块 - 字段管理 │ ├─Index.php 主页 │ ├─Item.php CMS模块 - 项目相关 │ ├─Job.php 岗位管理 │ ├─Login.php 登录 │ ├─Loginlog.php 管理登录日志管理 │ ├─Logtype.php 日志编码管理 │ ├─Manager.php 管理员管理 │ ├─Menu.php 权限菜单管理 │ ├─Model.php CMS模块 - 模型管理 │ ├─Notice.php 维护公告管理 │ ├─Region.php 地区管理 │ ├─Role.php 角色管理 │ ├─Security.php 安全管理 │ ├─Structure.php 部门管理 │ └─Weixin.php 微信开发内容管理 │ └─view 后台视图文件存放目录(参考控制器命名)