Workerman + laravel8 + vue-element-admin 撸了一个内网穿透应用

借着learnku的文档,把之前开源的 EZANT 重构了一遍。

Gitee仓库
注册体验内网穿透,送体验流量 100Mbps 不限速 【已试运行一年,无法支持维护服务,已停止运营!!!】
EZNAT内网穿透QQ交流群 946192373

使用到的技术如下

  • redis (内存缓存)
  • laravel-echo-server (SocketIO 服务端)
  • suprevisor (进程监控)
  • laravel 8 (框架)
  • laravel Event 事件系统
  • laravel Notify 通知系统
  • laravel Broadcast 广播
  • laravel Email 邮件
  • Sanctum 官方API认证扩展
  • predis PHP写的redis扩展
  • knuckleswtf/scribe 接口文档生成扩展
  • barryvdh/laravel-ide-helper laravel代码提示扩展
  • 微信免签支付回调

    话不多说,直接上图

    注:线上运营版本和开源版本核心相同。只不过是增加了一些业务逻辑,如流量充值。

    主页
    登录页
    注册页

    客户端使用手册

    充值记录
    客户端端口映射网站映射用户管理
本作品采用《CC 协议》,转载必须注明作者和本文链接
九九一十八,一步一个脚印
本帖由系统于 10个月前 自动加精
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 12

超过 30s 支付不退,这谁敢支付 :joy:

10个月前 评论
shrewd_lion 8个月前

@生活无限好 感谢同僚的建议,因为采用了微信免签支付,为了保证每个人充值都能正常回调。所以同一金额同一时间只能有一个人充值。才不会导致不知道是谁充值而产生的回调。系统倒计时 30s,实际上我是用了一分钟的时间限制,来最大限度的保证每个人充值都能正确到账。其实如果真的充值失败了,在群里面反映,是会退款或者手动加流量上去的。 :grin: :grin: :grin:**文案已经修改,再次感谢建议

10个月前 评论

大佬,微信免签支付回调,是自己搞的,还是用的三方的那、好奇这个怎么弄。

10个月前 评论
九九一十八 (楼主) 10个月前
九九一十八 (楼主) 10个月前
jamesZhao 10个月前
iwzh 10个月前
九九一十八 (楼主) 10个月前
iwzh 10个月前
Yzzzzz 9个月前

话不多说,show me code

这是我充值流量的 pay callback 代码

Route::any("/wechat/pay/callback", function (Request $request, PurchaseHistory $purchaseHistory){
    $desp = request('desp');
    $key = "xxxxxxx自己定义一个keyxxxxxx,验证请求合法性,千万不要把这个key让别人知道呀";
    if (request('key') !=  $key) {
        die("非法请求");
    }
    preg_match("/(款).*(?=元)/", $desp, $match);
    if (empty($match[0])) {
        die('非法请求');
    } else {
        $money = str_replace("款", '', $match[0]);
    }
    DB::transaction(function () use ($money, $purchaseHistory){
        $purchase = $purchaseHistory
            ->whereMoney($money)->wherePayStatus(0)->latest()->first();
        if (!empty($purchase)) {
            $purchase->pay_status = 1;
            $purchase->save();
            $flow = $purchaseHistory->getFlowByMoney($money);
            $rechargeUser = User::findOrFail($purchase->user_id);
            $rechargeUser->extra->increment('residual_flow', $flow);
            \App\Events\PayCallbackEvent::dispatch($rechargeUser, $money, $flow / 1024 / 1024);
        }
    });
});
10个月前 评论
SevenMonths 10个月前
adays

哇哦。大手笔。学习

10个月前 评论

切换语言时,“注册”两字不变

10个月前 评论
九九一十八 (楼主) 10个月前
mengdodo

银手镯了解下

10个月前 评论

准备瞻仰一下 可是git和文字内容不太对应呀~~ :see_no_evil:

10个月前 评论
九九一十八 (楼主) 10个月前

你这注册也太麻烦了注册10分钟注册不进去

9个月前 评论
九九一十八 (楼主) 9个月前
laogou (作者) 9个月前
九九一十八 (楼主) 9个月前

不清楚哦反正我注册不成功我对这个都没兴趣了

9个月前 评论

mark一下,码云的仓库不是laravel8重构的吗?

9个月前 评论
九九一十八 (楼主) 9个月前

求登录的背景图~ :stuck_out_tongue_winking_eye:

8个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!