Comments (10)
Consegui resolver o problema. Muito estranho, era um problema com a função get/post do PHP.
Os dados da requisição não estavam sendo enviados para a API do pagar.me (https://api.pagar.me/1/transactions/calculate_installments_amount).
Para resolver eu alterei a função do_request no arquivo class-wc-pagarme-api.php da maneira abaixo.
Inserindo um '?' . $data eu forço o envio dos dados via get.
Caso alguém mais esteja tendo o mesmo problema, acho que vale a pena alterar esse código no master.
protected function do_request( $endpoint, $method = 'POST', $data = array(), $headers = array() ) {
$params = array(
'method' => $method,
'timeout' => 60
);
if ( ! empty( $headers ) ) {
$params['headers'] = $headers;
}
if($method == 'GET'){
return wp_safe_remote_get( $this->get_api_url() . $endpoint . '?' . $data, $params );
} else {
if ( ! empty( $data ) ) {
$params['body'] = $data;
}
return wp_safe_remote_post( $this->get_api_url() . $endpoint, $params );
}
}
from woocommerce-pagarme.
WordPress 4.6 atualizou toda a biblioteca que faz requests e mudaram como as coisas eram feitas, no caso pararam de testar se estava passando uma string antes de colocar no http_build_query()
, mas agora com a correção que fiz já funciona ok.
from woocommerce-pagarme.
Funciona sem problemas com o WordPress 4.6.
Mas isso é carregado usando JavaScript, então você já verificou o console do seu navegador?
from woocommerce-pagarme.
Um amigo também estava com problemas e pediu para eu olhar, e seu código resolveu o problema. Será que uma versão diferente do PHP ou até SO poderia gerar este comportamento?
Não sou expert em PHP, mas vale a pena olhar.
Obrigado mesmo assim.
Eder
from woocommerce-pagarme.
Olá Eder, bom saber que pude ajudar. =)
que versão do PHP ele está usando? E quando começou o problema?
Eu estou com a versão 5.6.24.
Achei algo bem interessante olhando nos changelogs do PHP. Esta correção do bug #71936 em específico mexe no código das requisições post e get.
Repare que a modificação é bem na parte de cópia dos dados:
+ if (!data) {
+ data = estrdup("");
+ }
Isso aí me acendeu uma luz.
Eu estou começando a achar que o problema começou quando o meu provedor (Hostgator) atualizou a versão do PHP, não quando eu atualizei o Wordpress.
from woocommerce-pagarme.
Cara, a versão do server que testei é a 7.0.9, no freehostia.com.
Quanto ao bug, acho que não tem relação, pois é apenas para corrigir um segfault, e apenas quando não existe o recebimento de dados.
Na minha opinião, o ideal seria debugar cada ponto da https://developer.wordpress.org/reference/functions/wp_safe_remote_get/ em diferentes versões de php, e até entre versões diferentes do WP. Tentar achar o ponto entre eles. Vi umas reclamações de pessoas com problema após atualização do WP.
Abs
Eder
from woocommerce-pagarme.
@stefanfuchs estava com o mesmo problema aqui, porém estava utilizando o checkout transparente. Tive de desabilitar o plugin do Pagar.me e ativar o do PagSeguro. O ajuste no código pareceu corrigir o problema.
O erro começou a acontecer após a atualização para a versão 4.6 do WP. Estou rodando em uma VPS da DO com PHP 5.5.9 e não alteramos de versão do PHP.
from woocommerce-pagarme.
Boa tarde @claudiosmweb , consegue dar uma olhada nessa questão meu caro? Aplicando a correção do @stefanfuchs ou voltando à versão do método do_request
?
from woocommerce-pagarme.
@edinhojorge realmente, pensando bem parece que a atualização do PHP não tem relação mesmo.
Agora olhando o changelog da versão 4.6 do Wordpress também tem modificações na API do HTTP. Não cheguei a olhar o código, mas provavelmente deve ser esse o motivo dos problemas.
from woocommerce-pagarme.
@stefanfuchs Estava com seu mesmo problema, fiz a alteração que você postou acima e agora dá pra gerar parcelas sem qualquer tipo de erro. Estava com o problema desde a atualização 4.6 do WP.
Atualização: com essa alteração no código as parcelas eram geradas, mas ainda era impossível realizar compras. Fiz o downgrade do WP para a versão 4.5 e agora tudo funciona normalmente com o código original do plugin.
from woocommerce-pagarme.
Related Issues (20)
- Integração PIX HOT 12
- Desconto para compras em 1x no crédito no plugin do Pagar.me
- DDD ou número de telefone inválido HOT 3
- card js integração
- configurar taxas de juros diferentes de acordo com o número de parcelas HOT 1
- Pagarme + Subscriptions
- Personalizar campos com CSS
- Pagamento Recorrente
- Status de Pagamento fica em "aguardando" mesmo com pagamento aprovado. HOT 1
- Parcelamento Variável tabela Pagar.me
- Nova tentativa de pagamento não envia e-mail
- Possível Bug ao realizar transações HOT 1
- [Dúvida] O plugin trabalha com split_rules da API? HOT 3
- payment_method was called incorrectly
- [Duvida] Recorrencias com o SUMO Subscription HOT 2
- Tradução de Checkout de En-Us para Pt-Br HOT 4
- Bug when using dotenv
- Pagar.me para WooCommerce" has been removed from wordpress.org. HOT 1
- Suporte ao PHP 8.
- Status de pagamento não sai de Aguardando
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from woocommerce-pagarme.