itinerisltd / gf-sagepay
Gravity Forms SagePay 扩展插件
Requires
- php: ^8.1
- ext-curl: *
- league/omnipay: ^3.2
- omnipay/sagepay: ^4.1
Requires (Dev)
- itinerisltd/itineris-wp-coding-standards: ^0.4.0
- roave/security-advisories: dev-master
- 0.12.0
- 0.11.0
- dev-master / 0.10.x-dev
- 0.10.10
- 0.10.9
- 0.10.8
- 0.10.7
- 0.10.6
- 0.10.5
- 0.10.4
- 0.10.3
- 0.10.2
- 0.10.1
- 0.10.0
- 0.9.6
- 0.9.5
- 0.9.4
- 0.9.3
- 0.9.2
- 0.9.1
- 0.9.0
- 0.8.0
- 0.7.0
- 0.6.0
- 0.5.3
- 0.5.2
- 0.5.1
- 0.5.0
- 0.4.1
- 0.4.0
- 0.3.0
- 0.2.0
- 0.1.1
- 0.1.0
- dev-dependabot/composer/itinerisltd/itineris-wp-coding-standards-1.0.0
- dev-dependabot/composer/guzzlehttp/psr7-2.6.2
- dev-dependabot/composer/omnipay/sagepay-4.1.2
- dev-codepuncher-patch-1
This package is auto-updated.
Last update: 2024-09-17 11:52:59 UTC
README
SagePay 支付网关插件用于 GravityForms。
目标
允许 Gravity Forms 通过 SagePay 服务器 接受 SagePay 一次性付款。
功能
- SagePay 服务器
- 礼物援助
- 3D Secure
- AVS/CV2
- Gravity Forms 记录
- Gravity Forms 通知事件
- Gravity Forms 确认
- Gravity Forms 条件逻辑
不支持/未实现
尽管这些功能不支持此插件,但您可能可以通过 MySagePay 来实现
- 卡参考
- 令牌账单
- 延迟付款
- 周期性付款
- 作废
- 退款
- 中止
- 购物车
- 附加费
- 账户类型 M - 用于电话 (MOTO) 交易
- 账户类型 C - 用于重复交易
拉取请求 欢迎提交。
最低要求
- PHP v7.2
- PHP cURL 扩展
- WordPress v4.9.5
- Gravity Forms v2.4.14.4
安装
Composer (推荐)
composer require itinerisltd/gf-sagepay
从源码构建 (不推荐)
# Make sure you use the same PHP version as remote servers. # Building inside docker images is recommanded. php -v # Checkout source code git clone https://github.com/ItinerisLtd/gf-sagepay.git cd gf-sagepay git checkout <the-tag-or-the-branch-or-the-commit> # Build the zip file composer release:build
然后,像往常一样安装 release/gf-sagepay.zip
。
最佳实践
始终使用 HTTPS
尽管 SagePay 接受不安全的 HTTP 网站,但您应该 始终使用 HTTPS 来保护所有通信。
支付状态
始终在 MySagePay 上双重检查支付状态。
欺诈保护
为了防止退款,在可能的情况下强制执行 3D Secure 和 AVS/CV2 规则。
测试沙盒
在上线前,始终在测试沙盒中测试插件和您的欺诈保护规则。
如果您无法将测试服务器 IP 白名单化,请使用 protxross
作为 供应商代码
。
使用 ngrok 使本地通知 URL 公开可访问。
使用 测试信用卡。
常见问题
缺少礼物援助接受框
只有注册的慈善机构才能通过 Sage Pay 平台使用 礼物援助。只有当您的供应商账户已启用礼物援助并使用 捐赠 作为交易类型时,礼物援助接受框才会显示。
在表单设置中缺少 GF SagePay
邮寄地址
OmniPay需要账单地址和发货地址。
用例:不交付任何实物商品
将发货地址字段映射到账单字段。
用例:允许邮寄到账单地址
这与WooCommerce的方法类似。
使用Gravity Forms的内置功能:显示选项以使用不同字段提交的值
常见问题解答
您会添加对旧 PHP 版本的支持吗?
绝不!此插件仅适用于活跃支持的PHP版本。
不要在已停用或仅提供安全修复的PHP版本上使用。
这看起来很棒。我可以在哪里找到更多类似的好东西?
- 关于Itineris博客的文章
- 在Itineris的GitHub个人资料上的更多项目
- 在Itineris和TangRufus wp.org个人资料上更多插件
- 关注@itineris_ltd和@TangRufus在Twitter上
- 雇佣Itineris来构建您下一个令人惊叹的网站
我可以在哪里给出 ⭐⭐⭐⭐⭐ 评价?
谢谢!很高兴你喜欢它。让我的老板知道有人在使用这个项目很重要。请考虑
- 在wordpress.org上留下5星级评论
- 发一条提到@itineris_ltd和@TangRufus的推文
- ⭐星标这个Github存储库
- 👀关注这个Github存储库
- 写博客文章
- 提交pull请求
- 雇佣Itineris
开发中
公共 API
构建继续确认的 URL
ConfirmationHandler::buildUrlFor(Entry $entry, int $ttlInSeconds = 3600): string
用法
$entryId = 123; $rawEntry = GFAPI::get_entry($entryId); if (is_wp_error($rawEntry)) { wp_die('Entry not found'); } $url = ConfirmationHandler::buildUrlFor( new Entry($rawEntry), 86400 // expires in 24 hours (24*3600=86400) ); echo $url; // https://example.com?entry=123&gf-sagepay-token=XXXXXXXXXXXX
- 用户填写表单A
- 用户完成SagePay结账表单
- 用户返回并点击
CallbackHandler
CallbackHandler
根据确认设置将用户发送到表单B- 用户以合并的查询字符串到达表单B的URL
如果用户在完成表单B之前退出,您可以使用ConfirmationHandler::buildUrlFor
为用户生成一个单次使用、短暂有效的URL以继续表单B。
注意
- 该URL继续Gravity Forms的确认
- 获得该URL的人将继续进行确认,不执行身份验证
- 确认将使用数据库中最新字段值,这些值可能已更改
- 不检查支付状态
处理重定向 URL 获取失败
在表单提交后,此插件将订单信息发送到SagePay,以换取一个重定向URL(SagePay托管结账表单的URL)。
默认情况下,当重定向URL检索失败时
- 将条目支付状态标记为
失败
- 日志错误
wp_die
立即
常见失败原因
- 错误的供应商代码
- 服务器IP未列入白名单
提示:检查日志。
您可以使用'gf_sagepay_redirect_url_failure_wp_die'
过滤器来
- 继续Gravity Forms的feed和确认流程
- 执行额外操作
- 重定向到不同的错误页面
重要: 如果此过滤器返回 false
,则正常 Gravity Forms' 数据源和确认流程将继续。不正确的设置可能会导致灾难。
示例
add_filter('gf_sagepay_redirect_url_failure_wp_die', function(bool $shouldWpDie, ServerAuthorizeResponse $response, Entry $entry, GFPaymentAddOn $addOn): bool { // Do something. return true; // Do `wp_die` return false; // Don't `wp_die`, continue normal flow return $shouldWpDie; // Undecisive }, 10, 4);
必读清单
在开发之前阅读以下内容
- SagePay 服务器:了解流程
- SagePay 服务器集成套件、协议和文档
- Gravity Forms:GFPaymentAddOn
- Gravity Forms:条目对象
- Omnipay:Sage Pay
- thephpleague/omnipay-sagepay#45(评论)
- thephpleague/omnipay-sagepay#255(评论)
Gravity Forms
Gravity Forms 有未记录的隐藏魔法,请阅读其源代码。
测试
composer style:check
不接受不带测试的拉取请求!
反馈
请提供反馈! 我们希望尽可能让这个库在更多项目中发挥作用。请提交一个 问题 并指出你喜欢和不喜欢的地方,或者分叉项目并提出建议。 没有问题太小。
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
安全
如果您发现任何安全相关的问题,请通过电子邮件 dev@itineris.co.uk 而不是使用问题跟踪器。
致谢
GF SagePay 是由 Itineris Limited 创建的 Tang Rufus 的项目。
完整的贡献者列表可以在 这里 找到。
许可
GF SagePay 在 MIT 许可证 下发布。