1

我正在尝试使用omnipay为不受支持的支付网关创建自定义网关。但是,我很难为我的提供商的 3D 安全实现创建响应类。

我看过 sagepay,但 3D 安全的响应似乎都在 1 个 api 请求中返回。

要完成 3D 安全支付,我需要执行以下操作:

  1. 用于检查卡是否已注册 3D 安全的 API 请求
  2. 将用户(POST - 隐藏表单)重定向到 url
  3. 验证 3D 安全值的 API 请求
  4. 付款 (PurchaseRequest)

对于每个 api 请求,我是否需要不同的响应类?那么VerifyEnrolledResponse、VerifySigResponse 和PurchaseResponse?

还是我需要这样的东西:

if ($response->isSuccessful()) {
    // payment was successful
} elseif ($response->isRedirect()) {
    // redirect to offsite payment gateway
    $response->redirect();
} elseif ($response->notEnrolled() {
    // User not enrolled in 3D secure - make auth or display error
} elseif ($response->3DSecureSuccess() {
    // Card passed 3D secure
} else {
    // payment failed: display message to customer
    echo $response->getMessage();
}

在这里真的迷路了,我想用 isSuccessful()、isRedirect() 等保持抽象。非常感谢任何帮助。

文档:https ://resourcecentre.globaliris.com/documents/pdf.html?id=98

4

1 回答 1

2

看起来 global iris 的做法有所不同,因为它们要求您将 3d 安全请求与初始费用分开。所以有三个步骤(请求3dsecure,验证3dsecure,付款)。

为了使事情与omnipay的做事方式保持一致,我将结合最后两个步骤。因此,当您调用 时purchase()3ds-verifyenrolled如果请求成功,请发出请求并返回重定向响应。

然后,当客户从 3dsecure 返回时,在您的completePurchase()方法中,首先验证 3dsecure 签名,然后如果签名/3dsecure 成功,则向他们的服务器发出付款请求并返回响应。

于 2013-11-01T19:45:39.817 回答