API-3.0-PHP
API-3.0-PHP copied to clipboard
Cartão de Débito: retorno da URL de autenticação não implementado, retorna sempre nulo
O seguinte código no exemplo de transações com cartão de débito, sempre retorna nula a URL de autenticação. Pelo que verifiquei no fonte do SDK, o método que seta o valor dessa URL não é chamado, ou seja, essa funcionalidade não está devidamente implementada. Mas pode ser também um erro na API principal.
// Utilize a URL de autenticação para redirecionar o cliente ao ambiente // de autenticação do emissor do cartão $authenticationUrl = $sale->getPayment()->getAuthenticationUrl();
O readme está incompleto nesta parte: Ajuste para isto, e vai funcionar.
$payment->setAuthenticate(TRUE)
->setType( Payment::PAYMENTTYPE_DEBITCARD )
->debitCard($data->creditCardCvv, cielo::CARD_FLAGS[$keyFlag])
->setExpirationDate( "$data->creditCardMonth/$data->creditCardYear" )
->setCardNumber($data->creditCardNumber)
->setHolder($data->creditCardName);
Precisa ser passado: ->setAuthenticate(TRUE) ->setType( Payment::PAYMENTTYPE_DEBITCARD )
Aproveitando esta thread, tenho outra dúvida (caso não seja o lugar apropriado, peço desculpas). Depois que pego a url de autenticação, eu vou até ela e peço pra autorizar, então ela me retorna um post com o payment id. Mas quando peço pra não autorizar, volta o mesmo post com o payment ID. Como vou saber quando está autorizado ou não?
Quando você cria uma transação no débito no retorno da requisição se ocorrer tudo certo já vai existir o payment id Então a qualquer momento você pode fazer uma consulta com o payment id e checar se o status da transação esta pago.
$cieloEcommerce->getSale($paymentId);
Muito obrigado pelo retorno.
Então eu deveria fazer um cron ou algo assim para validar essa compra? Então se o usuário não colocar a senha corretamente, ou não tiver saldo, etc, existe algum tipo de especificação?
Então é normal que o post de retorno do Provider tenha somente o payment id? Daí eu faço uma pesquisa com ele pra ver se o usuário finalizou o pagamento. É isso, não é?
Então é normal que o post de retorno do Provider tenha somente o payment id? Daí eu faço uma pesquisa com ele pra ver se o usuário finalizou o pagamento. É isso, não é?
Isso mesmo, no seu ReturnUrl você deve fazer uma consulta para verificar o status da transação, também é bom ter uma cron verificando, caso haja algum problema no processo de retorno.