基于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 标签中 ``` ``` 代码块中# 注释 识别异常目前切换为 --- 请注意查收
服务端部署: 下边跟着的是 md 起始标签 文章结束跟的是 md 结束标签,不过看起来 似乎没啥作用 是不是要 分段用 md 处理? 当前帖子对应服务端代码地址 ----- gitee:地址 https://gitee.com/qobn/sale-system.git gitee可以放,代码符合版规(禁止留联系方式、收费、侵权)就行 侃遍天下无二人 发表于 2024-7-5 23:12
gitee可以放,代码符合版规(禁止留联系方式、收费、侵权)就行
好的 ,这就把地址贴出来 md插入的代码需要在md编辑器里使用代码标记一下,直接贴是不可以的 苏紫方璇 发表于 2024-7-8 00:41
md插入的代码需要在md编辑器里使用代码标记一下,直接贴是不可以的
底下的代码 我尝试用md 在包裹一下 。其实已经包裹了一层了。{:1_907:} md 标签中 ``` ``` 代码块中# 注释 识别异常目前切换为 ---显示 nginx 配置需注意 :rggrg:rggrg:rggrg:rggrg:rggrg 没看到ANDROID监测什么 fjkek 发表于 2024-7-8 13:23
没看到ANDROID监测什么
android监控原理其实就是 到账通知