verdadeiro-mestre/omnipay-cielo

Gateway de pagamentos Cielo

v1.0.0 2024-02-29 19:07 UTC

This package is auto-updated.

Last update: 2024-03-29 19:22:30 UTC


README

(Versão imcompleta de teste)

Este projeto visa implementar o gateway de pagamentos da Cielo no padrão Omnipay.

Instalação

A instalação é feita via Composer. Instale esse pacote juntamente com o pacote base do Omnipay (league/omnipay).

composer require league/omnipay verdadeiro-mestre/omnipay-cielo

Como usar

O seguinte gateway é fornecido por este pacote:

para a documentação das APIs da Cielo acesse: https://developercielo.github.io/en/manual/cielo-ecommerce

Organização

Foram criadas algumas classes para facilitar a organização dos dados:

use Omnipay\Cielo\Models\Address;
use Omnipay\Cielo\Models\Customer;
use Omnipay\Cielo\Models\CreditCard; //A classe CreditCard do Omnipay\Common não atendia aos uso necessário
use Omnipay\Cielo\Models\Payment;

Exemplos de utilização

Realizando transação com cartão de crédito

//Criando o gateway da Cielo por meio do Omnipay
$gateway = Omnipay::create("Cielo");

// inicializando o gateway
$gateway->initialize(array(
    "merchantId"        => "MyMerchantId",
    "merchantKey"       => "MyMerchantKey",
));

$address = new Address(array(
      "Street"          => "Rua Teste",
      "Number"          => "123",
      "Complement"      => "AP 123",
      "ZipCode"         => "12345987",
      "District"        => "Centro"
      "City"            => "Rio de Janeiro",
      "State"           => "RJ",
      "Country"         => "BRA"
));

$customer = new Customer(array(
      "Name"            => "Comprador Teste",
      "Identity"        => "1234567890",
      "Address"         => $address
));

$card = new CreditCard(array(
    "Holder"            => "Teste Holder",
    "CardNumber"        => "4012888888881881",
    "SecurityCode"      => "123",
    "ExpirationDate"    => "12/2030",
    "SaveCard"          => "false",
    "Brand"             => "Visa",
));

$payment = new Payment(array(
    "Type"              => "CreditCard",
    "Amount"            => "10.00",
    "Installments"      => 1,
    "CreditCard"        => $card,
));

//Realizando a transação
// o metodo purchase realiza a transação
// e o metodo authorize apenas autoriza a transação
$response = $gateway->purchase(array(
    "MerchantOrderId"   => "123456",
    "Customer"          => $customer,
    "Payment"           => $payment
))->send();

if($response->isSuccessful()){
    return $response->getData();
}

Realizando transação com boleto

//Criando o gateway da Cielo por meio do Omnipay
$gateway = Omnipay::create("Cielo");

// inicializando o gateway
$gateway->initialize(array(
    "merchantId"        => "MyMerchantId",
    "merchantKey"       => "MyMerchantKey",
));

$address = new Address(array(
      "Street"          => "Rua Teste",
      "Number"          => "123",
      "Complement"      => "AP 123",
      "ZipCode"         => "12345987",
      "District"        => "Centro",
      "City"            => "Rio de Janeiro",
      "State"           => "RJ",
      "Country"         => "BRA"
));

$customer = new Customer(array(
      "Name"            => "Comprador Teste",
      "Identity"        => "1234567890",
      "Address"         => $address
));

$payment = new Payment(array(
    "Type"              => "Boleto",
    "Amount"            => 15700,
    "Provider"          => "Bradesco2",
    "Address"           => "Rua Teste",
    "BoletoNumber"      => "123",
    "Assignor"          => "Empresa Teste",
    "Demonstrative"     => "Desmonstrative Teste",
    "ExpirationDate"    => "2020-12-31",
    "Identification"    => "11884926754",
    "Instructions"      => "Aceitar somente até a data de vencimento, após essa data juros de 1% dia."
));

//Realizando a transação
// o metodo purchase realiza a transação
// e o metodo authorize apenas autoriza a transação
$response = $gateway->purchase(array(
    "MerchantOrderId"   => "123456",
    "Customer"          => $customer,
    "Payment"           => $payment
))->send();

if($response->isSuccessful()){
    return $response->getData();
}

Tokenização de cartão

//Criando o gateway da Cielo por meio do Omnipay
$gateway = Omnipay::create("Cielo");

// inicializando o gateway
$gateway->initialize(array(
    "merchantId"        => "MyMerchantId",
    "merchantKey"       => "MyMerchantKey",
));

$response = $gateway->createCardToken(array(
    "CustomerName"      => "Armando",
    "CardNumber"        => "4012888888881881",
    "Holder"            => "Teste Holder",
    'ExpirationDate'    => '12/2030',
    'Brand'             => 'Visa'
))->send();

if($response->isSuccessful()){
    return $response->getData();
}

Modo de teste

Para ativar o modo sandbox das APIs da Cielo faça da seguinte forma:

$gateway->initialize(array(
    "testMode"      => true,    //Habilita o modo sandbox
    "merchantId"        => "MyMerchantId",
    "merchantKey"       => "MyMerchantKey",
));