影梭是目前大家都比较常用的一种加(dai)(li)软件,由于是开源的、因此用户非常的广泛

【久违的原创】WHMCS 整合影梭自动开通

借此开展业务的人也非常的多,如果影梭可以配合 WHMCS 整合的话岂不是非常方便?

答案是肯定的,很方便!其实网上流传有许多个版本的 ss for whmcs 的模块,但是免费的模块功能不太完整。

今天发一个功能稍微完整的(是的,真的只是多加了一个二维码而已 ...)

【久违的原创】WHMCS 整合影梭自动开通

目前已经实现的功能除了简单的列出服务器列表、加密方式、实时使用流量之外,还额外加了二维码。

下载地址:MODULE← 单击它下载,这是目前开放的第一个对外版本,版本号是 v1.0

下载解压之后目录是这样子的:

├── Server
│   ├── API
│   │   ├── config
│   │   ├── cron.php                 // 访问一次就清空所有已用的流量数据
│   │   ├── crontab.txt              // Cron Jobs,每月一次
│   │   ├── shadowsocksapi.php       // API 主文件,用来调用方法
│   │   └── shadowsocks.sql.gz       // 数据库
│   └── shadowsocks                  // ss manyuser 的后端
└── WHMCS
    └── modules
        └── servers
            └── shadowsocks          // 按照目录放到 WHMCS

这里分别包含了三个东西,一个是 API、一个是 SS 后端、还有一个是 WHMCS 模块(需要配合 API 使用)


API 安装方法

这里的 API 要和你准备用来给 ss manyuser 用的数据库是同一个服务器,否则就没意义了。

如果条件允许的话,其实和 WHMCS 装在同一个 VPS 最好。

1、把 API 目录下的 config 目录和 shadowsocksapi.php 放到公共目录,提供公网访问。

举个例子,如果你正在使用军哥的 lnmp 一键包,那么你就把这个目录和文件放到 /home/wwroot/default

2、新建一个数据库,并且导入 shadowsocks.sql.gz 到数据库,新建数据库账户时注意设置所有地址访问。

3、修改 config 目录下的 configuration.php,把刚刚新建的数据库账户密码填进去。

4、限制 UA 访问,这一步特别重要。

修改刚刚新建的这个站点的站点配置,如果是军哥的那么配置文件就在 /usr/local/nginx/conf/vhost

在合适的地方加入如下内容(例如 root  /home/wwwroot/xxx 的下面):

if ($http_user_agent != "hhhhhh"){
  return 444;
}

这里把上面的“hhhhhh”改为一段 HASH,尽可能的长,例如:

iY8nGkOFSUl6mtSjGwsJCfl1HYHgWof2DVxwO35gEdLyEG4O0J1Qh2XZgFbtZNiz

这里只是说例如,你自己想办法生成一段随机的字符就可以了。

* 为了安全,这里建议把 listen 80 也改为一个奇葩的端口。


SS 后端安装方法

这里用 CentOS 6 举例,不建议与 API 放在同个 VPS,其他的方法也差不多

1、把 shadowsocks 这个文件夹随便找个地方放,然后修改目录中 Config.py 里面的数据库信息

2、执行这个文件夹下的 install.sh 安装好 cymysql 和 m2crypto

3、执行 python server.py 就可以开始运行了,如果报错就检查一下数据库信息对不对


WHMCS 模块安装方法

关于 WHMCS 就不多介绍了,你连 WHMCS 都不知道是什么的话此文章的内容也可以忽略了

1、把模块按照目录放到 WHMCS,进入后台新建 server,IP 地址填写 API 主机的 IP

2、Access Hash 填入你刚刚那一段 HASH,账户、密码什么的留空就好了

3、新建产品,module 界面输入 API 主机的端口,如果你没有修改监听端口就输入 80,如下图

【久违的原创】WHMCS 整合影梭自动开通

这里需要注意的就是节点列表最后一个的右边不需要” | “这个符号。

