Open vinivst opened 4 years ago
Olá vinivst, Parece que há algum problema na sua URL de notificação se o status não está alterando. Por favor depure o código fonte da classe: PGA_Gateway.class.php
Nela está o que é referente estas chamadas. Você pode ir clicando em reenviar notificações enquanto faz seus testes.
Boa tarde san0suke,
Depois de muito bater a cabeça, consegui achar o log do nginx:
2020/02/23 19:21:03 [error] 281#281: *248 FastCGI sent in stderr: "PHP message: id was called incorrectly. Order properties should not be accessed directly. Backtrace: do_action('wp_ajax_nopriv_finalizarcompra'), WP_Hook->apply_filters, PGA_Assinaturas->finalizar_compra, PGA_Assinaturas->pagamento, PGA_Assinaturas->registrar_assinatura, WC_Abstract_Legacy_Order->__get, wc_doing_it_wrong. This message was added in version 3.0.
PHP message: user_id was called incorrectly. Order properties should not be accessed directly. Backtrace: do_action('wp_ajax_nopriv_finalizarcompra'), WP_Hook->do_action, WP_Hook->apply_filters, PGA_Assinaturas->finalizar_compra, PGA_Assinaturas->pagamento, PGA_Assinaturas->registrar_assinatura, PGA_Gateway->change_status, WC_Abstract_Legacy_Order->__get, wc_doing_it_wrong. This message was added in version 3.0.
PHP message: id was called incorrectly. Order properties should not be accessed directly. Backtrace: do_action('wp_ajax_nopriv_finalizarcompra'), WP_Hook->do_action, WP_Hook->apply_filters, PGA_Assinaturas->finalizar_compra, PGA_Assinaturas->pagamento, PGA_Assinaturas->registrar_assinatura, PGA_Gateway->change_status, PGA_WC_Pagseguro_Messages::get_status_titulo, WC_Abstract_Legacy_Order->__get, wc_doing_it_wrong. This message was added in version 3.0" while reading response header from upstream, client: 201.51.65.130, server: investrobos.com, request: "POST /wp-admin/admin-ajax.php HTTP/1.1", upstream: "fastcgi://172.20.0.4:9000", host: "investrobos.com", referrer: "https://investrobos.com/finalizar-compra/order-pay/15/?key=wc_order_PL6ubYUBs9FdP"
O detalhe é que agora não estou mais conseguindo finalizar uma compra, depois do redirect cai direto numa página do pagseguro dizendo sessão expirada:
Obrigado pela ajuda!
Isso que você postou parece que está faltando uma parte...
Outra coisa, tem algum outro plugin de assinatura ao mesmo tempo?
Atualizei agora, realmente tava faltando muita coisa que na hora de copiar do bash do linux pro windows cortou, acabei de atualizar com tudo direitinho.
Não estou usando nenhum outro plugin junto, a instalação é do zero em um container do docker, somente wordpress e woocommerce, junto com o seu plugin.
-- Edit
Consegui pegar o log de quando eu mudo um status de uma transação diretamente no console do pagseguro:
186.234.48.113 - - [23/Feb/2020:19:43:45 +0000] "POST /?wc-api=PGA_Gateway HTTP/1.1" 301 169 "-" "Jakarta Commons-HttpCliClient/3.1" "-"
Deu error 301 na http request.
Então, não sei se tem a ver, mas instalei o plugin do Claudio Sanches do PagSeguro e fiz os mesmos testes, por lá eu consegui mudar os status no pagseguro e receber no wordpress sem problemas. Além de conseguir realizar a compra normalmente tbm, ou seja, parece ser algum problema na chamada do retorno do seu plugin, só não sei o que ainda, segue o log:
186.234.144.18 - - [23/Feb/2020:20:09:42 +0000] "POST /wc-api/WC_PagSeguro_Gateway/ HTTP/1.1" 200 30 "-" "Apache-HttpClient/4.3.3 (java 1.5)" "-"
Mais uma vez obrigado.
Veja a URL dele POST /wc-api/WC_PagSeguro_Gateway/
Sugiro que você tente colocar a sua: http://investrobos.com/wc-api/PGA_Gateway
Coloquei http://investrobos.com/wc-api/PGA_Gateway como url de retorno e agora consigo realizar compras novamente, porém o controle de status ainda não funciona, quando eu altero no pagseguro não chega no wordpress:
186.234.48.113 - - [23/Feb/2020:20:37:25 +0000] "POST /wc-api/PGA_Gateway HTTP/1.1" 301 169 "-" "Jakarta Commons-HttpClient/3.1" "-"
Nesse caso volte para a primeira URL e troque seu site para URL via parâmetros lá nas configurações ao invés de usar URL amigável.
Não entendi
Primeiro volte para a URL de notificação /?wc-api=PGA_Gateway
Depois em configurações, defina a opção padrão de URL.
https://www.hostgator.com.br/blog/urls-amigaveis-no-wordpress/
Voltou pro erro de sessão expirou:
2020/02/23 20:52:30 [error] 310#310: *1128 FastCGI sent in stderr: "PHP message: id was called incorrectly. Order properties should not be accessed directly. Backtrace: do_action('wp_ajax_nopriv_finalizarcompra'), WP_Hook->do_action, WP_Hook->apply_filters, PGA_Assinaturas->finalizar_compra, PGA_Assinaturas->pagamento, PGA_Assinaturas->registrar_assinatura, WC_Abstract_Legacy_Order->__get, wc_doing_it_wrong. This message was added in version 3.0.
PHP message: user_id was called incorrectly. Order properties should not be accessed directly. Backtrace: do_action('wp_ajax_nopriv_finalizarcompra'), WP_Hook->do_action, WP_Hook->apply_filters, PGA_Assinaturas->finalizar_compra, PGA_Assinaturas->pagamento, PGA_Assinaturas->registrar_assinatura, PGA_Gateway->change_status, WC_Abstract_Legacy_Order->__get, wc_doing_it_wrong. This message was added in version 3.0.
PHP message: id was called incorrectly. Order properties should not be accessed directly. Backtrace: do_action('wp_ajax_nopriv_finalizarcompra'), WP_Hook->do_action, WP_Hook->apply_filters, PGA_Assinaturas->finalizar_compra, PGA_Assinaturas->pagamento, PGA_Assinaturas->registrar_assinatura, PGA_Gateway->change_status, PGA_WC_Pagseguro_Messages::get_status_titulo, WC_Abstract_Legacy_Order->__get, wc_doing_it_wrong. This message was added in version 3.0" while reading response header from upstream, client: 201.51.65.130, server: investrobos.com, request: "POST /wp-admin/admin-ajax.php HTTP/1.1", upstream: "fastcgi://172.20.0.4:9000", host: "investrobos.com", referrer: "https://investrobos.com/?page_id=9&order-pay=19&key=wc_order_wwHTgS9U75mmC"
Acredito que essas mensagens sejam apenas avisos do PHP. Quanto a sessão encerrada acho que é por que vc está usando a conta enquanto faz seus testes. Faça o logoff e espere uns minutos
Estou testando as compras no modo navegação privada para não ter esse tipo de conflito, não acho que seja isso.
Consegui realizar a compra tentando novamente, mas o status continua sem sincronização.
Consegue postar um print da tela de configurações da URL do WordPress?
Claro, esse?
Ou esse?
Escolha a primeira opção "Padrão" e faça um novo teste
Estou tomando Sessão Expirada há uns 10 minutos.
Telas de network do erro de Sessão Expirada
Então, fiz o seguinte teste agora, tentei realizar a compra pelo plugin do Claudio Sanches (compra normal) e consegui ser redirecionado normalmente pro pagseguro, imediatamente após isso, voltei e tentei outra compra através do seu plugin de assinatura, quando foi redirecionar deu sessão expirada.
Bom dia san0suke,
Acabei de instalar seu plugin e simular uma compra (assinatura). Consegui finalizar sem problemas (adicionar ao carrinho, finalizar, ser redirecionado ao pagseguro e finalizar a compra com o comprador de testes), porém como padrão o Pagseguro no modo sandbox deixa o status da transação como "Aguardando pagamento" e o programador é livre para testar as alterações de status. Pois bem, realizei a alteração do status para "Paga", o Pagseguro enviou a notificação, porém não chegou no wordpress e tampouco alterou o status do pedido, conforme imagens abaixo:
Poderia me ajudar?
Obrigado.