这是我在这个论坛上的第一篇文章。我正在尝试使用 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 安全机制等功能。
正常集成的工作原理如下:
- 将购物者从您的网站重定向到我们的托管付款页面。
- 购物者可以选择多种付款方式并进行付款。
- 购物者被重定向回您的网站,我们会发回付款的结果代码。
- 我们还通过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"
)
)
);