4、如果想让客户可以定制购买时候的流量,可以新增一个配置选项,名字是“traffic|XXX”

【久违的原创】WHMCS 整合影梭自动开通

价格自己设置好,如果设置无误的话用户在下单的时候就可以定制流量了,如下:

【久违的原创】WHMCS 整合影梭自动开通

如果你一直到这一步都没出什么错的话,那么就可以自己下单试试可否自动开通啦,如果不行的话就自己检查 API 主机的 IP 对不对、端口对不对、HASH 对不对之类的问题。


后文

我上一次发作品源码是在 2012 年,那个软件叫做 TomasUS,是一个 U 盘启动安装器,如图:

【久违的原创】WHMCS 整合影梭自动开通

不是什么特别优秀的软件,但确实是我花了精力写的(虽然是因为闲的蛋疼),但在开源之后出现了一大堆仅仅是外观和布局不一样但是功能完完全全一模一样的源码。

这次发的源码,其实我是有所保留的,因为我们自己团队在用的是这个版本:

【久违的原创】WHMCS 整合影梭自动开通比此次放出的版本多了导出 gui-config.json 自动配置和一个一周流量图表、流量数据隔日缓存等等,如果接下来真的会有人转载我的这份源码的话、我希望可以保留我的名字,要求不多、仅仅是 Tomas 五个字母。

这个源码里面有两个地方是带有 gourdata 的连接的,在 clientarea.tpl

1、关于 layer.js,这是一个弹窗的 js,可以在 http://layer.layui.com 下载之后把地址换成你的

2、关于二维码生成的 API,你可以自己做 API、参考我昨天铺垫的文章:《PHP 生成二维码的方法与例子


预告

古尔数据自用的版本也将在第一个正式版开放源码(现在是 v0.2.3 Beta),

目前古尔自用的版本几乎是一天一个版本 ... 例如,昨天还是这样的:

【久违的原创】WHMCS 整合影梭自动开通各位先等着吧,我们确定自己做好了、做稳定了,就会放出啦。


小结

我似乎可以预言今晚看日志的时候,refer 全是来自 hostloc 的观众,hhhhhhh。

因为这是赶出来的,所以代码特别丑、错误也多,各位可以发我邮箱或留言我安排好一个个修复啊。

