zhengduimen 发表于 2024-7-5 11:37

基于php+Android-实现个人支付收款系统

本帖最后由 zhengduimen 于 2024-7-8 09:53 编辑

个人收款
基于webman+workerman开发 搭配 Android 到账监控系统使用

前置说明 :
云服务器 宝塔均需开启 72728787 端口

说明:

自行购买服务器搭建网站并自行部署,商品自行添加,收款码自行添加;
所有购买操作金额直接到个人账户,其他任何人不参与收款;
个人手机收取金额后刷新服务器订单,
所涉及金额全程仅在自己服务器与自己手机账户之间流转,避免跑路风险;


售卡系统代码:代码太大了 不知道让不让发 代码gitee 地址 : 先不发,后边看。
首页展示:

后台展示:


到账监控效果:

服务端部署:


#### 禁用函数检查
>使用这个脚本检查是否有禁用函数。命令行运行curl -Ss https://www.workerman.net/check | php
如果有提示Function 函数名 may be disabled. Please check disable_functions in php.ini说明workerman依赖的函数被禁用,需要在php.ini中解除禁用才能正常使用workerman。
解除禁用参考如下两种方法任选其一即可。
##### 方式一
- 脚本解除
> 执行脚本 curl -Ss https://www.workerman.net/fix | php 以解除禁用
##### 方法二:手动解除
###### 步骤如下:
- 1、运行php --ini 找到php cli所使用的php.ini文件位置

- 2、打开php.ini,找到disable_functions一项解除对应函数的禁用
- - 依赖的函数 使用workerman需要解除以下函数的禁用
stream_socket_server
stream_socket_client
pcntl_signal_dispatch
pcntl_signal
pcntl_alarm
pcntl_fork
posix_getuid
posix_getpwuid
posix_kill
posix_setsid
posix_getpid
posix_getpwnam
posix_getgrnam
posix_getgid
posix_setgid
posix_initgroups
posix_setuid
posix_isatty

###### 部署
> 建议选择宝塔进行部署

- 1、环境
- 注意环境尽量保持一致   Nginx 1.24.0;php8.0.26 ; mysql 5.5.62
- 2、php禁用函数手动解除   
- 3、手动解除的话需要自行删除 ,自动删除的方式不一定能删除完整   
- 参考   方法二:手动解除
---


- Nginx 配置
- 完整配置
```
userwww www;
worker_processes auto;
error_log/www/wwwlogs/nginx_error.logcrit;
pid      /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;
   stream {
         log_format tcp_format '$time_local|$remote_addr|$protocol|$status|$bytes_sent|$bytes_received|$session_time|$upstream_addr|$upstream_bytes_sent|$upstream_bytes_received|$upstream_connect_time';
      access_log /www/wwwlogs/tcp-access.log tcp_format;
      error_log /www/wwwlogs/tcp-error.log;
      include /www/server/panel/vhost/nginx/tcp/*.conf;}
   events{
      use epoll;
      worker_connections 51200;
      multi_accept on;}
    http{
      include       mime.types;
                -----include luawaf.conf;
                include proxy.conf;
      lua_package_path "/www/server/nginx/lib/lua/?.lua;;";
      default_typeapplication/octet-stream;
      server_names_hash_bucket_size 512;
      client_header_buffer_size 32k;
      large_client_header_buffers 4 32k;
      client_max_body_size 50m;
      sendfile   on;
      tcp_nopush on;
      keepalive_timeout 60;
      tcp_nodelay on;
      fastcgi_connect_timeout 300;
      fastcgi_send_timeout 300;
      fastcgi_read_timeout 300;
      fastcgi_buffer_size 64k;
      fastcgi_buffers 4 64k;
      fastcgi_busy_buffers_size 128k;
      fastcgi_temp_file_write_size 256k;
      fastcgi_intercept_errors on;
      gzip on;
      gzip_min_length1k;
      gzip_buffers   4 16k;
      gzip_http_version 1.1;
      gzip_comp_level 2;
      gzip_types   text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/json image/jpeg image/gif image/png font/ttf font/otf image/svg+xml application/xml+rss text/x-js;
      gzip_vary on;
      gzip_proxied   expired no-cache no-store private auth;
      gzip_disable   "MSIE \.";
      limit_conn_zone $binary_remote_addr zone=perip:10m;
      limit_conn_zone $server_name zone=perserver:10m;
      server_tokens off;
      access_log off;
      upstream webman {
            server 127.0.0.1:8787;
            keepalive 10240;
      }
      upstream websocket_backend {
            server 127.0.0.1:7272;
      }
    server {
      listen 888;
      server_name phpmyadmin;
      index index.html index.htm index.php;
      root/www/server/phpmyadmin;
      location ~ /tmp/ {
            return 403;
      }
      -----error_page   404   /404.html;
      include enable-php.conf;
      location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
      {
            expires      30d;
      }
      location ~ .*\.(js|css)?$
      {
            expires      12h;
      }
      location ~ /\.
      {
            deny all;
      }
      access_log/www/wwwlogs/access.log;
    }
      map $http_upgrade $connection_upgrade {
            default upgrade;
            '' close;
      }
      server {
          listen 80;
          server_name 110.10.10.10;
----- 如果用ip的话 直接这样配置就行 ,如果使用域名 则 正常写入域名 其他不用做什么变动
          access_log off;
         ----root /www/wwwroot/SaleSystem;
      
          location ^~ / {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $http_host;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_http_version 1.1;
            proxy_set_header Connection "";
            if (!-f $request_filename){
                  proxy_pass http://webman;
            }
          }
         location /websocket {
                proxy_pass http://websocket_backend;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection $connection_upgrade;
            }

      }
    include /www/server/panel/vhost/nginx/*.conf;
}
```

