Magento 2.0.X Authorize.net Direct Post zeigt weiterhin das Laden an, nachdem Sie auf Bestellung aufgeben geklickt haben

7

Ich arbeite für Magento 2 ab der ersten Version. Bisher habe ich für Zahlungen nur Paypal Express Checkout verwendet. Jetzt ist es jedoch erforderlich, Authorize.net Direct Post zu integrieren. Und ich habe versucht, es mit Sandbox-Anmeldeinformationen zu integrieren.

Wenn ich jetzt auf der Checkout-Seite bin und Authorize.net auswähle, um Zahlungen mit der Sandbox-Beispielkartennummer zu tätigen, z . B.: - American Express-Testkarte: 370000000000002 , Wenn ich auf Bestellung klicke , wird weiterhin der Lader angezeigt . Aber wenn ich im Admin-Bereich unter Sales> Order m sehen kann, zeigt es die Bestellung, die ich gerade aufgegeben habe.

Ich habe allot gesucht und festgestellt, dass einige Leute das gleiche Problem gepostet haben, aber sie haben auch die PHP-Version als 7.0.x erwähnt, wo sie Probleme bekommen. zB hier

Aber ich benutze PHP Version 5.6.20 und ich habe dieses Problem auch zuerst mit Magento 2.0.6 Version. Jetzt habe ich Magento 2.0.7 neu auf einem neuen Server installiert, aber die Probleme sind immer noch da

Meine Konfigurationseinstellungen für das Admin-Panel für Authorize.net sind

Testmodus: Ja

Gateway-URL : https://secure.authorize.net/gateway/transact.dll

Ich habe es sogar mit versucht

https://test.authorize.net/gateway/transact.dll

Transaktionsdetails URL : https://api2.authorize.net/xml/v1/request.api

Debug : Ja

Jetzt, wenn ich debug.log überprüft habe

es heißt

[2016-05-27 12:35:03] main.DEBUG: cache_invalidate:  {"method":"POST","url":"http://example.com/authorizenet/directpost_payment/place/","invalidateInfo":{"tags":["catalog_category_3","catalog_category"],"mode":"matchingAnyTag"},"is_exception":false} []
[2016-05-27 12:35:03] main.DEBUG: array (
  'request' => 
  array (
    'x_version' => '3.1',
    'x_delim_data' => 'FALSE',
    'x_relay_response' => 'TRUE',
    'x_test_request' => 'TRUE',
    'x_login' => '****',
    'x_method' => 'CC',
    'x_relay_url' => http://example.com/authorizenet/directpost_payment/response',
    'x_type' => 'AUTH_CAPTURE',
    'x_fp_sequence' => '2',
    'x_invoice_num' => '000000002',
    'x_amount' => 5.0099999999999998,
    'x_currency_code' => 'USD',
    'x_tax' => '0.00',
    'x_freight' => '5.00',
    'x_first_name' => 'Dinesh',
    'x_last_name' => 'Saini',
    'x_company' => '',
    'x_address' => 'test',
    'x_city' => 'California',
    'x_state' => 'Alabama',
    'x_zip' => '90001',
    'x_country' => '',
    'x_phone' => '1234567890',
    'x_fax' => '',
    'x_cust_id' => '',
    'x_customer_ip' => '122.173.244.114',
    'x_customer_tax_id' => '',
    'x_email' => '[email protected]',
    'x_email_customer' => '1',
    'x_merchant_email' => '',
    'x_ship_to_first_name' => 'Dinesh',
    'x_ship_to_last_name' => 'Saini',
    'x_ship_to_company' => '',
    'x_ship_to_address' => 'test',
    'x_ship_to_city' => 'California',
    'x_ship_to_state' => 'Alabama',
    'x_ship_to_zip' => '90001',
    'x_ship_to_country' => '',
    'x_po_num' => '',
    'x_fp_timestamp' => 1464352503,
    'x_fp_hash' => '27827498413496cd9ad6ed247e9688f3',
  ),
) {"is_exception":false} []

Kann mir bitte jemand helfen, stimmt etwas in meiner Konfiguration nicht oder ich habe es mit etwas anderem versucht.

Dinesh Saini
quelle
Wie ich sehen kann, sollten Sie die richtige Antwort-URL anstelle von example.com/authorizenet/directpost_payment/response this
Hardik Shah,
Ich habe das gleiche Problem. Ich habe ein Setup für den Test und ich kann die Test-Trasacation in autorisiertem.net sehen, aber bei Magento wird nur Ajax Dispay geladen und nicht zur Erfolgsseite weitergeleitet.
Bhargav Joshi
Jede Lösung. Bitte vorschlagen.
Festgefahren

Antworten:

3

Ich denke, Sie arbeiten in localser (localhost). Es gibt ein Problem beim Abrufen einer Antwort auf dem lokalen Computer. Versuchen Sie es mit einem beliebigen Live-Server. Ich hatte das gleiche Problem, aber wenn es live versucht wird, funktioniert es gut.

