HashPay Gateway for WHMCS v1.0.1
这是一个可靠性与测试增强版本,重点补充支付失败路径、密钥轮换、重复通知和回调篡改测试。
更新内容
- 新增 24 项安全回归测试。
- 新增 PHP 8.2/8.3 GitHub Actions 自动检查。
- 新增 RSA-SHA256 请求签名和请求篡改测试。
- 新增 RSA-OAEP/AES-256-GCM 加密回调往返测试。
- 新增错误私钥、新密钥和旧密钥轮换测试。
- 新增密文、GCM 认证标签及算法标识篡改测试。
- 新增回调时间窗口、未来时间戳和非法时间戳测试。
- 新增金额、币种、订单状态、缺失字段及非法金额测试。
- 新增同发票重复通知和跨发票交易号冲突测试。
- 抽离统一支付准入校验,失败路径会在
addInvoicePayment()前终止。 - 增加完整测试矩阵、沙箱测试、密钥轮换及超时重试文档。
- 移除时间与发票 ID 校验对 PHP ctype 扩展的依赖。
测试结果
24 passed, 0 failed
本地运行:
php tests/run.php完整测试文档:
docs/TESTING.md
安装与升级
- 下载
hashpay-whmcs9-v1.0.1.zip。 - 解压并将
modules目录合并上传到 WHMCS 根目录。 - 从 v1.0.0 升级时直接覆盖模块文件,不需要修改数据库。
- 保留现有 Merchant ID、RSA Private Key 和 API Base URL 配置。
- 确保日志目录可写:
chmod 775 modules/gateways/hashpay/logs宝塔环境通常还需要:
chown -R www:www modules/gateways/hashpay/logs
chmod 775 modules/gateways/hashpay/logsDebian/Ubuntu 环境可能使用:
chown -R www-data:www-data modules/gateways/hashpay/logs
chmod 775 modules/gateways/hashpay/logs回调地址
https://你的WHMCS域名/modules/gateways/callback/hashpay.php
回调地址必须使用公网 HTTPS。
环境要求
- WHMCS 9.x
- PHP 8.2 或 PHP 8.3
- PHP OpenSSL 扩展
- PHP cURL 扩展
文件校验
Release 附件:
hashpay-whmcs9-v1.0.1.zip
SHA-256:
746f0fa95bbf4cfa607770a7ed856b47d56ca90f3d22d8b205b57f4de9fca623
校验命令:
sha256sum hashpay-whmcs9-v1.0.1.zip预期结果:
746f0fa95bbf4cfa607770a7ed856b47d56ca90f3d22d8b205b57f4de9fca623 hashpay-whmcs9-v1.0.1.zip
注意事项
- 建议先在测试环境执行一次成功支付、一次重复通知和一次失败路径测试。
- 密钥轮换前应处理旧订单或确认没有待重试通知。
- 不要将商户 RSA 私钥提交到 GitHub、Issue 或公开日志。
- 完整安装、测试矩阵与排错方式请查看 README 和
docs/TESTING.md。