comicrelief / omnipay-worldpay-cg-hosted
用于 Omnipay 支付处理库的 WorldPay 托管企业网关驱动程序
Requires
- php: ^5.6|^7
- omnipay/common: ~2.5
Requires (Dev)
- omnipay/tests: ~2.0
README
WorldPay 托管驱动程序,用于 Omnipay PHP 支付处理库
Omnipay 是一个与框架无关、多网关的 PHP 5.6+ 支付处理库。此包实现了 Omnipay 的 WorldPay XML 企业网关托管支持。
安装
Omnipay 通过 Composer 安装。首先,请确保您已安装 composer,通过访问 https://getcomposer.org.cn/download/ 并按照说明进行。
然后,通过 composer 需求安装此包
$ php composer.phar require comicrelief/omnipay-worldpay-cg-hosted
基本用法
此包提供了以下网关
- WorldPay 企业网关托管
有关一般使用说明,请参阅主 Omnipay 存储库。
订单描述
我们目前默认将订单描述设置为 "商品"。
要设置另一个,请使用 PurchaseRequest::setDescription()
。
通知设置
此库旨在能够给出合理的答案,对于此屏幕上几乎每个可能类型的选择,如果选择 isValid()
、isAuthorised()
、isPending()
和 isCancelled()
。
通常最好勾选所有可以勾选的项目,以免错过您可能关心的通知。
然而,由于存在明显的 Worldpay 错误,当选择此选项时,它会发送两个 AUTHORISED 通知而不是发送附加类型,所以我们不得不 不勾选 SENT_FOR_AUTHORISATION。
我们尚未收到 Worldpay 的确认,是否这会影响生产网关或是否将得到修复,因此现在暂时禁用此通知更为安全。
通知验证
Worldpay 建议以下内容以接收通知并检查它们是否来自他们
- 使用服务器 SSL - 这应该是任何支付应用程序的标准!
- 检查 IP 的反向 DNS 记录 - 实际上这并不非常安全,并且可以被欺骗,但在此库中被实现为第一道防线。在您的环境无法进行公开反向 DNS 查询的情况下,有一个已知的 Worldpay 子网 IP 降级。
- 请求他们发送,并在您的服务器上验证其客户端 TLS 证书。
不幸的是,在此库中实现客户端 TLS 验证(第 3 点)没有简单的方法,并且对于我们的应用程序当前的基础设施来说并不可行。其中一些工作通常会在您的 Web 服务器上完成,而不是在此库中。
我们还考虑了另一项措施,即查询请求,但正如本文件所述,它们默认并未启用,而且也远非实时(约5分钟延迟)。这意味着除非您将它们排队并接受更长的延迟,否则它们不适用于检查通知的有效性。
这意味着,目前您不应将在此库中显示为“有效”的通知视为保证有效,即不要根据此进行发货,除非稍后进行核对,使用查询请求或Worldpay UI进行核对,后者会提供匹配的结果。
如果您有任何想法或贡献,认为可能改善这种情况,将非常受欢迎!
支持
如果您在使用Omnipay时遇到一般问题,我们建议在Stack Overflow上发帖。请务必添加omnipay标签,以便轻松找到。
如果您想了解最新发布公告、讨论项目的想法或提出更详细的问题,还可以订阅邮件列表。
如果您认为您已经发现了一个错误,请使用问题跟踪器报告,或者更好的是,分支库并提交一个拉取请求。