Bhargav Joshi
quelle
Danke für deine Antwort. Aber ich arbeite am Live-Server und bekomme dieses Problem
Dinesh Saini
Haben Sie den gesamten Cache geleert und auch versucht, statische Inhalte bereitzustellen? und sagen Sie mir auch, dass Sie eine Transaktion in einer nicht abgewickelten Transaktion bei autorisiert erhalten?
Bhargav Joshi
Hat das bei dir funktioniert?
Bhargav Joshi
Ja, ich habe alles getan und die Transaktion in einem nicht abgewickelten Konto und sogar eine Empfangs-E-Mail erhalten
Dinesh Saini
Jetzt scheint es seltsam zu hören, dass dies jetzt funktioniert, weil ich das gleiche Problem hatte, aber nachdem ich live gearbeitet habe, funktioniert es und die Bestellung wurde erfolgreich aufgegeben. Obwohl ich etwas gefunden habe, werde ich es Sie wissen lassen. :)
Bhargav Joshi
1

Bei magento ee 2.0.15 ist ein ähnliches Problem aufgetreten. Nach einigem kreativen Debuggen habe ich mein Problem auf eine scheinbar nicht verwandte Konfigurationseinstellung zurückgeführt: Stores :: Configuration :: Sales :: Sales Emails :: General Settings :: Asynchronous Settings. Ich habe festgestellt, dass Magento versucht, eine E-Mail an den Benutzer zu senden, wenn "transact.dll" auf Ihrer Website unter / authorizenet / direct_post / response veröffentlicht und die Gebühr erfolgreich war, wenn die obige Einstellung deaktiviert ist. Diese E-Mail verwendet das Magento-Layoutsystem und lädt ein eigenes Layout. Das Problem ist, dass dasselbe "Layout" -Objekt später im Anforderungszyklus verwendet wird und wenn Sie erwarten, dass es das Layout-Update "authorizenet_directpost_payment_response.xml" lädt, nicht, weil der Builder prüft, ob das Layout bereits geladen wurde es war. Dies führt zu einem leeren Layout und einer 0-Byte-Antwort. Die "transact.dll" von Authorize.net interpretiert dies als Zeitüberschreitung, obwohl die Header gesendet wurden und die Inhaltslänge als 0 Byte angegeben wurde.

Weiterverfolgung. Wenn Sie die obige E-Mail-Einstellung ändern, werden Verkaufsbestätigungs-E-Mails per Cron-Job gesendet. Wenn Ihre Site aus dem Verzeichnis "pub" bereitgestellt wird, müssen Sie die sicheren und unsicheren Basismedien und statischen Pfade in der Store-Konfiguration festlegen. Ich habe festgestellt, dass die Verwendung der Platzhaltersyntax ausreichend ist: "{{unsecure_base_url}} static /" und "{{unsecure_base_url}} media /" zum Beispiel.

Andrew C. Stayart
quelle
Dies löste unser Problem. So unwahrscheinlich es scheint. Macht Sinn. Nur für andere Leute: Cloudflare, AWS ELB, Nginx, Magento 2.
Ram Iyer
Verbrachte 6 Stunden und war sehr nah dran und suchte mit dem, was ich gelernt habe, führte mich hierher und diese Antwort, danke. Auch in 2.2 Magento immer noch ein Problem.
0

SPEICHER -> Konfiguration -> VERKAUF -> Zahlungsmethoden -> Authorize.net Direct Post> Testmodus, ändern Sie ihn in "Nein".

user2605479
quelle
Funktioniert es für Sie, funktioniert es nicht für mich, selbst nachdem der Testmodus auf Nein
geändert wurde
0

Ich habe das gleiche Problem.

Hat jemand Autorize.net in gearbeitet Magento 2.1.2?

Ich habe in die Ausnahme.log geschaut und gefunden

2017-01-31 19:41:05] main.CRITICAL: Magento \ Framework \ Exception \ LocalizedException: Die Transaktion wurde abgelehnt, da die Validierung des Antwort-Hash fehlgeschlagen ist. in vendor / magento / module-authorizenet / Model / Directpost.php: 550

Irgendwelche Ideen / Vorschläge / Gebete?

Shimon
quelle
0

Bitte gehen Sie auf die https-Domain-URL und versuchen Sie es mit den Details des autorisierten Live-Kontos. Es wird perfekt funktionieren.

Vielen Dank

Kartik Asodariya
quelle
0

In meinem Fall habe ich einen zu langen MD5-Hash-Schlüssel verwendet, sodass ein Serverfehler aufgetreten ist. Bitte versuchen Sie, den MD4-Hash-Schlüssel zu verkürzen. Es funktioniert

Mukesh Ojha
quelle