API-3.0-PHP icon indicating copy to clipboard operation
API-3.0-PHP copied to clipboard

Projeto abandonado quem tiver com problemas dê uma olhada aqui.

Open JonhnyDev opened this issue 7 years ago • 21 comments

Bom vamos lá, o projeto está totalmente parado a 1 ano e tem alguns problemas que quem não tiver o minimo de conhecimento em php PDO simplesmente desiste, os exemplos dados no READ estão totalmente errados faltando codigo parece que "nego" deu ctrl+c - ctrl-v no primeiro exemplo e nem se quer se deu o trabalho de validar o código enfim. no meu caso em ESPECIFICO foi com recorrência! primeiro: pra poder usar a recorrência coloque em seu arquivo "use Cielo\API30\Ecommerce\RecurrentPayment;"

NUNCA use composer require "developercielo/api-3.0-php" está totalmente desatualizado a recorrencia não vai funcionar vai da erro de "unk status" na class cielo exception baixem por aqui que foi a ultima versão de janeiro: https://github.com/DeveloperCielo/API-3.0-PHP/releases/tag/v1.2.1

nela a recorrência irá funcionar.

vou ir testando as outras coisas e qualquer coisa eu atualizo.

JonhnyDev avatar Dec 16 '18 19:12 JonhnyDev

Essa release funcionou pra mim. So precisei substituir a pasta src/ Tambem precisa estar com os certificados devidamente instalados.

devasia2112 avatar Jan 11 '19 20:01 devasia2112

Enviei email pra eles sobre o assunto e eles confirmaram que a API sandbox deles está retornando UNK STATUS isso faz 20 dias falaram que iriam demorar 6 dias pra responder e até agora nada , quando pergunto sobre eles falam que precisam espera a resposta de quem desenvolve a API foda, nego contrata o pessoal como freela o bagulho fica ruim e não tem ninguem pra resolver , a solução milagrosa que eles deram foi "teste em habitante de produção" .... pfv né se fosse pra usar cartão verdadeiro e ter varias retiradas do meu cartão eu nem usaria o sandbox.... decepcionante.

JonhnyDev avatar Jan 13 '19 21:01 JonhnyDev

Também estou tendo problemas com o mesmo problema na Sandbox.

aldoanizio avatar Jan 25 '19 12:01 aldoanizio

No meu caso, o sandbox parou de funcionar logo apos ter sido homologado, antes disso estava funcionando. O meu problema foi em relacao ao codigo da recorrencia e aos certificados que acabei instalando manualmente no local errado, apos correcao funcionou como esperado.

devasia2112 avatar Jan 25 '19 14:01 devasia2112

O projeto realmente está abandonado, mas esse problema está ocorrendo no servidor sandbox da Cielo e não no projeto. Consegui descobrir o motivo do erro, aparentemente o servidor retorna erro 500 quando o holder não está setado, apesar de que a documentação diz que este campo não é obrigatório.

Solução: $payment->setHolder("Fulano de Tal");

JacksonBelizario avatar Feb 20 '19 19:02 JacksonBelizario

O projeto realmente está abandonado, mas esse problema está ocorrendo no servidor sandbox da Cielo e não no projeto. Consegui descobrir o motivo do erro, aparentemente o servidor retorna erro 500 quando o holder não está setado, apesar de que a documentação diz que este campo não é obrigatório.

Solução: $payment->setHolder("Fulano de Tal");

Se voce estiver usando o token do cartao para fazer a recorrencia, esse problema nao ocorre. Isso que voce colocou seria para uma venda simples, correto?

devasia2112 avatar Mar 16 '19 05:03 devasia2112

Não implementei usando token de cartão, apenas transações comuns e recorrências.

Esse erro ocorre no servidor de produção da Cielo também. E o correto seria:

$card->setHolder("Fulano de Tal");

JacksonBelizario avatar Mar 20 '19 19:03 JacksonBelizario

Não implementei usando token de cartão, apenas transações comuns e recorrências.

Esse erro ocorre no servidor de produção da Cielo também. E o correto seria:

$card->setHolder("Fulano de Tal");

