Projeto abandonado quem tiver com problemas dê uma olhada aqui.
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.
Essa release funcionou pra mim. So precisei substituir a pasta src/ Tambem precisa estar com os certificados devidamente instalados.
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.
Também estou tendo problemas com o mesmo problema na Sandbox.
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.
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");
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?
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");
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?
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 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ê?
@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.
Beleza, obrigado @lucvieira
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
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.
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!
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] =>
)
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?
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.
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.
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
}
}'
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