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 (Payment Card Industry Data Security Standard) に準拠する必要があることです。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 に答える
-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 に答える