目前有120条回应
Comment
Trackback
Loading ....
  • 土豆 回应于2016/08/05 17:36 回复TA

    我按照教程设置了,一路上都没报过错,最后开通账号的时候也没有报错,但是数据库里却没有增加记录,登陆whmcs里看,端口,密码啥也没有

    • Tomas 回应于2016/08/05 17:39 回复TA

      API 和 WHMCS 连接不到导致的,在 SSH 里面自己 curl 一下 API 的地址看看

      • 土豆 回应于2016/08/05 17:47 回复TA

        @Tomas: 输出:curl: (52) Empty reply from server
        whmcs和api在同一台vps里

        • Tomas 回应于2016/08/05 17:48 回复TA

          加了 UA 限制但是 curl 的时候没有加 -A 参数吧

          • 土豆 回应于2016/08/06 11:26 回复TA

            博主,我搞定了,但是有一个问题,客户中心没有密码显示,只有端口显示

  • 谷子猫 回应于2016/07/29 22:29 回复TA

    感觉都差不多咯,然而开通时候提示无法连接数据库,,,在api里面配置文件数据库地址有两个位置,我用的远程数据库,应该怎么填?

    • Tomas 回应于2016/07/29 22:52 回复TA

      建议 API 和数据库放在同一个 VPS。

      API 配置数据库的是 config/configuration.php

      在另外一个文件夹的是 SS 后端。

  • 谷子猫 回应于2016/07/29 15:50 回复TA

    API那啊个不是很明白,API要放WHCMS同主机吗?然后MANYUSER连接到API的数据库?新手求教~

    • Tomas 回应于2016/07/29 15:55 回复TA

      API 可以和 WHMCS 分开,也可以合并在一个 VPS。

      过些天有空了更新一下这个源码,因为太多人不太理解 API 的做法所以下一个版本我打算去掉 API 了。

  • Kung 回应于2016/07/26 09:12 回复TA

    我在WHMCS6 上测试。WHMCS上Create显示成功。但是数据库并没有增加新用户的信息。且客户中心生成的二维码也无法解析。。

    • Tomas 回应于2016/07/27 23:41 回复TA

      是不是端口也没有显示出来?是的话说明 API 连接不了

      • Kung 回应于2016/07/28 11:52 回复TA

        @Tomas: 修改了一下之后现在报错:MySQL query failed. 我用的是MySQL 5.6

  • 英文网赚 回应于2016/07/18 11:13 回复TA

    博主求个loc邀请码

  • 不错的样子 回应于2016/07/15 13:57 回复TA

    不错啊

  • MR 回应于2016/07/14 20:11 回复TA

    模块似乎有个地方有问题哦……不知道是不是我理解问题啊。CreateAccount的函数里面if (!empty($params['configoptions']['traffic']))这里,难道不是customfields么……应该是客户自定义区域啊。学习中……

    • Tomas 回应于2016/07/14 20:48 回复TA

      产品设置里面的 Custom Fields 这里无法设置价格,我们要一个可以配置、但是由可以设置价格的,所以这里用 Configurable Options,也就是“可配置选项”。

      • MR 回应于2016/07/15 09:53 回复TA

        @Tomas: 哦,明白了,果然是大神哈,哈哈

  • SptrsCA 回应于2016/07/14 18:35 回复TA

    好哒,谢谢啦。反馈一个问题。就是,页面上有端口、已消耗流量、服务器信息、剩余流量、最后连接,就是没有密码信息。

  • 限制 回应于2016/06/14 20:11 回复TA

    4、限制 UA 访问,这一步没看懂,必须用军哥的lnmp包嘛?我用了 发现里面/usr/local/nginx/conf/vhost是空的。在/usr/local/nginx/conf/nginx.conf添加上以后 服务器IP就不能访问了,既然都说了 这一步很重要,为什么写的却不是让人很明白呢,可以配几张图嘛?

    • Tomas 回应于2016/06/16 11:41 回复TA

      这里并不是指一个位置,这里的意思是在你的站点配置加这个。

      这个就看你是如何新建站点的了,如果是用 lnmp.org 的一键包,那么新建了站点之后、站点配置就在 /usr/local/nginx/conf/vhost

      如果用的不是这个一键包或者说并没有新建站点的话这里就是空的。

  • ByteCat 回应于2016/06/10 18:40 回复TA

    博主大赞ヽ(゚∀゚)ノ支持开源,请问这个是不是也支持可以按流量和时长购买的方式呢?

    • Tomas 回应于2016/06/14 01:31 回复TA

      可以的,默认就是按流量购买,如果不设置 cron 的话可以变为按时间购买。这些计费方式都是 whmcs 自带的

      • SptrsCA 回应于2016/07/14 01:30 回复TA

        @Tomas:cron是在安装时候设置的那个PHP定时任务么?

        • Tomas 回应于2016/07/14 10:48 回复TA

          是的,如果不给 API 加 cron 的话他就不会月结清零了

          • SptrsCA 回应于2016/07/14 16:49 回复TA

            @Tomas: 嗯 如果就是包月时长那种应该加不加清零都无所谓吧。

            • Tomas 回应于2016/07/14 18:32 回复TA

              包月不限流量每月清零还是要加的,

              反正如果每月要清零流量,那就要加,不用就不加。

  • Agassi 回应于2016/06/10 15:22 回复TA

    围观

  • tutugreen 回应于2016/06/05 16:50 回复TA

    开通后客户中心产品页面没有任何信息呢,有显示模板。
    开通是成功的,数据库也有更新。

    翻了半天也没看出哪里有问题。。

    • Tomas 回应于2016/06/05 16:53 回复TA

      没有任何信息的意思是没有端口还是说除了端口之外、连节点信息都没有?

      • tutugreen 回应于2016/06/05 17:04 回复TA

        @Tomas: 是的,连节点信息都没有。。。

        • tutugreen 回应于2016/06/05 17:56 回复TA

          @tutugreen: 额,不知道是不是版本的原因=v=(WHMCS 5)。。
          clientarea.tpl存在,在加载客户中心产品信息页面的时候,shadowsocks.php貌似就被无视了,直接去读clientarea.tpl。
          如果clientarea.tpl不存在,才会去读shadowsocks_ClientArea($params)下的内容(result换成其他字符做的测试),然而不会引入模板(即使改过名的,也改过'tabOverviewReplacementTemplate')。

          现在一股脑吧clientarea.tpl的内容塞到php里了,显示成功了。

          • tutugreen 回应于2016/06/05 19:36 回复TA

            @tutugreen: 啊哈,都搞定啦,谢谢博主。
            话说生成二维码的部分,密码后面应该为"@",原代码里是":",有些客户端好像不能识别。
            详见:https://shadowsocks.org/en/config/quick-guide.html
            $ssqrcode = base64_encode($method.':'.$password.'@'.$ipaddr.':'.$query_data['port']);

            • Tomas 回应于2016/06/05 22:21 回复TA

              我的天,因为我当时本来是打算以 ".$xx." 这样的方式写变量的,但是想了一下、以 {$xx} 写就简洁的多了,结果赋值变量名然后忽略了 @

              • tutugreen 回应于2016/06/14 00:45 回复TA

                @Tomas: 哦天哪!我给客户开了72T的套餐2333。。。

                API的/config/function.php 第63行
                $traffic = $traffic * 1048576; //按照 GB 为流量单位

                之前已经在WHMCS模块里算好了MB形式的,结果这里变GB了!
                也就多开了1024倍流量!

                (这个插件,学习用wwww)

              • tutugreen 回应于2016/06/14 01:25 回复TA

                @tutugreen: d等等,这次好像我理解错了。。
                实际是返回的时候没有转回MB。。。
                (仅显示问题

                • Tomas 回应于2016/06/14 01:27 回复TA

                  hhhh ... 估计一些细节还是没处理好的,不过目前我们在做的内部版没有问题。

          • David 回应于2016/09/21 15:24 回复TA

            @tutugreen: 同样是whmcs 5版本的,无法显示,求教怎么“把clientarea.tpl的内容塞到php里了,显示成功了。”这个要怎么合并?放在哪个位置,我试了好多都不成功

  • wwng 回应于2016/06/02 03:49 回复TA

    我是wwng 怎么给我自动变成薯片了

    "本站使用的是 创智主机 推出的虚拟主机(多节点),若有需要可:在:此处 进行购买~"
    此处 打不开了

  • 薯片 回应于2016/05/31 12:23 回复TA

    楼主,完全按照你的步骤搭建了一下,能开通,但确实是没有端口号和密码,求解决方案。生成的二维码用电脑版的ss扫不出来,说是无法识别。

    • Tomas 回应于2016/05/31 19:05 回复TA

      如果没获取到端口和密码是无法生成正常的二维码的,看看 API 端的数据库有没有信息增加?试试进入账户产品的页面,然后按“create”,看看有没有提示错误。

      • 薯片 回应于2016/05/31 22:33 回复TA

        @Tomas: 重新调整了一下 配置好了 谢谢楼主!希望能在WHMCS的管理员界面中也加入流量统计的页面,这样让网站管理员更便捷。

        • Tomas 回应于2016/06/04 15:05 回复TA

          其实一开始是加了的,但是这样的话会导致管理用户产品的时候打开页面速度会比较慢,所以又去掉了 。。hhh ..

  • Andrew 回应于2016/05/29 20:20 回复TA

    围观

  • 本篇文章没有Trackback
你目前的身份是游客,请输入昵称和电邮!