SecurityCode length exceeded em cartão tokenizado
Olá, de uns tempos pra cá percebemos que nossas operações de débito utilizando cartões tokenizados retornam o erro "SecurityCode length exceeded". Isso não acontecia antes e agora está ocorrendo em todos os cartões tokenizados (mesmo aqueles que já funcionavam nessa modalidade antes). Revi todo o processo e não encontrei justificativa para esse comportamento. Os cartões funcionam perfeitamente na modalidade crédito. Abaixo o trecho em que o cartão é tokenizado:
$card = new CreditCard();
if($this->user->razao_social) $card->setCustomerName($this->user->razao_social );
else $card->setCustomerName($this->user->firstname . ' ' . $this->user->lastname );
$card->setCardNumber($ccNumber);
$card->setHolder($ccNome);
$card->setExpirationDate($ccMonth.'/'.$ccYear);
$card->setBrand($ccProcessor);
if($ccCvv) $card->setSecurityCode($ccCvv);
Mesmo para operações de débito o cartão era tokenizado dessa forma e funcionava.
A venda é realizada pelo trecho abaixo:
$merchant = new Merchant($this->merchant_id, $this->merchant_key);
$sale = new Sale($transaction->id);
$customer = $sale->customer($this->user->firstname . ' ' . $this->user->lastname);
$payment = $sale->payment($transaction->value * 100);
$ccProcessor = null;
switch ($credit_card->processor) {
case 'MASTERCARD':
$ccProcessor = CreditCard::MASTERCARD;
break;
case 'AMERICAN EXPRESS':
$ccProcessor = CreditCard::AMEX;
break;
case 'ELO':
$ccProcessor = CreditCard::ELO;
break;
case 'VISA':
$ccProcessor = CreditCard::VISA;
break;
}
if ($request->input('credito_debito') == 'D') {
$payment->setReturnUrl('http://...);
$payment->setAuthenticate(true);
$payment->setType(Payment::PAYMENTTYPE_DEBITCARD);
$payment->debitCard($transaction->id, $ccProcessor)
->setCardToken($credit_card->token);
} else {
$payment->setType(Payment::PAYMENTTYPE_CREDITCARD)
//->creditCard($transaction->id, $ccProcessor)
->creditCard(null, $ccProcessor)
->setCardToken($credit_card->token);
}
try {
$sale = (new CieloEcommerce($merchant, $this->environment))->createSale($sale);
$paymentId = $sale->getPayment()->getPaymentId();
} catch (CieloRequestException $e) {
$error = $e->getCieloError();
return response()->json(json_encode($error), 422);
}
Achei esse comportamento estranho porque de repente parace que parou sem termos feito nada.
Obrigado.
@andelorme Boa Tarde!
O erro pode estar acontecendo no código de segurança do cartão, lembrando que ele só aceita no máximo 4 números, você chegou a verificar?
Att Ahmad Abdouni
Também estou tendo o mesmo problema de SecurityCode length exceeded
Não me recordo como resolvi isso. Mas o problema era outro. Esse código de erro me despistou do problema real que era alguma coisa bem boba. Reveja seus dados, se estiver usando sandbox, renove a chave e refaça o processo.
Em qua, 12 de ago de 2020 17:12, Gildonei Mendes Anacleto Junior < [email protected]> escreveu:
Também estou tendo o mesmo problema de SecurityCode length exceeded
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/DeveloperCielo/API-3.0-PHP/issues/159#issuecomment-673086379, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABGIQJFBFJN5FHBAYYRUMKTSALZRFANCNFSM4JDKERHQ .
Não me recordo como resolvi isso. Mas o problema era outro. Esse código de erro me despistou do problema real que era alguma coisa bem boba. Reveja seus dados, se estiver usando sandbox, renove a chave e refaça o processo. Em qua, 12 de ago de 2020 17:12, Gildonei Mendes Anacleto Junior < [email protected]> escreveu: … Também estou tendo o mesmo problema de SecurityCode length exceeded — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#159 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABGIQJFBFJN5FHBAYYRUMKTSALZRFANCNFSM4JDKERHQ .
Obrigado pela dica de que tinha resolvido. Dei uma revisada aqui com mais calma e observei que a bandeira estava indo trocada e por isso validou a quantidade de caracteres do CVV de forma errônea