Estou recebendo http code 500 mesmo passando o holder do cartão no sandbox para pagamento recorrente. Alguma sugestão?

lucvieira avatar Feb 10 '20 14:02 lucvieira

Resolvi! Liguei na Cielo e eles disseram que o teste com o pagamento recorrente deve ser feito com um cartão real, apesar de não citar isso na documentação. Não é gerada nenhuma transação neste cartão.

lucvieira avatar Feb 10 '20 16:02 lucvieira

@lucvieira Mesmo problema por aqui. Testei a sua sugestão e retornou 77: Card Canceled e status 3 em uma tentativa e 99: Timed Out e status 0 em outra. Tudo em sandbox. Isso também aconteceu com você?

marcelo2605 avatar Feb 13 '20 12:02 marcelo2605

@lucvieira Mesmo problema por aqui. Testei a sua sugestão e retornou 77: Card Canceled e status 3 em uma tentativa e 99: Timed Out e status 0 em outra. Tudo em sandbox. Isso também aconteceu com você?

Aqui não retorna mais o erro 500. Porém sempre retorna "Denied". Pelo que eles me explicaram, só fazendo um "teste" em produção mesmo.

lucvieira avatar Feb 13 '20 13:02 lucvieira

Beleza, obrigado @lucvieira

marcelo2605 avatar Feb 15 '20 11:02 marcelo2605

Pra quem tiver sofrendo com o erro 500 em 2020.

use numero do cartao 545454545454 e o nome tem que ser "fulano de tal" Usar somente fulano vai dar erro.

Perdi algumas horas achando que eu estava errado

superflit avatar Mar 18 '20 15:03 superflit

Pra quem tiver sofrendo com o erro 500 em 2020.

use numero do cartao 545454545454 e o nome tem que ser "fulano de tal" Usar somente fulano vai dar erro.

Perdi algumas horas achando que eu estava errado

Ajudou demais.

GoDiMeN avatar Jun 16 '20 20:06 GoDiMeN

Pra quem tiver sofrendo com o erro 500 em 2020.

use numero do cartao 545454545454 e o nome tem que ser "fulano de tal" Usar somente fulano vai dar erro.

Perdi algumas horas achando que eu estava errado

Valeu man!

gabrielgarciasp avatar Jul 18 '20 20:07 gabrielgarciasp

