ADYEN 付款 - SOAP 测试时出错 肥皂错误对象 ( [消息:受保护] => 安全性 010 不允许


ADYEN Payment - SOAP Error on test SoapFault Object ( [message:protected] => security 010 Not allowed

这是我在这个论坛上的第一篇文章。我正在尝试使用 WS 开发所有对 Adyen 的付款,而不是我迄今为止使用的皮肤/发布方法。所以,我从他们的示例中下载了这段代码(我也发布了通过 WS 连接的类方法)

function Adyen($login, $password, $host ="live", $debug=FALSE ) {
    $this->DEBUG = $debug;
    $this->client = new SoapClient( "https://pal-$host.adyen.com/pal/Payment.wsdl",
      array(
        "login" => $login,
        "password" => $password,
        'trace' => 1,
        'soap_version' => SOAP_1_1,
        'style' => SOAP_DOCUMENT,
        'encoding' => SOAP_LITERAL
      )
    );
}

function authorise( $amount,$currencyCode,$cardHolder,$cardNumber,$expm,$expy,$cvc,$reference) {
        global $merchantAccount;
    $response = $this->client->authorise( array(
      "paymentRequest" => array 
      (
        "amount" => array (
        "value" => $amount,
        "currency" => $currencyCode),
        "card" => array (
        "cvc" => $cvc,
        "expiryMonth" => $expm,
        "expiryYear" => $expy,
        "holderName" => $cardHolder,
        "number" => $cardNumber,
        ),
      "merchantAccount" => $merchantAccount,
      "reference" => $reference,
    )
      )
    );

当我执行此代码时,它返回此错误

#!/usr/bin/php SOAP Error on test SoapFault Object ( [message:protected] => security 010 Not allowed [string:Exception:private] => 

你有什么建议来解决吗?

此致敬意。

编辑:这太奇怪了,因为使用相同的方法,但具有不同的参数(如果是定期付款,我没有此错误。这个案例运行

$response = $this->client->authorise(
                array(
                    "paymentRequest" =>
                    array(
                        "amount" => array("value" => $amount, 
                                          "currency" => $currencyCode),
                        "merchantAccount" => $merchantAccount,
                        "reference" => $reference,
                        "shopperReference" => $reference",
                        "shopperEmail" => $email,
                        "recurring" => array("contract" => "RECURRING"),
                        "selectedRecurringDetailReference" => "LATEST",
                        "shopperInteraction" => "ContAuth"
                    )
                )
        );

有同样的问题,这是支持答案:

您正在尝试进行 API 付款。请注意,使用直接集成 API 有一些缺点。

最重要的是,由于严格的行业法规,商家必须符合 PCI DSS(支付卡行业数据安全标准)的 1 级或 2 级。PCI DSS认证过程需要您在时间和金钱上做出巨大贡献。

http://en.wikipedia.org/wiki/PCI_DSS

直接集成还提供一组有限的付款方式,并且可能需要您实现 3D 安全机制等功能。

正常集成的工作原理如下:

  1. 将购物者从您的网站重定向到我们的托管付款页面。
  2. 购物者可以选择多种付款方式并进行付款。
  3. 购物者被重定向回您的网站,我们会发回付款的结果代码。
  4. 我们还通过SOAP或HTTP Post发送了通知。

来自 Adyen 文档

010 不允许 不允许执行此操作

我认为您应该向他们的支持发送电子邮件。可能是您的帐户尚未准备好使用。

您需要

在用户"编辑允许的用户 IP 范围"的 ca 管理区域中添加您的 ip。

我认为在这段代码中你错误地输入了额外的双引号("shopperReference" => $reference",)。

$response = $this->client->authorise(
                array(
                    "paymentRequest" =>
                    array(
                        "amount" => array("value" => $amount, 
                                          "currency" => $currencyCode),
                        "merchantAccount" => $merchantAccount,
                        "reference" => $reference,
                        "shopperReference" => $reference",
                        "shopperEmail" => $email,
                        "recurring" => array("contract" => "RECURRING"),
                        "selectedRecurringDetailReference" => "LATEST",
                        "shopperInteraction" => "ContAuth"
                    )
                )
        );