peachpayments / magento2-plugin
PeachPayments Hosted Magento 2模块,适用于新兴非洲市场的全方位支付解决方案。
1.3.6
2024-09-20 11:16 UTC
Requires
- php: >=7.4 <=8.3
- ext-json: *
- ext-openssl: *
- magento/framework: >=103.0.5
- peachpayments/magento2-graphql-plugin: 1.0.*
This package is auto-updated.
Last update: 2024-09-20 11:19:48 UTC
README
适用于新兴非洲市场的全方位支付解决方案。
安装(Composer)
-
安装 Composer - Composer 下载说明
-
安装 PeachPayments Hosted模块
-
安装支付模块
$ composer require peachpayments/magento2-plugin
-
启用支付模块
$ php bin/magento module:enable PeachPayments_Hosted
$ php bin/magento setup:upgrade
-
部署Magento静态内容(如果需要执行)
$ php bin/magento setup:static-content:deploy
-
配置
- 登录到 管理面板 并转到
商店
->配置
->销售
->支付方式
- 如果支付模块面板
Peach Payments
未在可用的支付方式列表中显示,请转到系统
->缓存管理
并通过点击清除Magento缓存
清除Magento缓存 - 返回到
支付方式
并点击支付方式Peach Payments
下的配置
按钮,以展开可用的设置 - 将
启用
设置为是
,设置正确的凭据,选择您首选的设置,然后点击保存配置
PHP 兼容性
模块仅支持以下PHP版本:7.3
和 7.4
(PHP 7.1 和 7.2 已弃用,请使用版本 1.0.7,这排除了GraphQL)
事件
有两个事件可供使用,以补充您的第三方跟踪。在订单成功时,您可以使用 peachpayments_order_succeed
,在订单失败时使用 peachpayments_order_failed
。这两个事件将有一个数据对象:result
。请特别注意防止观察者中的重复。这些事件将在客户界面和webhook控制器上触发。
GraphQL
为了允许GraphQL流程,请使用核心magento的setPaymentMethodOnCart
和placeOrder
方法。
在返回一个成功的订单id后,使用方法getPeachHostedRedirectUrl
将客户重定向到结账页面(此时订单应为挂起状态)。从form_data
中解构json对象并将其作为POST参数提交到指定的form_link
URL。
在客户返回您指定的return_url
后,调用方法getPeachHostedOrderStatus
以获取成功(1)或拒绝(2)的状态,如果状态码为3,请间隔重试。
示例
# set peach as payment method mutation setPaymentMethodOnCart($cartId: String!){ setPaymentMethodOnCart(input: { cart_id: $cartId payment_method: { code: "peachpayments_hosted_card" } }) { cart { selected_payment_method { code } } } } # place order mutation placeOrder($cartId: String!) { placeOrder(input: {cart_id: $cartId}) { order { order_number } } } # Get redirect url and data query getPeachHostedRedirectUrl($cartId: String!){ getPeachHostedRedirectUrl(input: { cart_id: $cartId, return_url: "https://my.app.pwa/payment/welcome-back.html" }) { form_data form_link } } # Get staus query getPeachHostedOrderStatus($orderId: String!){ getPeachHostedOrderStatus(input: { order_id: $orderId }) { status } }