eu to sofrenco com o erro 999 Cielo\API30\Ecommerce\Payment Object ( [serviceTaxAmount:Cielo\API30\Ecommerce\Payment:private] => [installments:Cielo\API30\Ecommerce\Payment:private] => 1 [interest:Cielo\API30\Ecommerce\Payment:private] => [capture:Cielo\API30\Ecommerce\Payment:private] => 1 [authenticate:Cielo\API30\Ecommerce\Payment:private] => [recurrent:Cielo\API30\Ecommerce\Payment:private] => [recurrentPayment:Cielo\API30\Ecommerce\Payment:private] => Cielo\API30\Ecommerce\RecurrentPayment Object ( [authorizeNow:Cielo\API30\Ecommerce\RecurrentPayment:private] => 1 [recurrentPaymentId:Cielo\API30\Ecommerce\RecurrentPayment:private] => [nextRecurrency:Cielo\API30\Ecommerce\RecurrentPayment:private] => [startDate:Cielo\API30\Ecommerce\RecurrentPayment:private] => 2021-01-25 10:12:11 [endDate:Cielo\API30\Ecommerce\RecurrentPayment:private] => [interval:Cielo\API30\Ecommerce\RecurrentPayment:private] => Monthly [amount:Cielo\API30\Ecommerce\RecurrentPayment:private] => [country:Cielo\API30\Ecommerce\RecurrentPayment:private] => [createDate:Cielo\API30\Ecommerce\RecurrentPayment:private] => [currency:Cielo\API30\Ecommerce\RecurrentPayment:private] => [currentRecurrencyTry:Cielo\API30\Ecommerce\RecurrentPayment:private] => [provider:Cielo\API30\Ecommerce\RecurrentPayment:private] => [recurrencyDay:Cielo\API30\Ecommerce\RecurrentPayment:private] => [successfulRecurrences:Cielo\API30\Ecommerce\RecurrentPayment:private] => [links:Cielo\API30\Ecommerce\RecurrentPayment:private] => [recurrentTransactions:Cielo\API30\Ecommerce\RecurrentPayment:private] => [reasonCode:Cielo\API30\Ecommerce\RecurrentPayment:private] => [reasonMessage:Cielo\API30\Ecommerce\RecurrentPayment:private] => [status:Cielo\API30\Ecommerce\RecurrentPayment:private] => )

[creditCard:Cielo\API30\Ecommerce\Payment:private] => Cielo\API30\Ecommerce\CreditCard Object
    (
        [cardNumber:Cielo\API30\Ecommerce\CreditCard:private] => 0000000000000001
        [holder:Cielo\API30\Ecommerce\CreditCard:private] => fulano de tal
        [expirationDate:Cielo\API30\Ecommerce\CreditCard:private] => 01/2023
        [securityCode:Cielo\API30\Ecommerce\CreditCard:private] => 123
        [saveCard:Cielo\API30\Ecommerce\CreditCard:private] => 
        [brand:Cielo\API30\Ecommerce\CreditCard:private] => Visa
        [cardToken:Cielo\API30\Ecommerce\CreditCard:private] => 
        [customerName:Cielo\API30\Ecommerce\CreditCard:private] => 
        [links:Cielo\API30\Ecommerce\CreditCard:private] => 
    )

[debitCard:Cielo\API30\Ecommerce\Payment:private] => 
[authenticationUrl:Cielo\API30\Ecommerce\Payment:private] => 
[tid:Cielo\API30\Ecommerce\Payment:private] => 
[proofOfSale:Cielo\API30\Ecommerce\Payment:private] => 
[authorizationCode:Cielo\API30\Ecommerce\Payment:private] => 
[softDescriptor:Cielo\API30\Ecommerce\Payment:private] => 
[returnUrl:Cielo\API30\Ecommerce\Payment:private] => 
[provider:Cielo\API30\Ecommerce\Payment:private] => 
[paymentId:Cielo\API30\Ecommerce\Payment:private] => 
[type:Cielo\API30\Ecommerce\Payment:private] => CreditCard
[amount:Cielo\API30\Ecommerce\Payment:private] => 20
[receivedDate:Cielo\API30\Ecommerce\Payment:private] => 
[capturedAmount:Cielo\API30\Ecommerce\Payment:private] => 
[capturedDate:Cielo\API30\Ecommerce\Payment:private] => 
[voidedAmount:Cielo\API30\Ecommerce\Payment:private] => 
[voidedDate:Cielo\API30\Ecommerce\Payment:private] => 
[currency:Cielo\API30\Ecommerce\Payment:private] => 
[country:Cielo\API30\Ecommerce\Payment:private] => 
[returnCode:Cielo\API30\Ecommerce\Payment:private] => 
[returnMessage:Cielo\API30\Ecommerce\Payment:private] => 
[status:Cielo\API30\Ecommerce\Payment:private] => 
[links:Cielo\API30\Ecommerce\Payment:private] => 
[extraDataCollection:Cielo\API30\Ecommerce\Payment:private] => 
[expirationDate:Cielo\API30\Ecommerce\Payment:private] => 
[url:Cielo\API30\Ecommerce\Payment:private] => 
[number:Cielo\API30\Ecommerce\Payment:private] => 
[boletoNumber:Cielo\API30\Ecommerce\Payment:private] => 
[barCodeNumber:Cielo\API30\Ecommerce\Payment:private] => 
[digitableLine:Cielo\API30\Ecommerce\Payment:private] => 
[address:Cielo\API30\Ecommerce\Payment:private] => 
[assignor:Cielo\API30\Ecommerce\Payment:private] => 
[demonstrative:Cielo\API30\Ecommerce\Payment:private] => 
[identification:Cielo\API30\Ecommerce\Payment:private] => 
[instructions:Cielo\API30\Ecommerce\Payment:private] => 

)

fabricioweb avatar Jan 25 '21 13:01 fabricioweb

eu to usando json, e no postman e no meu código, não funciona a recorrência programada, dá erro 500. Alguém pode me ajudar?

