fengketrade/DEPLOY_README.md
2025-10-27 15:42:14 +08:00

96 lines
2.0 KiB
Markdown

# 快速部署说明
## 方式1: 一键自动部署 (推荐)
```bash
bash deploy_fix.sh
```
这个脚本会自动完成:
1. ✅ 检查本地代码
2. ✅ 上传诊断脚本
3. ✅ 运行服务器诊断
4. ✅ 上传修复文件
5. ✅ 重启PHP-FPM
6. ✅ 清除OPcache
7. ✅ 验证部署
**注意:** 需要输入服务器密码 `atBSGSu0$!T`
---
## 方式2: 手动步骤
### 1. 上传诊断脚本
```bash
scp server_diagnose.sh root@47.96.77.165:/www/wwwroot/fengketrade/
```
### 2. SSH登录服务器
```bash
ssh root@47.96.77.165
# 密码: atBSGSu0$!T
```
### 3. 运行诊断
```bash
cd /www/wwwroot/fengketrade
bash server_diagnose.sh
```
### 4. 上传修复文件(在本地新终端执行)
```bash
scp addons/shopro/library/ccblife/CcbPaymentService.php \
root@47.96.77.165:/www/wwwroot/fengketrade/addons/shopro/library/ccblife/
```
### 5. 重启PHP(在服务器上)
```bash
systemctl restart php-fpm
php -r "opcache_reset();"
```
---
## 验证部署
### 方法1: 监控日志
```bash
ssh root@47.96.77.165 \
'tail -f /www/wwwroot/fengketrade/runtime/log/$(date +%Y%m)/$(date +%d).log' \
| grep '最终支付串'
```
然后触发一次支付,观察输出:
-**正确**: `PROINFO=%u6F2B` (% 后直接是 u)
-**错误**: `PROINFO=%25u6F2B` (% 被编码成 %25)
### 方法2: 检查关键代码行
```bash
ssh root@47.96.77.165 \
'sed -n "279p" /www/wwwroot/fengketrade/addons/shopro/library/ccblife/CcbPaymentService.php'
```
应该输出: `$finalParts[] = $key . '=' . $value;`
不应包含: `urlencode`
---
## 详细文档
查看 `SERVER_FIX_GUIDE.md` 获取完整的操作指南和故障排查。
---
## 已修复的问题
1.**URL编码问题**: 移除了最终支付串的URL编码
2.**ENCPUB格式**: 转换为URL-safe BASE64 (+ → -, / → _)
3.**十六进制商户公钥**: 支持.env中的十六进制格式
---
## 预期结果
修复后,建行支付应该能成功拉起收银台,不再报"支付签名生成不成功"错误。