catharsisjelly / omnipay-worldpay-cg-hosted
为Omnipay支付处理库提供的WorldPay托管企业网关驱动程序
Requires
- php: ^7
- omnipay/common: ^3.0
Requires (Dev)
- omnipay/tests: ^3.0
- squizlabs/php_codesniffer: ^3.3
This package is auto-updated.
Last update: 2024-08-30 01:54:53 UTC
README
为Omnipay PHP支付处理库提供的WorldPay托管驱动程序
此项目是从 comicrelief/omnipay-worldpay-cg-hosted 分支出来的,该分支现在不再维护。 @catharsisjelly 曾表示愿意接管库并继续开发,但至今尚未成功。有关实施更改的更多信息,请参阅 变更日志
Omnipay 是一个与框架无关的多网关支付处理库,适用于PHP 7.1+。此软件包实现了Omnipay对WorldPay XML企业网关托管的支持。此实现遵循WorldPay提供的文档
安装
此库最好通过 Composer 安装,例如。
composer require catharsisjelly/omnipay-worldpay-cg-hosted
基本用法
此软件包提供以下网关
- WorldPay企业网关托管
有关一般用法说明,请参阅主要的 Omnipay 仓库。
订单描述
我们目前默认将订单描述设置为“商品”。
要设置另一个值,请使用 PurchaseRequest::setDescription()
。
通知设置
此库旨在能够为 isValid()
、isAuthorised()
、isPending()
和 isCancelled()
提供合理的答案,如果您在此屏幕上选择几乎每种可能类型
通常最好勾选所有可勾选的选项,以免错过您可能关心的通知。
然而,我们不得不 不勾选 SENT_FOR_AUTHORISATION,因为WorldPay的一个明显错误会导致在选中此选项时发送两个 AUTHORISED 通知,而不是发送额外的类型。
我们尚未收到Worldpay关于此是否会影响生产网关或是否将得到修复的确认,因此现在不启用此通知更安全。
通知验证
Worldpay建议您采取以下措施来接收通知并检查它们是否来自他们
- 使用服务器SSL - 这应该是任何支付应用程序的标准!
- 检查IP的反向DNS记录 - 这实际上并不非常安全,可以被欺骗,但在此库中作为第一道防线实现。在无法执行公共反向DNS查找的环境中,已知Worldpay子网有一个IP回退。
- 要求他们发送,并在您的服务器上验证他们的客户端TLS证书。
不幸的是,在此库中实现客户端TLS验证(第3点)没有简单的方法,并且对于我们的当前基础设施来说并不可行。一些工作通常位于您的Web服务器上,而不是在这个库中。
我们还考虑了额外的措施,即查询请求,但正如本文件所述,它们默认未启用,且也远非实时(大约5分钟延迟)。这意味着除非您将它们排队并接受更长的延迟,否则它们不适用于检查通知的有效性。
这意味着,目前您不应将在此库中显示为“有效”的通知视为绝对有效,也就是说,不要在没有后续检查的情况下根据此发货,使用查询请求或Worldpay UI,它提供匹配的结果。
如果您有任何想法或贡献认为可能会改善这种情况,我们将非常欢迎!
支持
如果您在使用Omnipay时遇到一般问题,我们建议在Stack Overflow上发布。确保添加omnipay标签,以便可以轻松找到。
如果您想了解发布公告、讨论项目想法或提出更详细的问题,还有一个邮件列表,您可以通过它订阅。
如果您认为您发现了bug,请使用问题跟踪器报告它,或者更好的是,分叉库并提交一个pull request。