pachecotatih avatar Jan 28 '21 14:01 pachecotatih

eu to usando json, e no postman e no meu código, não funciona a recorrência programada, dá erro 500. Alguém pode me ajudar?

posso, troca de gateway, paypal, pagar-me, mercado pago existem varias que tem tanto um uma doc bem feita como um sistema sem bug, eu reclamei do bug no dia " JonhnyDev commented on 16 Dec 2018" a 3 ANOS atrás. e nesses 3 anos não houve nenhum commit de correção, melhoria nem nada você realmente quer colocar um sistema abandonado no seu projeto? não faça isso com você mesma nem com o seu sistema.

JonhnyDev avatar Jan 29 '21 04:01 JonhnyDev

Pra quem tiver sofrendo com o erro 500 em 2020.

use numero do cartao 545454545454 e o nome tem que ser "fulano de tal" Usar somente fulano vai dar erro.

Perdi algumas horas achando que eu estava errado

Deu certo pra mim, mas foi só o número de cartão mesmo, o nome eu passei outro e funcionou.

JuniorNunes7 avatar Jun 01 '21 19:06 JuniorNunes7

Aqui deu certo também mudei apenas o cartão conforme o superflit mencionou.. Segue curl para quem quizer fazer um teste..

Obs, adicionar o merchantId e merchantkey no header...

curl --location --request POST 'https://apisandbox.cieloecommerce.cielo.com.br/1/sales/'
--header 'merchantId: merchantId'
--header 'merchantkey: merchantkey'
--header 'Content-Type: application/json'
--data-raw '{ "MerchantOrderId":"1c5420af-9e62-4565-a5d8-4665e4ffd5c1", "Customer":{ "Name":"Jeferson Martins" }, "Payment":{ "Installments":1, "Recurrent":true, "RecurrentPayment":{ "StartDate":"2021-08-09", "Interval":"Monthly", "AuthorizeNow":true }, "CreditCard":{ "CardNumber":"5454545454545454", "Holder":"Jeferson Martins", "ExpirationDate":"12/2022", "SecurityCode":"331", "SaveCard":true, "Brand":"Master" }, "SoftDescriptor":"LOJA", "Type":"CreditCard", "Amount":33700 } }'

profitgsilva avatar Jul 09 '21 20:07 profitgsilva

Pessoal. Estou fazendo testes no ambiente sandbox com os cartões de teste disponíveis na documentação. Segue a tabela dos cartões para teste:

Mostrar tabela
STATUS DA TRANSAÇÃO FINAL DO CARTÃO CÓDIGO DE RETORNO MENSAGEM DE RETORNO
Autorizado 0000.0000.0000.0001 / 0000.0000.0000.0004 4/6 Operação realizada com sucesso
Não Autorizado 0000.0000.0000.0002 05 Não Autorizada
Não Autorizado 0000.0000.0000.0003 57 Cartão Expirado
Não Autorizado 0000.0000.0000.0005 78 Cartão Bloqueado
Não Autorizado 0000.0000.0000.0006 99 Time Out
Não Autorizado 0000.0000.0000.0007 77 Cartão Cancelado
Não Autorizado 0000.0000.0000.0008 70 Problemas com o Cartão de Crédito
Autorização Aleatória 0000.0000.0000.0009 99 Operation Successful / Time Out

Porém, ao criar uma recorrência usando o cartão de teste Autorizado, e passando capture como true e o authorizeNow como true, o status de retorno volta com algumas contradições.

