SagePay 返回的签名似乎是用大写的 VendorName 生成的

问题描述

我遇到了一个非常奇怪的问题,即 opayo (SagePay) 似乎在服务器集成设置中生成带有大写 vendorName 的 VPSSignature,因此当我使用小写 vendorName 对其执行 MD5 哈希时,它总是失败。如果我先将 vendorName 大写,我发现签名是匹配的,这似乎与官方指南中提到的内容相矛盾。

但是,它只发生在我正在调查的特定生产环境之一中,而且似乎只发生在最近几个月。此外,我无法在我拥有的其他环境中使用 TEST 模式 Opayo 重现这种行为。 Opayo 是否对特定环境和/或 MySagePay 帐户进行特殊处理?

我也读过这个帖子,但无济于事。 SagePay Server Integration Verify Signature。但是,我的环境是一个相当旧的环境,仍然使用协议版本 2.23。我不确定这个旧的协议版本是否会导致任何相关问题?

解决方法

我认为我的解决方案只是一种解决方法,但它适用于我的情况。我目前的解决方法是支持使用大写和小写 VendorName 生成的匹配 VPSSignature,因此匹配其中一个签名将成为系统的通行证。由于 Sagepay 已经接受了付款,因此此解决方法有效。 (虽然看起来不是很合适,而且可能有安全隐患,但多支持一个签名似乎还是可以的。)