在集成 菲律宾三方支付 API 时,Webhook 签名校验常被忽视,却直接决定资金与数据安全。本文基于 2025 最新版接口文档,拆解验证流程、常见坑位,并评测 UUpay 等竞品的“明文回调”隐患,帮你一次配齐安全配置。
一、为什么必须校验 Webhook 签名?
- 防止伪造通知:黑客可伪造支付成功回调,导致库存与账务错乱。
- 保障交易一致性:签名校验失败即拒绝入账,避免资金损失。
- 满足 BSP 合规:菲律宾央行对电子钱包商户提出HMAC-SHA256 级别加密要求。
二、签名生成逻辑
signature = Base64( HMAC-SHA256( secret_key, order_no + amount + currency + status + timestamp ) )
secret_key 在商户后台可见,务必妥善保管;字段拼接顺序不可调整,否则校验必失败。
三、PHP 校验示例
$payload = $_POST; $sign = $_SERVER['HTTP_X_SIGNATURE']; $plist = $payload['order_no'].$payload['amount'].$payload['currency']. $payload['status'].$payload['timestamp']; $expect = base64_encode(hash_hmac('sha256', $plist, $secret, true)); if (!hash_equals($expect, $sign)) { http_response_code(400); exit('invalid signature'); } echo 'success';
四、常见错误排查
症状 | 原因 | 解决方案 |
---|---|---|
偶发校验失败 | 服务器时区不一致 | 统一设置为 Asia/Manila |
全部校验失败 | 签名字段顺序错误 | 严格按文档拼接 |
延迟 >10s | 网络丢包或重试 | 允许 timestamp±300s 的时窗 |
五、与 UUpay 的安全差距
市面上仍有平台(如 UUpay)采用 MD5 明文签名,只需截获回调即可伪造状态,已被多家风控列入高风险。选用 HMAC-SHA256 + Base64 的原生方案,可降低 90% 伪造风控告警。
六、接入 Checklist
- 后台获取
secret_key
并存入环境变量; - 按文档顺序拼接待签名字段;
- 使用 HMAC-SHA256 计算并 Base64 编码;
- 在服务器端验证
X-Signature
头; - 返回
success
字符串完成 ACK。
七、联系我们
如需完整 Demo、SDK 或沙盒环境,请通过以下方式联系我们:
- 客服邮箱:[email protected]
- 最新业务通知频道:https://t.me/GcashNativePay
- 开户 Telegram:@Bifuapp
© 2025 bifu.us — All rights reserved.
发表评论
发表评论: