Skip to content

2.3 Cartão de Crédito

Fernando Henrique Bandeira edited this page Oct 25, 2017 · 6 revisions

O cartão de crédito precisa de alguns dados a mais, precisa da chamada aos métodos setCreditCardHolder() e setBillingAddress()

Note que mesmo que o cliente seja uma pessoa jurídica é necessário informar um CPF para o setCreditCardHolder().

Além disso caso você chame estes métodos após o setSenderInfo() e setShippingAddress() os mesmos podem ser reduzidos, caso você não passe todos os parâmetros, os faltantes serão preenchidos com os definidos nestes outros 2 métodos:

use PagSeguro; //Utilize a Facade

$pagseguro = PagSeguro::setReference('ID do pedido')
->setSenderInfo([
  'senderName' => 'Nome Completo', //Deve conter nome e sobrenome
  'senderPhone' => '(32) 1324-1421', //Código de área enviado junto com o telefone
  'senderEmail' => 'email@email.com',
  'senderHash' => 'Hash gerado pelo javascript',
  'senderCPF' => '123.456.789-00' //Ou CNPJ se for Pessoa Júridica
])
->setCreditCardHolder([
  'creditCardHolderName' => 'Nome Completo', //Deve conter nome e sobrenome
  'creditCardHolderPhone' => '(32) 1324-1421', //Código de área enviado junto com o telefone
  'creditCardHolderCPF' => '123.456.789-00', //Ou CNPJ se for Pessoa Júridica
  'creditCardHolderBirthDate' => '10/02/2000',
])
->setShippingAddress([ // OPCIONAL
  'shippingAddressStreet' => 'Rua/Avenida',
  'shippingAddressNumber' => 'Número',
  'shippingAddressDistrict' => 'Bairro',
  'shippingAddressPostalCode' => '12345-678',
  'shippingAddressCity' => 'Cidade',
  'shippingAddressState' => 'UF'
])
->setBillingAddress([
  'billingAddressStreet' => 'Rua/Avenida',
  'billingAddressNumber' => 'Número',
  'billingAddressDistrict' => 'Bairro',
  'billingAddressPostalCode' => '12345-678',
  'billingAddressCity' => 'Cidade',
  'billingAddressState' => 'UF'
])
->setItems([
  [
    'itemId' => 'ID',
    'itemDescription' => 'Nome do Item',
    'itemAmount' => 12.14, //Valor unitário
    'itemQuantity' => '2', // Quantidade de itens
  ],
  [
    'itemId' => 'ID 2',
    'itemDescription' => 'Nome do Item 2',
    'itemAmount' => 12.14,
    'itemQuantity' => '2',
  ]
])
->send([
  'paymentMethod' => 'creditCard',
  'creditCardToken' => 'Vem do Javascript',
  'installmentQuantity' => '2',
  'installmentValue' => 50.20,
]);

Pode-se reduzir para

use PagSeguro; //Utilize a Facade

$pagseguro = PagSeguro::setReference('ID do pedido')
->setSenderInfo([
  'senderName' => 'Nome Completo', //Deve conter nome e sobrenome
  'senderPhone' => '(32) 1324-1421', //Código de área enviado junto com o telefone
  'senderEmail' => 'email@email.com',
  'senderHash' => 'Hash gerado pelo javascript',
  'senderCPF' => '123.456.789-00' //Ou CNPJ se for Pessoa Júridica
])
->setCreditCardHolder([
  'creditCardHolderBirthDate' => '10/02/2000',
])
->setShippingAddress([
  'shippingAddressStreet' => 'Rua/Avenida',
  'shippingAddressNumber' => 'Número',
  'shippingAddressDistrict' => 'Bairro',
  'shippingAddressPostalCode' => '12345-678',
  'shippingAddressCity' => 'Cidade',
  'shippingAddressState' => 'UF'
])
->setItems([
  [
    'itemId' => 'ID',
    'itemDescription' => 'Nome do Item',
    'itemAmount' => 12.14, //Valor unitário
    'itemQuantity' => '2', // Quantidade de itens
  ],
  [
    'itemId' => 'ID 2',
    'itemDescription' => 'Nome do Item 2',
    'itemAmount' => 12.14,
    'itemQuantity' => '2',
  ]
])
->send([
  'paymentMethod' => 'creditCard',
  'creditCardToken' => 'Vem do Javascript',
  'installmentQuantity' => '2',
  'installmentValue' => 50.20,
]);

Caso este produto não será entregue ao consumidor, ainda assim deve ser informado o endereço de cobrança utilizando o método setBillingAddress.

Opcionalmente pode-se passar mais um parâmetro noInterestInstallmentQuantity no método send, este parâmetro define quantas parcelas sem juros serão consideradas na hora de calcular os juros do cartão. Note que se não for passado este parâmetro será utilizado o padrão na conta, e o mesmo também deve ser passado no javascript na hora de calcular a parcela.