O Post direto do Authorize.net do Magento 2.0.X continua mostrando o carregamento depois de clicar em colocar ordem

7

Estou trabalhando para o Magento 2 desde a primeira versão. Até agora, para pagamentos, usei apenas o Paypal Express Checkout. Mas agora há um requisito para integrar a postagem direta do Authorize.net. E eu tentei integrá-lo usando credenciais de sandbox.

Agora, quando estou na página de check-out, selecione Authorize.net para efetuar pagamentos usando o número do cartão de amostra da sandbox, por exemplo: - Cartão de teste da American Express: 3700000000000000002 , Quando clico no pedido, ele continua mostrando o carregador. Mas se eu puder ver no painel do administrador em Vendas> Pedido m Ele mostra o pedido que acabei de fazer.

Eu procurei allot e descobri que algumas pessoas postaram o mesmo problema, mas também mencionaram a versão do PHP como 7.0.x, onde estão recebendo problemas. por exemplo aqui

Mas estou usando a versão 5.6.20 do PHP e também tenho esse problema primeiro com a versão Magento 2.0.6 . Agora eu fiz uma nova instalação do Magento 2.0.7 no novo servidor, mas os problemas ainda estão lá

Minhas configurações do painel de administração do Authorize.net são

Modo de teste: Sim

URL do gateway : https://secure.authorize.net/gateway/transact.dll

Eu até tentei com

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

URL dos detalhes da transação : https://api2.authorize.net/xml/v1/request.api

Depuração : Sim

Agora, quando eu verifiquei o debug.log

está dizendo

[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} []

Alguém por favor pode ajudar, há algo de errado na minha configuração ou eu tentei com outra coisa.

Dinesh Saini
fonte
Como eu posso ver você deve definir url resposta adequada, em vez de example.com/authorizenet/directpost_payment/response um presente
Hardik Shah
Eu tenho o mesmo problema. Eu tenho a configuração para teste e posso ver a transferência de teste em allowed.net, mas no magento apenas o carregamento do ajax dispay não é redirecionado para a página de sucesso.
Bhargav Joshi
Qualquer solução.Por favor, sugira. Preso com o mesmo problema
Ahmad Vaqas Khan

Respostas:

3

Acho que você está trabalhando no servidor local (localhost). Há problema em obter resposta na máquina local. Tente com qualquer servidor ativo. Eu tinha o mesmo problema, mas quando experimentado ao vivo, funciona bem.

Bhargav Joshi
fonte
Obrigado pela sua resposta. Mas eu estou trabalhando em servidor ao vivo e recebendo esta questão
Dinesh Saini
Você limpou todo o cache e também tentou implantar conteúdo estático? e também me diga que você está recebendo transação em transação não resolvida em autorizado?
Bhargav Joshi
Isso funcionou para você?
Bhargav Joshi
Sim, eu tenho feito tudo e ficando transação na conta unsettlled e mesmo recebendo e-mail recibo
Dinesh Saini
Agora parece estranho ouvir que isso agora funciona porque eu estava com o mesmo problema, mas depois de trabalhar ao vivo, ele funciona e o pedido é feito com sucesso. Mesmo que eu tenha encontrado alguma coisa, eu vou deixar você saber. :)
Bhargav Joshi
1

Encontrei um problema semelhante com o magento ee 2.0.15. Após alguma depuração criativa, localizei meu problema em uma configuração aparentemente não relacionada: Stores :: Configuração :: Vendas :: Emails de Vendas :: Configurações Gerais :: Configurações Assíncronas. O que descobri é que, quando o "transact.dll" é postado no seu site em / authorizenet / direct_post / response, e a cobrança foi bem-sucedida, o magento tenta enviar um e-mail ao usuário se a configuração acima estiver desativada. Este email usa o sistema de layout magento e carrega seu próprio layout. O problema é que o mesmo objeto "layout" é usado posteriormente no ciclo de solicitação e quando você espera carregar a atualização de layout "authorizenet_directpost_payment_response.xml", isso não ocorre porque o construtor verifica se o layout já foi carregado, o que isso foi. Isso resulta em um layout vazio e uma resposta de 0 byte. O "transact.dll" do Authorize.net interpreta isso como um tempo limite, mesmo que os cabeçalhos tenham sido enviados e o comprimento do conteúdo especificado como 0 bytes.

Continuando com isso. Se você alterar a configuração de e-mail acima, os e-mails de confirmação de vendas serão enviados via tarefa cron. Se seu site for veiculado no diretório "pub", será necessário definir a mídia base segura e não segura e os caminhos estáticos na configuração das lojas. Eu descobri que usar a sintaxe do espaço reservado é suficiente: "{{unsecure_base_url}} static /" e "{{unsecure_base_url}} media /" por exemplo.

Andrew C. Stayart
fonte
Isso resolveu o nosso problema. Tão improvável quanto parece. Faz sentido. Apenas para outras pessoas: Cloudflare, AWS ELB, Nginx, Magento 2.
Ram Iyer
Passei 6 horas e fiquei muito próximo e pesquisando com o que aprendi me levou até aqui e esta resposta, obrigado. Ainda é um problema no 2.2 Magento também.
0

LOJAS -> Configuração -> VENDAS -> Métodos de pagamento -> Correio direto do Authorize.net> Modo de teste, altere para "Não"

user2605479
fonte
é trabalhar para você, não o seu trabalho para mim mesmo depois de alterar o modo de teste para não
Dinesh Saini
0

Estou tendo o mesmo problema.

Alguém tem Autorize.net trabalhando Magento 2.1.2?

Eu olhei para o exception.log e encontrei

2017-01-31 19:41:05] main.CRITICAL: Magento \ Framework \ Exception \ LocalizedException: a transação foi recusada porque a validação do hash da resposta falhou. no fornecedor / magento / module-authorizenet / Model / Directpost.php: 550

Alguma idéia / sugestão / oração?

shimon
fonte
0

Faça https no URL do domínio e tente com os detalhes da conta autorizada ao vivo. Funcionará perfeitamente.

obrigado

Kartik Asodariya
fonte
0

No meu caso, usei uma chave hash md5 muito longa, portanto estava dando erro no servidor. Por favor, tente a chave mais curta na chave hash md4. Funciona

Mukesh Ojha
fonte