使用 .online tld 的客户电子邮件被拒绝

Customer email using .online tld is being rejected

我正在使用 DotNetKit 1.2.6.5,SagePayIntegration.Validation() 拒绝使用新的 .online 域(例如:foo@bar.online)和

的客户电子邮件

CustomerEMail is invalid.

这是否已在 1.2.6.7 中修复或 SagePay.IntegrationKit.DotNet.dll 的源代码在某处可用以便我可以修复它?

SagePay 集成套件使用此正则表达式来验证电子邮件地址:

[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+(?:[a-zA-Z]{2,4})\b

不幸的是,它不允许超长 TLD。幸运的是,我有该工具包的源代码,我已将它添加到我的 GitHub 帐户(连同错误修复,这就是我必须首先获得它的原因,因为 SagePay 没有更新它)。你可以在这里找到它:

https://github.com/WiredUK/SagePay.IntegrationKit

您需要编辑的正则表达式是这个文件:

https://github.com/WiredUK/SagePay.IntegrationKit/blob/801f61cf965c391a98a025aa632949719084cef0/ApiRegex.cs

有关信息,您需要编辑 2,4 表达式的最后一部分(匹配 TLD 中的 2 到 4 个字符)以允许更多,例如 2,30.

编辑: 因为我可以,所以我 opened an issue and fixed it.

尽管可以访问源代码(非常感谢@DavidG),SagePay 支持已确认实际网关不支持所有这些新域 - 因此即使我修改了 DotNetKit,它仍会被网关拒绝。

SagePay 支持非常有帮助,但最终

"... email domain foo@bar.online is not yet supported on our gateway. We run development sprints continuously and although there are some domains we may not yet support, we look to in future, dependent on impact and demand..."