Closed woei66 closed 8 years ago
Hi @woei66. Please attach magento and apache logs, also do you have any js errors in your browser? Do you use Authorize.net for production application?
any solution for the problem .. ?
I'm having this same problem as well. There is a javascript error in the console:
transact.dll:4 Uncaught SecurityError: Blocked a frame with origin "https://secure.authorize.net" from accessing a frame with origin "https://www.storedomain.com". Protocols, domains, and ports must match.
I did a workaround. I enabled SSL for all pages and it works. So, I guessed that the problem is described as @mverstraete said.
but, I didn't find the root cause
I have SSL on all pages as well, but still having the same problem.
@mverstraete, please, specify configuration of Magento (version, version of php, etc) and attach debug and exception logs.
Magento version 2.0.7 PHP version 5.6.22 Apache version 2.4.18 MariaDB 10.0.25
transact.dll:4 Uncaught SecurityError: Blocked a frame with origin "https://secure.authorize.net" from accessing a frame with origin "https://www.storesdomainhere.com". Protocols, domains, and ports must match.(anonymous function) @ transact.dll:4
Nothing appears in the system or exception logs. This is the only thing that appears in the debug log:
[2016-06-21 14:18:30] main.DEBUG: cache_invalidate: {"method":"POST","url":"https://www.storesdomainhere.com/authorizenet/directpost_payment/place/","invalidateInfo":{"tags":["catalog_category_2","catalog_category"],"mode":"matchingAnyTag"},"is_exception":false} [] [2016-06-21 14:18:30] main.DEBUG: array ( 'request' => array ( 'x_version' => '3.1', 'x_delim_data' => 'FALSE', 'x_relay_response' => 'TRUE', 'x_test_request' => 'FALSE', 'x_login' => '****', 'x_method' => 'CC', 'x_relay_url' => 'https://www.storesdomainhere.com/authorizenet/directpost_payment/response', 'x_type' => 'AUTH_CAPTURE', 'x_fp_sequence' => '88', 'x_invoice_num' => '000000030', 'x_amount' => 1, 'x_currency_code' => 'USD', 'x_tax' => '0.00', 'x_freight' => '0.00', 'x_first_name' => 'First', 'x_last_name' => 'Last', 'x_company' => '', 'x_address' => '123 Main St', 'x_city' => 'City', 'x_state' => 'Michigan', 'x_zip' => '48064', 'x_country' => '', 'x_phone' => '123456789', 'x_fax' => '', 'x_cust_id' => '', 'x_customer_ip' => 'xxx.xxx.xxx.xxx', 'x_customer_tax_id' => '', 'x_email' => 'myemail@domain.com', 'x_email_customer' => '1', 'x_merchant_email' => 'myemail@domain.com', 'x_ship_to_first_name' => 'First', 'x_ship_to_last_name' => 'Last', 'x_ship_to_company' => '', 'x_ship_to_address' => '123 Main St', 'x_ship_to_city' => 'City', 'x_ship_to_state' => 'Michigan', 'x_ship_to_zip' => '48064', 'x_ship_to_country' => '', 'x_po_num' => '', 'x_fp_timestamp' => 1466518710, 'x_fp_hash' => '19a2c25627980d00bc51c45a97bb7d75', ), ) {"is_exception":false} []
Also the response of transaction.dll looks like this:
<html>
<head>
<script>
var require = window.top.require;
require(
[
'Magento_Checkout/js/model/quote',
'Magento_Checkout/js/action/place-order'
],
function(quote, placeOrderAction) {
placeOrderAction({"method": quote.paymentMethod().method}, true);
}
);
</script>
</head>
<body></body>
</html>
@mverstraete, this is https://www.storesdomainhere.com public domain or your localhost, I can't open this URL. Also, do you use authorize.net sandbox credentials or production?
No, the real domain is https://www.customizedgolfballs.com
This is the production site, using production authorize.net credentials.
Could you attach response from Authorize.net iframe?
After updating to Magento 2.1, this is no longer happening. Its also possible the relay response URL was http instead of https in the authorize.net account settings. I'm not sure which one of the two fixed it.
Now the payment is going through, but I'm still stuck on the loading screen. Now its flashing an error that says "No such entity with cartId = 52". The integer value is different every time... still trying to figure it out.
The "No such entity with cartId" happens when an api call is made to /rest/default/V1/guest-carts/050...2fc/payment-information. A 404 is returned and the error displays briefly behind the loading screen.
The response from the API call contains a stack trace:
#0 /home/customgb/public_html/vendor/magento/module-quote/Model/QuoteRepository.php(129): Magento\Framework\Exception\NoSuchEntityException::singleField('cartId', '56')
#1 /home/customgb/public_html/vendor/magento/framework/Interception/Interceptor.php(146): Magento\Quote\Model\QuoteRepository->getActive('56')
#2 /home/customgb/public_html/var/generation/Magento/Quote/Model/QuoteRepository/Interceptor.php(52): Magento\Quote\Model\QuoteRepository\Interceptor->___callPlugins('getActive', Array, Array)
#3 /home/customgb/public_html/vendor/magento/module-quote/Model/BillingAddressManagement.php(70): Magento\Quote\Model\QuoteRepository\Interceptor->getActive('56')
#4 /home/customgb/public_html/vendor/magento/module-quote/Model/GuestCart/GuestBillingAddressManagement.php(49): Magento\Quote\Model\BillingAddressManagement->assign('56', Object(Magento\Quote\Model\Quote\Address))
#5 /home/customgb/public_html/vendor/magento/module-checkout/Model/GuestPaymentInformationManagement.php(99): Magento\Quote\Model\GuestCart\GuestBillingAddressManagement->assign('050cce51a5e6b01...', Object(Magento\Quote\Model\Quote\Address))
#6 /home/customgb/public_html/vendor/magento/module-checkout/Model/GuestPaymentInformationManagement.php(79): Magento\Checkout\Model\GuestPaymentInformationManagement->savePaymentInformation('050cce51a5e6b01...', 'mark@test.com', Object(Magento\Quote\Model\Quote\Payment), Object(Magento\Quote\Model\Quote\Address))
#7 [internal function]: Magento\Checkout\Model\GuestPaymentInformationManagement->savePaymentInformationAndPlaceOrder('050cce51a5e6b01...', 'mark@test.com', Object(Magento\Quote\Model\Quote\Payment), Object(Magento\Quote\Model\Quote\Address))
#8 /home/customgb/public_html/vendor/magento/module-webapi/Controller/Rest.php(307): call_user_func_array(Array, Array)
#9 /home/customgb/public_html/vendor/magento/module-webapi/Controller/Rest.php(216): Magento\Webapi\Controller\Rest->processApiRequest()
#10 /home/customgb/public_html/var/generation/Magento/Webapi/Controller/Rest/Interceptor.php(37): Magento\Webapi\Controller\Rest->dispatch(Object(Magento\Framework\App\Request\Http))
#11 /home/customgb/public_html/vendor/magento/framework/App/Http.php(135): Magento\Webapi\Controller\Rest\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#12 /home/customgb/public_html/vendor/magento/framework/App/Bootstrap.php(258): Magento\Framework\App\Http->launch()
#13 /home/customgb/public_html/index.php(39): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http))
#14 {main}
It happens because its calling QuoteRepository->getActive('56'). The quote exists, but its not active so it throws a NoSuchEntityException which returns a 404 Not Found. Is the quote supposed to be active at that point?
Yes, the repository tries to get an active quote. Per one time only one quote can be active for customer.
I deleted all of the quotes out of the database. I place an item in my cart and go to checkout. When I get to the checkout page, I see my quote in the database and it is active. Once I click "Place Order", the quote turns to inactive and I get the "No such entity with cartId" error mentioned above. It stays on the loading screen forever. Customers are unable to complete checkout.
Could you attach response from Authorize.net and your request log?
The transaction goes though to authorize.net just fine, payment is processed and everything. Its as if the quote is being marked as inactive prematurely in the checkout process. I did see in the DirectPost class on the authorizenet module at the end of the processOrder method, the quote is marked as inactive. It seems like after this happens, the API call is made to /rest/default/V1/guest-carts/050...2fc/payment-information, which throws the error.
Heres whats in the debug log:
[2016-06-30 14:26:37] main.DEBUG: array (
'request' =>
array (
'x_version' => '3.1',
'x_delim_data' => 'FALSE',
'x_relay_response' => 'TRUE',
'x_test_request' => 'FALSE',
'x_login' => '****',
'x_method' => 'CC',
'x_relay_url' => 'http://customgb.tmsandbox.com/authorizenet/directpost_payment/response',
'x_type' => 'AUTH_CAPTURE',
'x_fp_sequence' => '63',
'x_invoice_num' => '000000025',
'x_amount' => 779.3999999999999772626324556767940521240234375,
'x_currency_code' => 'USD',
'x_tax' => '0.00',
'x_freight' => '60.00',
'x_first_name' => 'Mark',
'x_last_name' => 'V',
'x_company' => '',
'x_address' => '309 S. Main St.',
'x_city' => 'Royal Oak',
'x_state' => 'Michigan',
'x_zip' => '48067',
'x_country' => '',
'x_phone' => '1234567890',
'x_fax' => '',
'x_cust_id' => '',
'x_customer_ip' => '162.17.***.***',
'x_customer_tax_id' => '',
'x_email' => '***@*****.com',
'x_email_customer' => '0',
'x_merchant_email' => '***@*****.com',
'x_ship_to_first_name' => 'Mark',
'x_ship_to_last_name' => 'V',
'x_ship_to_company' => '',
'x_ship_to_address' => '309 S. Main St.',
'x_ship_to_city' => 'Royal Oak',
'x_ship_to_state' => 'Michigan',
'x_ship_to_zip' => '48067',
'x_ship_to_country' => '',
'x_po_num' => '',
'x_fp_timestamp' => 1467296797,
'x_fp_hash' => 'e73f726479dc72303976798a3efa9074',
),
) {"is_exception":false} []
[2016-06-30 14:26:38] main.DEBUG: array (
'response' =>
array (
'x_response_code' => '1',
'x_response_reason_code' => '1',
'x_response_reason_text' => 'This transaction has been approved.',
'x_avs_code' => 'Y',
'x_auth_code' => 'MOIZLR',
'x_trans_id' => '2260640367',
'x_method' => 'CC',
'x_card_type' => 'Visa',
'x_account_number' => 'XXXX1111',
'x_first_name' => 'Mark',
'x_last_name' => 'V',
'x_company' => '',
'x_address' => '309 S. Main St.',
'x_city' => 'Royal Oak',
'x_state' => 'Michigan',
'x_zip' => '48067',
'x_country' => '',
'x_phone' => '1234567890',
'x_fax' => '',
'x_email' => '***@*****.com',
'x_invoice_num' => '000000025',
'x_description' => '',
'x_type' => 'auth_capture',
'x_cust_id' => '',
'x_ship_to_first_name' => 'Mark',
'x_ship_to_last_name' => 'V',
'x_ship_to_company' => '',
'x_ship_to_address' => '309 S. Main St.',
'x_ship_to_city' => 'Royal Oak',
'x_ship_to_state' => 'Michigan',
'x_ship_to_zip' => '48067',
'x_ship_to_country' => '',
'x_amount' => '779.40',
'x_tax' => '0.00',
'x_duty' => '0.00',
'x_freight' => '60.00',
'x_tax_exempt' => 'FALSE',
'x_po_num' => '',
'x_MD5_Hash' => '0D3D0C418AE28AE6D451B4D266AD82E2',
'x_cvv2_resp_code' => 'P',
'x_cavv_response' => '2',
'x_test_request' => 'false',
'controller_action_name' => 'directpost_payment',
'is_secure' => '',
),
) {"is_exception":false} []
[2016-06-30 14:26:39] main.DEBUG: array (
'url' => 'https://api2.authorize.net/xml/v1/request.api',
'request' => '<?xml version="1.0" encoding="utf-8"?><getTransactionDetailsRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd"><merchantAuthentication>****</merchantAuthentication><transId>2260640367</transId></getTransactionDetailsRequest>',
'response' => '<?xml version="1.0" encoding="utf-8"?><getTransactionDetailsResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd"><messages><resultCode>Error</resultCode><message><code>E00007</code><text>User authentication failed due to invalid authentication values.</text></message></messages></getTransactionDetailsResponse>',
) {"is_exception":false} []
[2016-06-30 14:26:39] main.DEBUG: array (
'url' => 'https://api2.authorize.net/xml/v1/request.api',
'request' => '<?xml version="1.0" encoding="utf-8"?><getTransactionDetailsRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd"><merchantAuthentication>****</merchantAuthentication><transId>2260640367</transId></getTransactionDetailsRequest>',
'response' => '<?xml version="1.0" encoding="utf-8"?><getTransactionDetailsResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd"><messages><resultCode>Error</resultCode><message><code>E00007</code><text>User authentication failed due to invalid authentication values.</text></message></messages></getTransactionDetailsResponse>',
) {"is_exception":false} []
Actually an Authorize.net return response with error:
<resultCode>Error</resultCode>
<message>
<code>E00007</code>
<text>User authentication failed due to invalid authentication values.</text>
</message>
Looks like this is a problem.
The Authorize.net response codes docs .
Thats not the problem. That was because I had the production API url instead of the sandbox API url. I changed it, and the API call succeeds, and it still has the same problem. Its related to the quote being marked as inactive during the authorize.net payment process.
Here is the debug log after changing the API url to the sandbox url.
[2016-06-30 15:23:15] main.DEBUG: array (
'request' =>
array (
'x_version' => '3.1',
'x_delim_data' => 'FALSE',
'x_relay_response' => 'TRUE',
'x_test_request' => 'FALSE',
'x_login' => '****',
'x_method' => 'CC',
'x_relay_url' => 'http://customgb.tmsandbox.com/authorizenet/directpost_payment/response',
'x_type' => 'AUTH_CAPTURE',
'x_fp_sequence' => '64',
'x_invoice_num' => '000000026',
'x_amount' => 779.3999999999999772626324556767940521240234375,
'x_currency_code' => 'USD',
'x_tax' => '0.00',
'x_freight' => '60.00',
'x_first_name' => 'Mark',
'x_last_name' => 'V',
'x_company' => '',
'x_address' => '309 South Main St.',
'x_city' => 'Royal Oak',
'x_state' => 'Michigan',
'x_zip' => '48067',
'x_country' => '',
'x_phone' => '**********',
'x_fax' => '',
'x_cust_id' => '',
'x_customer_ip' => '162.17.***.***',
'x_customer_tax_id' => '',
'x_email' => '***@****.com',
'x_email_customer' => '0',
'x_merchant_email' => '***@****.com',
'x_ship_to_first_name' => 'Mark',
'x_ship_to_last_name' => 'V',
'x_ship_to_company' => '',
'x_ship_to_address' => '309 South Main St.',
'x_ship_to_city' => 'Royal Oak',
'x_ship_to_state' => 'Michigan',
'x_ship_to_zip' => '48067',
'x_ship_to_country' => '',
'x_po_num' => '',
'x_fp_timestamp' => 1467300195,
'x_fp_hash' => '3845351895211e2cc87c1416606aacdb',
),
) {"is_exception":false} []
[2016-06-30 15:23:16] main.DEBUG: array (
'response' =>
array (
'x_response_code' => '1',
'x_response_reason_code' => '1',
'x_response_reason_text' => 'This transaction has been approved.',
'x_avs_code' => 'Y',
'x_auth_code' => '1FY9Z4',
'x_trans_id' => '2260650272',
'x_method' => 'CC',
'x_card_type' => 'Visa',
'x_account_number' => 'XXXX1111',
'x_first_name' => 'Mark',
'x_last_name' => 'V',
'x_company' => '',
'x_address' => '309 South Main St.',
'x_city' => 'Royal Oak',
'x_state' => 'Michigan',
'x_zip' => '48067',
'x_country' => '',
'x_phone' => '**********',
'x_fax' => '',
'x_email' => '***@****.com',
'x_invoice_num' => '000000026',
'x_description' => '',
'x_type' => 'auth_capture',
'x_cust_id' => '',
'x_ship_to_first_name' => 'Mark',
'x_ship_to_last_name' => 'V',
'x_ship_to_company' => '',
'x_ship_to_address' => '309 South Main St.',
'x_ship_to_city' => 'Royal Oak',
'x_ship_to_state' => 'Michigan',
'x_ship_to_zip' => '48067',
'x_ship_to_country' => '',
'x_amount' => '779.40',
'x_tax' => '0.00',
'x_duty' => '0.00',
'x_freight' => '60.00',
'x_tax_exempt' => 'FALSE',
'x_po_num' => '',
'x_MD5_Hash' => '94B9293C50AFC38178F5E9D6A735DD76',
'x_cvv2_resp_code' => 'P',
'x_cavv_response' => '2',
'x_test_request' => 'false',
'controller_action_name' => 'directpost_payment',
'is_secure' => '',
),
) {"is_exception":false} []
[2016-06-30 15:23:17] main.DEBUG: array (
'url' => 'https://apitest.authorize.net/xml/v1/request.api',
'request' => '<?xml version="1.0" encoding="utf-8"?><getTransactionDetailsRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd"><merchantAuthentication>****</merchantAuthentication><transId>2260650272</transId></getTransactionDetailsRequest>',
'response' => '<?xml version="1.0" encoding="utf-8"?><getTransactionDetailsResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd"><messages><resultCode>Ok</resultCode><message><code>I00001</code><text>Successful.</text></message></messages><transaction><transId>2260650272</transId><submitTimeUTC>2016-06-30T15:23:15.48Z</submitTimeUTC><submitTimeLocal>2016-06-30T08:23:15.48</submitTimeLocal><transactionType>authCaptureTransaction</transactionType><transactionStatus>capturedPendingSettlement</transactionStatus><responseCode>1</responseCode><responseReasonCode>1</responseReasonCode><responseReasonDescription>Approval</responseReasonDescription><authCode>1FY9Z4</authCode><AVSResponse>Y</AVSResponse><cardCodeResponse>P</cardCodeResponse><order><invoiceNumber>000000026</invoiceNumber></order><authAmount>779.40</authAmount><settleAmount>779.40</settleAmount><shipping><amount>60.00</amount></shipping><taxExempt>false</taxExempt><payment><creditCard><cardNumber>XXXX1111</cardNumber><expirationDate>XXXX</expirationDate><cardType>Visa</cardType></creditCard></payment><customer><email>***@****.com</email></customer><billTo><firstName>Mark</firstName><lastName>V</lastName><address>309 South Main St.</address><city>Royal Oak</city><state>Michigan</state><zip>48067</zip><phoneNumber>**********</phoneNumber></billTo><shipTo><firstName>Mark</firstName><lastName>V</lastName><address>309 South Main St.</address><city>Royal Oak</city><state>Michigan</state><zip>48067</zip></shipTo><recurringBilling>false</recurringBilling><customerIP>162.17.***.***</customerIP><product>Card Not Present</product><marketType>eCommerce</marketType></transaction></getTransactionDetailsResponse>',
) {"is_exception":false} []
Could you change payment action to Authorize only
instead Authorize and Capture
and try to place an order? Now, we have an issue related to updates from 2.0.7 to 2.1.0 for all payments with capture transactions.
Possible related issue https://github.com/magento/magento2/issues/5324.
@joni-jones , changing the payment action to Authorize Only works! I'm taken to the Success Page without any errors!
@joni-jones , After the customer checks out with Authorize Only, if I try to capture the payment from the Invoice tab of the order, it gives an error that says: We can't save the invoice right now.
Then if I try to capture it again it gives an error that says Gateway error: This transaction has already been captured.
Also, the items never get removed from the Mini-Cart. If I press the delete icon to remove them, it gives a popup that says: We can't find the quote item.
For now capture
payment action is not available when customers update to 2.1.0, but if install fresh Magento it should work. This problem relates to upgrade scripts in the Sales module.
Internal ticket already in progress.
Thanks for your reporting.
This issue is close as duplicate https://github.com/magento/magento2/issues/4785
@mverstraete , Hi I am facing the same problem I read all conversation and tried everything but still on payment spin is showing did you find any solution. Help much appreciated. :)
@techverx , Updating the database as described here worked for me:
https://github.com/magento/magento2/issues/4785
ALTER TABLE sales_invoice_grid ADD base_grand_total decimal(12,4) AFTER grand_total;
@mverstraete , Added base_grand_total but did not solve my problem still screen is spinning.
I was having the same issue, what i did to solve the problem was
/home/XXXXXX/public_html/shop/vendor/magento/module-authorizenet/Model/Directpost.php
and commented out the $this->checkTransId(); around line 661
after that my indefinite spinning wheel stopped and my transaction went through
Steps to reproduce
Expected result
Actual result
I enabled the debug optiona and I got below debug information '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://xx.xx.xxx.x/authorizenet/directpost_payment/response', 'x_type' => 'AUTH_ONLY', 'x_fp_sequence' => '6', 'x_invoice_num' => '2000000003', 'x_amount' => 56, 'x_currency_code' => 'USD', 'x_tax' => '0.00', 'x_freight' => '5.00', 'x_first_name' => 'xxx', 'x_last_name' => 'xxx', 'x_company' => '', 'x_address' => 'xxx', 'x_city' => 'xxx', 'x_state' => '', 'x_zip' => 'xxxx', 'x_country' => '', 'x_phone' => 'xxxx', 'x_fax' => '', 'x_cust_id' => '', 'x_customer_ip' => '127.0.0.1', 'x_customer_tax_id' => '', 'x_email' => 'woei66@gmail.com', 'x_email_customer' => '1', 'x_merchant_email' => 'xxxx@gmail.com', 'x_ship_to_first_name' => 'xxxx', 'x_ship_to_last_name' => 'xxx', 'x_ship_to_company' => '', 'x_ship_to_address' => 'xxxx', 'x_ship_to_city' => 'xxx', 'x_ship_to_state' => '', 'x_ship_to_zip' => 'xxx', 'x_ship_to_country' => '', 'x_po_num' => '', 'x_fp_timestamp' => 1464781638, 'x_fp_hash' => '61c8aa734cea7e7ad8705ad0d9fbc7ed', ),
Below is my authorize.net setting