###### 这里需要特别注意-支付结果回调靠这个完整-配置完成后自行测试几单验证结果
```
location /websocket {
                proxy_pass http://websocket_backend;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection $connection_upgrade;
            }
```

###### 上述操作完成后 如何启动项目
- 1、进入系统根目录 以我的目录为例:cd www/wwwroot/SaleSystem/
- 2、执行指令php start.php start -d   以守护方式启动 (当服务已经启动了,最好是先执行php start.php stop 停止之后再重新启动)
-----

服务端代码安装部署:

上传代码完成后 端口放行完毕,打开浏览器拿百度域名 距离 www.baidu.com/app/admin 进行安装按照要求输入 数据库账号密码 等 以及设置管理后台账号密码 ,完成安装;


###### 搭配收款监控到账 app
> 找一部用不到的手机,安装到账监控apk后,授予最高权限,其中通知栏,必须、系统常亮等权限最好也开启,然后插着电放那儿完事。(尽可能给与更高权限,该app仅仅涉及监控到账信息并与服务器交互,不涉及其他功能,请放心食用)
- 1、运行安装;
- 2、授权app打开通知栏等权限
- 3、手机自身设置屏幕常亮不息屏

这样当手机收到支付成功的到账消息时候 会进行相应处理;

然后就可以像街边摆摊小贩一样摆上自己的收款码 愉快的 玩耍了。

相关学习资料 不知道能不能发 链接-- 基于 webman 开发的大家搜一搜这框架就行 挺好用的。

   md 标签中 ```   ``` 代码块中# 注释 识别异常目前切换为 --- 请注意查收




zhengduimen 发表于 2024-7-8 09:03

服务端部署:    下边跟着的是 md 起始标签   文章结束跟的是 md 结束标签,不过看起来 似乎没啥作用 是不是要 分段用 md 处理?

zhengduimen 发表于 2024-7-6 11:18

当前帖子对应服务端代码地址       -----      gitee:地址   https://gitee.com/qobn/sale-system.git

侃遍天下无二人 发表于 2024-7-5 23:12

gitee可以放,代码符合版规(禁止留联系方式、收费、侵权)就行

zhengduimen 发表于 2024-7-6 11:16

侃遍天下无二人 发表于 2024-7-5 23:12
gitee可以放,代码符合版规(禁止留联系方式、收费、侵权)就行

好的 ,这就把地址贴出来

苏紫方璇 发表于 2024-7-8 00:41

md插入的代码需要在md编辑器里使用代码标记一下,直接贴是不可以的

zhengduimen 发表于 2024-7-8 09:00

苏紫方璇 发表于 2024-7-8 00:41
md插入的代码需要在md编辑器里使用代码标记一下,直接贴是不可以的

底下的代码 我尝试用md 在包裹一下 。其实已经包裹了一层了。{:1_907:}

zhengduimen 发表于 2024-7-8 09:47

md 标签中 ```   ``` 代码块中# 注释 识别异常目前切换为 ---显示 nginx 配置需注意 :rggrg:rggrg:rggrg:rggrg:rggrg

fjkek 发表于 2024-7-8 13:23

没看到ANDROID监测什么

zhengduimen 发表于 2024-7-8 15:34

fjkek 发表于 2024-7-8 13:23
没看到ANDROID监测什么

android监控原理其实就是 到账通知
页: [1] 2 3
查看完整版本: 基于php+Android-实现个人支付收款系统