Mostrar requisição
{  
   "MerchantOrderId":"2014111701",
    "Customer":{  
      "Name":"Comprador Teste",
      "Identity":"11225468954",
      "IdentityType":"CPF",
      "Email":"[email protected]",
      "Birthdate":"1991-01-02",
      "Address":{  
         "Street":"Rua Teste",
         "Number":"123",
         "Complement":"AP 123",
         "ZipCode":"12345987",
         "City":"Rio de Janeiro",
         "State":"RJ",
         "Country":"BRA"
      },
        "DeliveryAddress": {
            "Street": "Rua Teste",
            "Number": "123",
            "Complement": "AP 123",
            "ZipCode": "12345987",
            "City": "Rio de Janeiro",
            "State": "RJ",
            "Country": "BRA"
        }
   },
   "Payment":{  
     "Type":"CreditCard",
     "Amount":15700,
     "Currency":"BRL",
     "Country":"BRA",
     "Provider":"Simulado",
     "ServiceTaxAmount":0,
     "Installments":1,
     "Interest":"ByMerchant",
     "Capture":true,
     "Authenticate":false,    
     "Recurrent": false,
     "RecurrentPayment":{
       "AuthorizeNow":true,
       "EndDate":"2025-12-01",
       "Interval":"Monthly"
     },
     "SoftDescriptor":"123456789ABCD",
     "CreditCard":{  
         "CardNumber":"0000000000000001",
         "Holder":"Teste Holder",
         "ExpirationDate":"12/2025",
         "SecurityCode":"123",
         "SaveCard":"false",
         "Brand":"Visa"
     }
   }
}

O Status do pagamento volta como 2 (PaymentConfirmed), porém o ReasonCode do RecurrentPayment retorna como 7 (Denied).

Mostrar resposta

{
    "MerchantOrderId": "2014111701",
    "Customer": {
        "Name": "Comprador Teste",
        "Identity": "11225468954",
        "IdentityType": "CPF",
        "Email": "[email protected]",
        "Birthdate": "1991-01-02",
        "Address": {
            "Street": "Rua Teste",
            "Number": "123",
            "Complement": "AP 123",
            "ZipCode": "12345987",
            "City": "Rio de Janeiro",
            "State": "RJ",
            "Country": "BRA"
        },
        "DeliveryAddress": {
            "Street": "Rua Teste",
            "Number": "123",
            "Complement": "AP 123",
            "ZipCode": "12345987",
            "City": "Rio de Janeiro",
            "State": "RJ",
            "Country": "BRA"
        }
    },
    "Payment": {
        "ServiceTaxAmount": 0,
        "Installments": 1,
        "Interest": 0,
        "Capture": true,
        "Authenticate": false,
        "Recurrent": false,
        "CreditCard": {
            "CardNumber": "000000******0001",
            "Holder": "Teste Holder",
            "ExpirationDate": "12/2025",
            "SaveCard": false,
            "Brand": "Visa"
        },
        "Tid": "0806120617339",
        "ProofOfSale": "721656",
        "AuthorizationCode": "404920",
        "SoftDescriptor": "123456789ABCD",
        "Provider": "Simulado",
        "IsQrCode": false,
        "Amount": 15700,
        "ReceivedDate": "2021-08-06 12:06:17",
        "CapturedAmount": 15700,
        "CapturedDate": "2021-08-06 12:06:17",
        "RecurrentPayment": {
            "ReasonCode": 7,
            "ReasonMessage": "Denied",
            "EndDate": "2025-12-01",
            "Interval": 1,
            "AuthorizeNow": true
        },
        "Status": 2,
        "IsSplitted": false,
        "ReturnMessage": "Operation Successful",
        "ReturnCode": "6",
        "PaymentId": "dd1c6eaf-5cec-4024-b037-51b9fd0729c3",
        "Type": "CreditCard",
        "Currency": "BRL",
        "Country": "BRA",
        "Links": [
            {
                "Method": "GET",
                "Rel": "self",
                "Href": "https://apiquerysandbox.cieloecommerce.cielo.com.br/1/sales/dd1c6eaf-5cec-4024-b037-51b9fd0729c3"
            },
            {
                "Method": "PUT",
                "Rel": "void",
                "Href": "https://apisandbox.cieloecommerce.cielo.com.br/1/sales/dd1c6eaf-5cec-4024-b037-51b9fd0729c3/void"
            }
        ]
    }
}

A pergunta é, como lidar com os erros se em uma parte retorna sucesso e em outra negado? O pagamento ocorreu de fato ou foi negado?

Se foi negado, por que retornou Status 2 (PaymentConfirmed) ?

Pode me ajudar aqui? @netojoaobatista

andreomcn avatar Aug 06 '21 15:08 andreomcn