我正在尝试使用omnipay为不受支持的支付网关创建自定义网关。但是,我很难为我的提供商的3D安全实现创建响应类。
我看过sagepay,但3D安全的响应似乎都在1 api请求中返回。
要完成3D安全付款,我需要执行以下操作:
每个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
答案 0 :(得分:2)
看起来全球虹膜的做法有所不同,因为它们要求您分别对初始费用提出3d安全请求。所以有三个步骤(请求3dsecure,验证3dsecure,付款)。
为了使事情与无所不在的做事方式保持一致,我将结合最后两步。因此,当您致电purchase()
时,请提出3ds-verifyenrolled
请求,并在请求成功时返回重定向响应。
然后,当客户从3dsecure返回时,在completePurchase()
方法中,首先验证3dsecure签名,然后如果签名/ 3dsecure成功,则向其服务器发出付款请求并返回响应。