2

我正在尝试设置 3DSv2,目前处于测试环境中。

客户端 URL (cURL)

$paymentUrl = 'https://test.sagepay.com/gateway/service/vspdirect-register.vsp';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $paymentUrl);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 120);

$curlResponse = curl_exec($ch);
$response = generateResponseArray($curlResponse);
var_dump($response);

function generateResponseArray($response)
{
    $output = [];

    $tempArray = explode(chr(10), $response);
    foreach ($tempArray as $row) {
        list($key, $value) = explode('=', $row, 2);
        $output[$key] = trim($value);
    }

    return $output;
}

$postData的包括以下项目:

Apply3DSecure=1 // Force 3DS Challenge
CardNumber=4929000005559 // VERes = N

回复

array(15) {
  ["VPSProtocol"]=>
  string(4) "4.00"
  ["Status"]=>
  string(2) "OK"
  ["StatusDetail"]=>
  string(40) "0000 : The Authorisation was Successful."
  ["VPSTxId"]=>
  string(38) "{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}"
  ["SecurityKey"]=>
  string(10) "XXXXXXXXXX"
  ["TxAuthNo"]=>
  string(7) "XXXXXXX"
  ["AVSCV2"]=>
  string(24) "SECURITY CODE MATCH ONLY"
  ["AddressResult"]=>
  string(10) "NOTMATCHED"
  ["PostCodeResult"]=>
  string(10) "NOTMATCHED"
  ["CV2Result"]=>
  string(7) "MATCHED"
  ["3DSecureStatus"]=>
  string(2) "OK"
  ["CAVV"]=>
  string(28) "TnVqajA3TjdxTjhrRGFIMWROTzI="
  ["DeclineCode"]=>
  string(2) "00"
  ["ExpiryDate"]=>
  string(4) "0225"
  ["BankAuthCode"]=>
  string(6) "999777"
}

我现在的状态不应该恢复3DAUTH吗?我需要继续构建我们的 3D-Secure 系统,但此付款不应OK在此处显示状态。

我们在 Sage Pay 中设置了一条规则,要求对超过 500 英镑的付款进行 3D-Secure。这个是。

这是我正在处理的文档:直接集成和协议 4 指南

4

1 回答 1

3

在 Sagepay 测试环境中,您需要发送一个有效的测试卡号(我使用4462 0000 000 0003),并且最重要的是CardHolder设置为CHALLENGE.

如果您不这样做,交易仍将通过 3-D Secure,但它不会有任何摩擦(即用户不会看到任何 iframe 等)。您仍将获得无摩擦交易的责任转移。

另请注意,您可以使用该CardHolder字段来测试其他场景。这是一个完整的列表:

  • SUCCESSFUL- 模拟认证成功的无摩擦流程
  • NOTAUTH- 模拟身份验证不成功的无摩擦流程
  • CHALLENGE- 模拟质询流程,持卡人将被重定向到 ACS 以输入双因素身份验证。还将返回 CReq、VPSTxId、ACSURL 和 StatusDetail。重定向到 ACSURL 后,challenge在站点上输入正确的密码 (Text = ) 将模拟成功的身份验证,输入任何其他密码将模拟不成功的身份验证。
  • PROOFATTEMPT- 模拟持卡人试图验证自己,但过程没有完成。返回一个 CAVV,这被视为已成功验证。
  • NOTENROLLED- 模拟未注册 3D-Secure 方案的卡。
  • TECHNICALDIFFICULTIES- 模拟 3D-Secure 身份验证无法完成。没有进行身份验证。
  • STATUS201DS- 模拟回退到 3DSv1。您将收到 PAReq、MD、ACSURL 和 StatusDetail
  • ERROR- 模拟由于数据错误或参与检查的一方的服务不可用而无法执行 3D 身份验证的错误情况。
于 2019-09-03T11:06:51.360 回答