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 许可证 下发布。