Skip to content

HashPay Gateway for WHMCS v1.0.1

Latest

Choose a tag to compare

@ZeroTwoDa ZeroTwoDa released this 31 Jul 04:10

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

安装与升级

  1. 下载 hashpay-whmcs9-v1.0.1.zip
  2. 解压并将 modules 目录合并上传到 WHMCS 根目录。
  3. 从 v1.0.0 升级时直接覆盖模块文件,不需要修改数据库。
  4. 保留现有 Merchant ID、RSA Private Key 和 API Base URL 配置。
  5. 确保日志目录可写:
chmod 775 modules/gateways/hashpay/logs

宝塔环境通常还需要:

chown -R www:www modules/gateways/hashpay/logs
chmod 775 modules/gateways/hashpay/logs

Debian/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