4

这是我在这个论坛的第一篇文章。我正在尝试使用 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"
                    )
                )
        );
4

4 回答 4

1

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

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

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

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

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

正常的集成工作如下:

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

来自 Adyen 文档

010 不允许 您无权执行此操作

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

于 2012-06-13T08:37:30.873 回答
0

您需要在 ca 管理区域中为用户“编辑允许的用户 IP 范围”添加您的 ip。

于 2016-03-21T14:52:38.840 回答
-1

我认为在这段代码中你错误地添加了额外的双引号(“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"
                    )
                )
        );
于 2013-12-23T10:31:47.150 回答