2016-06-10 19 views
0

Ich bin neu bei Authorize.Net, Implementieren ich Authorize.Net PHP SDK, um es zu implementieren. Ich versuche, eine Kreditkarte zu belasten, aber es wird geben Fehler wie:Authorize.net, Belastung Kreditkarte Anfrage gibt Fehler als Eine doppelte Transaktion wurde eingereicht

„Eine doppelte Transaktion wurde eingereicht“

ich mehrere Artikel gelesen, Referenz: https://community.developer.authorize.net/t5/Integration-and-Testing/Prevent-Duplicate-Transactions/td-p/20417.

wo die Lösung erwähnt, dass hinzufügen x_duplicate_window = (Ihrer eigenen Wahl, maximal 28800 Sekunden) zu Ihrem Skript. so dass ich es wie folgt hinzugefügt:

<createTransactionRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd"> 
    <merchantAuthentication> 
     <name> 
      <![CDATA[API_LOGIN_ID]]> 
     </name> 
     <transactionKey> 
      <![CDATA[API_TRANSACTION_KEY]]> 
     </transactionKey> 
    </merchantAuthentication> 
    <refId> 
     <![CDATA[ref1465541052]]> 
    </refId> 
    <transactionRequest> 
     <transactionType> 
      <![CDATA[authCaptureTransaction]]> 
     </transactionType> 
     <amount>1</amount> 
     <payment> 
      <creditCard> 
       <cardNumber> 
        <![CDATA[4111111111111111]]> 
       </cardNumber> 
       <expirationDate> 
        <![CDATA[1233]]> 
       </expirationDate> 
      </creditCard> 
     </payment> 
     <order> 
      <description> 
       <![CDATA[DESCRIPTION]]> 
      </description> 
     </order> 
    </transactionRequest> 
    <extraOptions><![CDATA[x_duplicate_window=0]]></extraOptions> 
</createTransactionRequest> 

aber es wirft Fehler als

E00003: Das Element 'createTransactionRequest' im Namensraum 'AnetApi/xml/v1/schema/AnetApiSchema.xsd' hat ungültige Kindelement 'extraOptions' im Namespace 'AnetApi/xml/v1/schema/AnetApiSchema.xsd'.

Ich bin nicht in der Lage x_duplicate_window in meinem Skript hinzuzufügen. Ist dies der richtige Weg, um doppelte Transaktionsfehler

Hinweis zu verhindern: Ich bin in Sandbox-Umgebung und im LIVE-Modus

Bitte helfen Sie arbeiten.

Antwort

3

Sie müssen das <transactionSettings> Element verwenden, um diese Einstellung hinzuzufügen:

<createTransactionRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd"> 
    <merchantAuthentication> 
     <name> 
      <![CDATA[API_LOGIN_ID]]> 
     </name> 
     <transactionKey> 
      <![CDATA[API_TRANSACTION_KEY]]> 
     </transactionKey> 
    </merchantAuthentication> 
    <refId> 
     <![CDATA[ref1465541052]]> 
    </refId> 
    <transactionRequest> 
     <transactionType> 
      <![CDATA[authCaptureTransaction]]> 
     </transactionType> 
     <amount>1</amount> 
     <payment> 
      <creditCard> 
       <cardNumber> 
        <![CDATA[4111111111111111]]> 
       </cardNumber> 
       <expirationDate> 
        <![CDATA[1233]]> 
       </expirationDate> 
      </creditCard> 
     </payment> 
     <order> 
      <description> 
       <![CDATA[DESCRIPTION]]> 
      </description> 
     </order> 
     <transactionSettings> 
      <setting> 
       <settingName>duplicateWindow</settingName> 
       <settingValue>0</settingValue> 
      </setting> 
     </transactionSettings> 
    </transactionRequest> 
</createTransactionRequest> 
+0

woow ... seine Arbeits ... thank u soo viel. Danke vielmals. – Amol

+0

Ich wollte nur fragen, ob wir den Wert von 'duplicateWindow' ändern können, warum wurde er auf 2 Minuten gesetzt. Wenn ich den Wert von "duplicateWindow" ändere, wird es violett meine Transaktions-ID oder etwas? – Amol

+0

Die Standardeinstellung beträgt zwei Minuten. Sie haben jedoch die Möglichkeit, sie bei Bedarf zu ersetzen, da für jedes Unternehmen andere Geschäftsregeln gelten. Die Änderung hat keine Auswirkungen auf andere als die Wartezeit auf eine doppelte Transaktion. –