mirror of
https://gitee.com/liuxioabin/fengketrade.git
synced 2026-04-17 21:03:17 +08:00
2.0 KiB
2.0 KiB
快速部署说明
方式1: 一键自动部署 (推荐)
bash deploy_fix.sh
这个脚本会自动完成:
- ✅ 检查本地代码
- ✅ 上传诊断脚本
- ✅ 运行服务器诊断
- ✅ 上传修复文件
- ✅ 重启PHP-FPM
- ✅ 清除OPcache
- ✅ 验证部署
注意: 需要输入服务器密码 atBSGSu0$!T
方式2: 手动步骤
1. 上传诊断脚本
scp server_diagnose.sh root@47.96.77.165:/www/wwwroot/fengketrade/
2. SSH登录服务器
ssh root@47.96.77.165
# 密码: atBSGSu0$!T
3. 运行诊断
cd /www/wwwroot/fengketrade
bash server_diagnose.sh
4. 上传修复文件(在本地新终端执行)
scp addons/shopro/library/ccblife/CcbPaymentService.php \
root@47.96.77.165:/www/wwwroot/fengketrade/addons/shopro/library/ccblife/
5. 重启PHP(在服务器上)
systemctl restart php-fpm
php -r "opcache_reset();"
验证部署
方法1: 监控日志
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: 检查关键代码行
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 获取完整的操作指南和故障排查。
已修复的问题
- ✅ URL编码问题: 移除了最终支付串的URL编码
- ✅ ENCPUB格式: 转换为URL-safe BASE64 (+ → -, / → _)
- ✅ 十六进制商户公钥: 支持.env中的十六进制格式
预期结果
修复后,建行支付应该能成功拉起收银台,不再报"支付签名生成不成功"错误。