peachpayments/magento2-plugin

PeachPayments Hosted Magento 2模块,适用于新兴非洲市场的全方位支付解决方案。

安装数: 29,113

依赖关系: 1

建议者: 0

安全: 0

星级: 2

分支: 2

类型:magento2-module

1.3.6 2024-09-20 11:16 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.37.4(PHP 7.1 和 7.2 已弃用,请使用版本 1.0.7,这排除了GraphQL)

事件

有两个事件可供使用,以补充您的第三方跟踪。在订单成功时,您可以使用 peachpayments_order_succeed,在订单失败时使用 peachpayments_order_failed。这两个事件将有一个数据对象:result。请特别注意防止观察者中的重复。这些事件将在客户界面和webhook控制器上触发。

GraphQL

为了允许GraphQL流程,请使用核心magento的setPaymentMethodOnCartplaceOrder方法。

在返回一个成功的订单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
  }
}