iugu / iugu-php

iugu - Biblioteca para PHP
MIT License
89 stars 65 forks source link

Todas as transações da API falham após a atualização para a version 1.0.7 #64

Open HelderCondeNP opened 6 months ago

HelderCondeNP commented 6 months ago

Estou com um problema sério com a API da Iugu, para o qual solicito urgentemente a ajuda de vocês.

Minha plataformaestá no ar desde 2018, funcionando com a Iugu, sem problemas. As transações via API sempre funcionaram normalmente.

Porém, notei que desde 01/03/2024 (última sexta-feira), todas as transações com a API da Iugu estão falhando - em ambos os sentidos (de nós para a Iugu e vice-versa). Como resultado, estamos ficando sem as notificações de pagamentos, notificações de criação de faturas, alterações de status de assinatura, criação de novas assinaturas, entre outros. É um problema sério, que afeta muito o nosso negócio.

Coincidentemente, na última sexta-feira (01/03) notei que a Iugu lançou uma nova versão da Biblioteca PHP (versão 1.0.7), aparentemente criada para resolver problemas de SSL. No entanto, mesmo fazendo a atualização da biblioteca, o problema continua ocorrendo - e todas as transações via API falham.

Vale informar que as transações até 29/02 (dia anterior) funcionaram normalmente.

Vocês podem, por favor, me ajudar com essa questão? Além da atualização da biblioteca PHP, seria necessário fazer alguma outra alteração?

Fico no aguardo e agradeço antecipadamente!

pnegri commented 6 months ago

Pf tente novamente atualizar. Subi a versão no packagist.

HelderCondeNP commented 6 months ago

Eu fiz novamente a atualização (estou com a versão 1.0.7) e notei uma correção apenas parcial.

Hoje (06 de Março 2024), entre 08h e 08h30 da manhã notei que as transações voltaram a funcionar:

  1. Primeiro apenas no sentido da iugu para a minha aplicação
  2. Depois em ambos os sentidos
  3. Depois, tudo parou novamente
  4. E, por volta das 09h, voltou novamente a funcionar no sentido da iugu para a minha aplicação; mas não no sentido inverso.

Ainda parece estar havendo algo - que foi corrigido temporariamente entre as 08h e 08h30 - que está impedindo a comunicação da minha aplicação com a iugu.

Vale ressaltar que nada foi alterado na minha aplicação, durante o período em que tudo foi normalizado.

Podem me ajudar? Estamos progredindo, mas ainda não está 100%. Agradeço o auxílio!

HelderCondeNP commented 6 months ago

Tenho algumas informações adicionais que podem ser úteis.

Eu consigo usar corretamente a API usando os exemplos de código PHP disponíveis em https://dev.iugu.com/reference.

Observe que o código abaixo (baseado em https://dev.iugu.com/reference) usa o GuzzleHttp para fazer o acesso à API. Basta adicionar o parâmetro 'verify' => false para forçar o GuzzleHttp a não fazer a verificação SSL. Com isso, os dados chegam corretamente...

<?php
require_once('../vendor/autoload.php');

$client = new \GuzzleHttp\Client(['verify' => false]); //Observe aqui o parâmetro verify = false, para forçar o GuzzleHttp a não verificar o SSL

$response = $client->request('GET', 'https://api.iugu.com/v1/customers/91AE2D1D11904E2C8924BC6FB78BDDC0?api_token=XXXXXXXXXXXXXXXXXXXXXXX', [
  'headers' => [
    'accept' => 'application/json',
  ],
]);

echo $response->getBody();

Porém, os exemplos que estão disponíveis aqui no Git (na pasta "tests") parecem não utilizar o GuzzleHttp - e minha aplicação também não. Com isso, não consigo remover a verificação do SSL.

Uma sugestão à equipe da Iugu é tentar fazer testes usando os exemplos fornecidos aqui na pasta "tests" do Git.

Fico no aguardo. Obrigado!

williamxsp commented 6 months ago

@HelderCondeNP tenta remover a pasta vendor e reinstalar tudo novamente com o composer install.

Confere se em vendor/iugu-php/lib/Iugu/APIRequest.php não tem essa linha $opts[CURLOPT_CAINFO] = realpath(dirname(FILE).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'data').DIRECTORY_SEPARATOR.'ca-bundle.crt';

Foi isso que a iugu removeu no último commit que resolve o problema do certificado: https://github.com/iugu/iugu-php/commit/a2105b09d8d0260a68497a949303c3f97f0823e2

gabriel-camargo commented 6 months ago

Olá! Gostaria de complementar que estou com o mesmo problema. Mesmo atualizando o pacote para a versão 1.0.7, o erro IuguObjectNotFound continua sendo exibido em todas as requisições.

Só consegui resolver alterando no arquivo lib/Iugu/APIRequest.php a configuração $opts[CURLOPT_SSL_VERIFYPEER] para false.

williamxsp commented 6 months ago

@gabriel-camargo antes da iugu subir essa atualização eu troquei o ca-bundle.crt pelo que tá no repositório do Wordpress e resolveu pra mim.

Testa trocar o arquivo do certificado da iugu (ca-bundle.crt) pelo que o Wordpress usa https://github.com/WordPress/WordPress/blob/master/wp-includes/certificates/ca-bundle.crt

Mantendo o VERIFYPEER como true e essa linha que foi removida na última atualização: $opts[CURLOPT_CAINFO] = realpath(dirname(FILE).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'data').DIRECTORY_SEPARATOR.'ca-bundle.crt';

paulocosta94 commented 5 months ago

Olá! Gostaria de complementar que estou com o mesmo problema. Mesmo atualizando o pacote para a versão 1.0.7, o erro IuguObjectNotFound continua sendo exibido em todas as requisições.

Só consegui resolver alterando no arquivo lib/Iugu/APIRequest.php a configuração $opts[CURLOPT_SSL_VERIFYPEER] para false.

Encontrou alguma solução sem precisar mudar o package?