tecnoponto/cielo

v1.3.0 2024-07-26 20:18 UTC

This package is auto-updated.

Last update: 2024-09-04 17:43:11 UTC


README

SDK API-3.0 PHP

从ciareis/cielo-api-3.0-php包分叉的包

最初,此包是从ciareis/cielo-api-3.0-php包衍生出来的,增加了新功能。

主要功能

  • 信用卡支付。
  • 定期支付。
    • 首次 recurring 允许授权。
    • 从首次 recurring 起允许授权。
    • 支付数据更新
    • 更改支付日
    • 更改 recurring 的值
  • 借记卡支付。
  • 支票支付。
  • Pix 支付。
  • 电子转账支付。
  • 取消授权。
  • 支付查询。
  • 卡令牌化。

限制

由于涉及应用程序的用户界面,SDK 仅作为创建交易的框架工作。在直接授权的情况下没有限制;但在需要用户认证或任何类型用户重定向的情况下,开发者应使用 SDK 生成支付,并使用 Cielo 返回的链接提供用户重定向。

依赖关系

  • PHP >= 5.6

安装 SDK

composer require "tecnoponto/cielo"

支持的产品和标志及其常量

<?php
require 'vendor/autoload.php';

use Tecnoponto\Cielo\API30\Ecommerce\CreditCard;

使用 SDK

使用 SDK 创建简单的信用卡支付,只需执行以下操作

创建信用卡支付

<?php
require 'vendor/autoload.php';

use Tecnoponto\Cielo\API30\Merchant;

use Tecnoponto\Cielo\API30\Ecommerce\Environment;
use Tecnoponto\Cielo\API30\Ecommerce\Sale;
use Tecnoponto\Cielo\API30\Ecommerce\CieloEcommerce;
use Tecnoponto\Cielo\API30\Ecommerce\Payment;
use Tecnoponto\Cielo\API30\Ecommerce\CreditCard;

use Tecnoponto\Cielo\API30\Ecommerce\Request\CieloRequestException;
// ...
// Configure o ambiente
$environment = $environment = Environment::sandbox();

// Configure seu merchant
$merchant = new Merchant('MERCHANT ID', 'MERCHANT KEY');

// Crie uma instância de Sale informando o ID do pedido na loja
$sale = new Sale('123');

// Crie uma instância de Customer informando o nome do cliente
$customer = $sale->customer('Fulano de Tal');

// Crie uma instância de Payment informando o valor do pagamento
$payment = $sale->payment(15700);

// Crie uma instância de Credit Card utilizando os dados de teste
// esses dados estão disponíveis no manual de integração
$payment->setType(Payment::PAYMENTTYPE_CREDITCARD)
        ->creditCard("123", CreditCard::VISA)
        ->setExpirationDate("12/2018")
        ->setCardNumber("0000000000000001")
        ->setHolder("Fulano de Tal");

// Crie o pagamento na Cielo
try {
    // Configure o SDK com seu merchant e o ambiente apropriado para criar a venda
    $sale = (new CieloEcommerce($merchant, $environment))->createSale($sale);

    // Com a venda criada na Cielo, já temos o ID do pagamento, TID e demais
    // dados retornados pela Cielo
    $paymentId = $sale->getPayment()->getPaymentId();

    // Com o ID do pagamento, podemos fazer sua captura, se ela não tiver sido capturada ainda
    $sale = (new CieloEcommerce($merchant, $environment))->captureSale($paymentId, 15700, 0);

    // E também podemos fazer seu cancelamento, se for o caso
    $sale = (new CieloEcommerce($merchant, $environment))->cancelSale($paymentId, 15700);
} catch (CieloRequestException $e) {
    // Em caso de erros de integração, podemos tratar o erro aqui.
    // os códigos de erro estão todos disponíveis no manual de integração.
    $error = $e->getCieloError();
}
// ...

创建支付并生成信用卡令牌

<?php
require 'vendor/autoload.php';

use Tecnoponto\Cielo\API30\Merchant;

use Tecnoponto\Cielo\API30\Ecommerce\Environment;
use Tecnoponto\Cielo\API30\Ecommerce\Sale;
use Tecnoponto\Cielo\API30\Ecommerce\CieloEcommerce;
use Tecnoponto\Cielo\API30\Ecommerce\Payment;
use Tecnoponto\Cielo\API30\Ecommerce\CreditCard;

use Tecnoponto\Cielo\API30\Ecommerce\Request\CieloRequestException;
// ...
// Configure o ambiente
$environment = $environment = Environment::sandbox();

// Configure seu merchant
$merchant = new Merchant('MERCHANT ID', 'MERCHANT KEY');

// Crie uma instância de Sale informando o ID do pedido na loja
$sale = new Sale('123');

// Crie uma instância de Customer informando o nome do cliente
$customer = $sale->customer('Fulano de Tal');

// Crie uma instância de Payment informando o valor do pagamento
$payment = $sale->payment(15700);

// Crie uma instância de Credit Card utilizando os dados de teste
// esses dados estão disponíveis no manual de integração.
// Utilize setSaveCard(true) para obter o token do cartão
$payment->setType(Payment::PAYMENTTYPE_CREDITCARD)
        ->creditCard("123", CreditCard::VISA)
        ->setExpirationDate("12/2018")
        ->setCardNumber("0000000000000001")
        ->setHolder("Fulano de Tal")
        ->setSaveCard(true);

// Crie o pagamento na Cielo
try {
    // Configure o SDK com seu merchant e o ambiente apropriado para criar a venda
    $sale = (new CieloEcommerce($merchant, $environment))->createSale($sale);

    // O token gerado pode ser armazenado em banco de dados para vendar futuras
    $token = $sale->getPayment()->getCreditCard()->getCardToken();
} catch (CieloRequestException $e) {
    // Em caso de erros de integração, podemos tratar o erro aqui.
    // os códigos de erro estão todos disponíveis no manual de integração.
    $error = $e->getCieloError();
}
// ...

创建已令牌化的信用卡支付

<?php
require 'vendor/autoload.php';

use Tecnoponto\Cielo\API30\Merchant;

use Tecnoponto\Cielo\API30\Ecommerce\Environment;
use Tecnoponto\Cielo\API30\Ecommerce\Sale;
use Tecnoponto\Cielo\API30\Ecommerce\CieloEcommerce;
use Tecnoponto\Cielo\API30\Ecommerce\Payment;
use Tecnoponto\Cielo\API30\Ecommerce\CreditCard;

use Tecnoponto\Cielo\API30\Ecommerce\Request\CieloRequestException;
// ...
// Configure o ambiente
$environment = $environment = Environment::sandbox();

// Configure seu merchant
$merchant = new Merchant('MERCHANT ID', 'MERCHANT KEY');

// Crie uma instância de Sale informando o ID do pedido na loja
$sale = new Sale('123');

// Crie uma instância de Customer informando o nome do cliente
$customer = $sale->customer('Fulano de Tal');

// Crie uma instância de Payment informando o valor do pagamento
$payment = $sale->payment(15700);

// Crie uma instância de Credit Card utilizando os dados de teste
// esses dados estão disponíveis no manual de integração
$payment->setType(Payment::PAYMENTTYPE_CREDITCARD)
        ->creditCard("123", CreditCard::VISA)
        ->setCardToken("TOKEN-PREVIAMENTE-ARMAZENADO");

// Crie o pagamento na Cielo
try {
    // Configure o SDK com seu merchant e o ambiente apropriado para criar a venda
    $sale = (new CieloEcommerce($merchant, $environment))->createSale($sale);

    // Com a venda criada na Cielo, já temos o ID do pagamento, TID e demais
    // dados retornados pela Cielo
    $paymentId = $sale->getPayment()->getPaymentId();
} catch (CieloRequestException $e) {
    // Em caso de erros de integração, podemos tratar o erro aqui.
    // os códigos de erro estão todos disponíveis no manual de integração.
    $error = $e->getCieloError();
}
// ...

创建 recurring 支付

<?php
require 'vendor/autoload.php';

use Tecnoponto\Cielo\API30\Merchant;

use Tecnoponto\Cielo\API30\Ecommerce\Environment;
use Tecnoponto\Cielo\API30\Ecommerce\Sale;
use Tecnoponto\Cielo\API30\Ecommerce\CieloEcommerce;
use Tecnoponto\Cielo\API30\Ecommerce\Payment;
use Tecnoponto\Cielo\API30\Ecommerce\CreditCard;

use Tecnoponto\Cielo\API30\Ecommerce\Request\CieloRequestException;
// ...
// ...
// Configure o ambiente
$environment = $environment = Environment::sandbox();

// Configure seu merchant
$merchant = new Merchant('MID', 'MKEY');

// Crie uma instância de Sale informando o ID do pedido na loja
$sale = new Sale('123');

// Crie uma instância de Customer informando o nome do cliente
$customer = $sale->customer('Fulano de Tal');

// Crie uma instância de Payment informando o valor do pagamento
$payment = $sale->payment(15700);

// Crie uma instância de Credit Card utilizando os dados de teste
// esses dados estão disponíveis no manual de integração
$payment->setType(Payment::PAYMENTTYPE_CREDITCARD)
        ->creditCard("123", CreditCard::VISA)
        ->setExpirationDate("12/2018")
        ->setCardNumber("0000000000000001")
        ->setHolder("Fulano de Tal");

// Configure o pagamento recorrente
$payment->recurrentPayment(true)->setInterval(RecurrentPayment::INTERVAL_MONTHLY);

// Crie o pagamento na Cielo
try {
    // Configure o SDK com seu merchant e o ambiente apropriado para criar a venda
    $sale = (new CieloEcommerce($merchant, $environment))->createSale($sale);

    $recurrentPaymentId = $sale->getPayment()->getRecurrentPayment()->getRecurrentPaymentId();
} catch (CieloRequestException $e) {
    // Em caso de erros de integração, podemos tratar o erro aqui.
    // os códigos de erro estão todos disponíveis no manual de integração.
    $error = $e->getCieloError();
}
// ...

查询 recurring

<?php

require 'vendor/autoload.php';

use Tecnoponto\Cielo\API30\Merchant;

use Tecnoponto\Cielo\API30\Ecommerce\Environment;
use Tecnoponto\Cielo\API30\Ecommerce\CreditCard;
use Tecnoponto\Cielo\API30\Ecommerce\CieloEcommerce;

use Tecnoponto\Cielo\API30\Ecommerce\Request\CieloRequestException;

// ...
// ...
// Configure o ambiente
$environment = Environment::sandbox();

// Configure seu merchant
$merchant = new Merchant('MID', 'MKEY');

try {
    $recurrency = (new CieloEcommerce($merchant, $environment))->getRecurrentPayment('recurrency id');
} catch (CieloRequestException $e) {
    // Em caso de erros de integração, podemos tratar o erro aqui.
    // os códigos de erro estão todos disponíveis no manual de integração.
    $error = $e->getCieloError();
}
// ...

更新 recurring 支付数据

<?php
require 'vendor/autoload.php';

use Tecnoponto\Cielo\API30\Merchant;

use Tecnoponto\Cielo\API30\Ecommerce\Environment;
use Tecnoponto\Cielo\API30\Ecommerce\Sale;
use Tecnoponto\Cielo\API30\Ecommerce\CieloEcommerce;
use Tecnoponto\Cielo\API30\Ecommerce\Payment;
use Tecnoponto\Cielo\API30\Ecommerce\CreditCard;

use Tecnoponto\Cielo\API30\Ecommerce\Request\CieloRequestException;
// ...
// Configure o ambiente
$environment = $environment = Environment::sandbox();

// Configure seu merchant
$merchant = new Merchant('MERCHANT ID', 'MERCHANT KEY');

// Crie uma instância de Sale informando o ID do da recorrencia
// Id devolvido por: $sale->getPayment()->getRecurrentPayment()->getRecurrentPaymentId();
$sale = new Sale('123');

// Crie uma instância de Customer informando o nome do cliente
$customer = $sale->customer('Fulano de Tal');

// Crie uma instância de Payment informando o valor do pagamento
$payment = $sale->payment(15700);

// Crie uma instância de Credit Card utilizando os dados de teste
// esses dados estão disponíveis no manual de integração.
// Utilize setSaveCard(true) para obter o token do cartão
$payment->setType(Payment::PAYMENTTYPE_CREDITCARD)
        ->creditCard("123", CreditCard::VISA)
        ->setExpirationDate("12/2018")
        ->setCardNumber("0000000000000001")
        ->setHolder("Fulano de Tal");

// Crie o pagamento na Cielo
try {
    // Configure o SDK com seu merchant e o ambiente apropriado para criar a venda
    (new CieloEcommerce($merchant, $environment))->updateRecurrentPayment($sale);
    // não retorna nada se for bem sucedido
    return true
} catch (CieloRequestException $e) {
    // Em caso de erros de integração, podemos tratar o erro aqui.
    // os códigos de erro estão todos disponíveis no manual de integração.
    $error = $e->getCieloError();
}

启用/禁用 recurring

<?php

require 'vendor/autoload.php';

use Tecnoponto\Cielo\API30\Merchant;

use Tecnoponto\Cielo\API30\Ecommerce\Environment;
use Tecnoponto\Cielo\API30\Ecommerce\CreditCard;
use Tecnoponto\Cielo\API30\Ecommerce\CieloEcommerce;

use Tecnoponto\Cielo\API30\Ecommerce\Request\CieloRequestException;

// ...
// ...
// Configure o ambiente
$environment = Environment::sandbox();

// Configure seu merchant
$merchant = new Merchant('MID', 'MKEY');

try {
    // Desativa uma recorrência
    $recurrency = (new CieloEcommerce($merchant, $environment))->deactivateRecurrentPayment('recurrency id');
    // Reativa uma recorrência
    $recurrency = (new CieloEcommerce($merchant, $environment))->reactivateRecurrentPayment('recurrency id');
} catch (CieloRequestException $e) {
    // Em caso de erros de integração, podemos tratar o erro aqui.
    // os códigos de erro estão todos disponíveis no manual de integração.
    $error = $e->getCieloError();
}
// ...

更改 recurring 的日期/值

<?php

require 'vendor/autoload.php';

use Tecnoponto\Cielo\API30\Merchant;

use Tecnoponto\Cielo\API30\Ecommerce\Environment;
use Tecnoponto\Cielo\API30\Ecommerce\CreditCard;
use Tecnoponto\Cielo\API30\Ecommerce\CieloEcommerce;

use Tecnoponto\Cielo\API30\Ecommerce\Request\CieloRequestException;

// ...
// ...
// Configure o ambiente
$environment = Environment::sandbox();

// Configure seu merchant
$merchant = new Merchant('MID', 'MKEY');

try {
    // Altera o dia da recorrência
    $recurrency = (new CieloEcommerce($merchant, $environment))->changeDayRecurrentPayment('recurrency id', 10);
    // Altera o valor da recorrência
    $recurrency = (new CieloEcommerce($merchant, $environment))->changeAmountRecurrentPayment('recurrency id', 1500);
} catch (CieloRequestException $e) {
    // Em caso de erros de integração, podemos tratar o erro aqui.
    // os códigos de erro estão todos disponíveis no manual de integração.
    $error = $e->getCieloError();
}
// ...

更新 recurring 支付数据

<?php
require 'vendor/autoload.php';

use Tecnoponto\Cielo\API30\Merchant;

use Tecnoponto\Cielo\API30\Ecommerce\Environment;
use Tecnoponto\Cielo\API30\Ecommerce\Sale;
use Tecnoponto\Cielo\API30\Ecommerce\CieloEcommerce;
use Tecnoponto\Cielo\API30\Ecommerce\Payment;
use Tecnoponto\Cielo\API30\Ecommerce\CreditCard;

use Tecnoponto\Cielo\API30\Ecommerce\Request\CieloRequestException;
// ...
// Configure o ambiente
$environment = $environment = Environment::sandbox();

// Configure seu merchant
$merchant = new Merchant('MERCHANT ID', 'MERCHANT KEY');

// Crie uma instância de Sale informando o ID do da recorrencia
// Id devolvido por: $sale->getPayment()->getRecurrentPayment()->getRecurrentPaymentId();
$sale = new Sale('123');

// Crie uma instância de Customer informando o nome do cliente
$customer = $sale->customer('Fulano de Tal');

// Crie uma instância de Payment informando o valor do pagamento
$payment = $sale->payment(15700);

// Crie uma instância de Credit Card utilizando os dados de teste
// esses dados estão disponíveis no manual de integração.
// Utilize setSaveCard(true) para obter o token do cartão
$payment->setType(Payment::PAYMENTTYPE_CREDITCARD)
        ->creditCard("123", CreditCard::VISA)
        ->setExpirationDate("12/2018")
        ->setCardNumber("0000000000000001")
        ->setHolder("Fulano de Tal");

// Crie o pagamento na Cielo
try {
    // Configure o SDK com seu merchant e o ambiente apropriado para criar a venda
    $sale = (new CieloEcommerce($merchant, $environment))->updateRecurrentPayment($sale);
} catch (CieloRequestException $e) {
    // Em caso de erros de integração, podemos tratar o erro aqui.
    // os códigos de erro estão todos disponíveis no manual de integração.
    $error = $e->getCieloError();
}

使用借记卡创建交易

<?php
require 'vendor/autoload.php';

use Tecnoponto\Cielo\API30\Merchant;

use Tecnoponto\Cielo\API30\Ecommerce\Environment;
use Tecnoponto\Cielo\API30\Ecommerce\Sale;
use Tecnoponto\Cielo\API30\Ecommerce\CieloEcommerce;
use Tecnoponto\Cielo\API30\Ecommerce\CreditCard;

use Tecnoponto\Cielo\API30\Ecommerce\Request\CieloRequestException;

// ...
// Configure o ambiente
$environment = $environment = Environment::sandbox();

// Configure seu merchant
$merchant = new Merchant('MERCHANT ID', 'MERCHANT KEY');

// Crie uma instância de Sale informando o ID do pedido na loja
$sale = new Sale('123');

// Crie uma instância de Customer informando o nome do cliente
$customer = $sale->customer('Fulano de Tal');

// Crie uma instância de Payment informando o valor do pagamento
$payment = $sale->payment(15700);

// Defina a URL de retorno para que o cliente possa voltar para a loja
// após a autenticação do cartão
$payment->setReturnUrl('https:///test');

// Crie uma instância de Debit Card utilizando os dados de teste
// esses dados estão disponíveis no manual de integração
$payment->debitCard("123", CreditCard::VISA)
        ->setExpirationDate("12/2018")
        ->setCardNumber("0000000000000001")
        ->setHolder("Fulano de Tal");

// Crie o pagamento na Cielo
try {
    // Configure o SDK com seu merchant e o ambiente apropriado para criar a venda
    $sale = (new CieloEcommerce($merchant, $environment))->createSale($sale);

    // Com a venda criada na Cielo, já temos o ID do pagamento, TID e demais
    // dados retornados pela Cielo
    $paymentId = $sale->getPayment()->getPaymentId();

    // Utilize a URL de autenticação para redirecionar o cliente ao ambiente
    // de autenticação do emissor do cartão
    $authenticationUrl = $sale->getPayment()->getAuthenticationUrl();
} catch (CieloRequestException $e) {
    // Em caso de erros de integração, podemos tratar o erro aqui.
    // os códigos de erro estão todos disponíveis no manual de integração.
    $error = $e->getCieloError();
}
// ...

创建带 Boleto 的销售

<?php
require 'vendor/autoload.php';

use Tecnoponto\Cielo\API30\Merchant;

use Tecnoponto\Cielo\API30\Ecommerce\Environment;
use Tecnoponto\Cielo\API30\Ecommerce\Sale;
use Tecnoponto\Cielo\API30\Ecommerce\CieloEcommerce;
use Tecnoponto\Cielo\API30\Ecommerce\Payment;

use Tecnoponto\Cielo\API30\Ecommerce\Request\CieloRequestException;
// ...
// Configure o ambiente
$environment = $environment = Environment::sandbox();

// Configure seu merchant
$merchant = new Merchant('MERCHANT ID', 'MERCHANT KEY');

// Crie uma instância de Sale informando o ID do pedido na loja
$sale = new Sale('123');

// Crie uma instância de Customer informando o nome do cliente,
// documento e seu endereço
$customer = $sale->customer('Fulano de Tal')
                  ->setIdentity('00000000001')
                  ->setIdentityType('CPF')
                  ->address()->setZipCode('22750012')
                             ->setCountry('BRA')
                             ->setState('RJ')
                             ->setCity('Rio de Janeiro')
                             ->setDistrict('Centro')
                             ->setStreet('Av Marechal Camara')
                             ->setNumber('123');

// Crie uma instância de Payment informando o valor do pagamento
$payment = $sale->payment(15700)
                ->setType(Payment::PAYMENTTYPE_BOLETO)
                ->setAddress('Rua de Teste')
                ->setBoletoNumber('1234')
                ->setAssignor('Empresa de Teste')
                ->setDemonstrative('Desmonstrative Teste')
                ->setExpirationDate(date('d/m/Y', strtotime('+1 month')))
                ->setIdentification('11884926754')
                ->setInstructions('Esse é um boleto de exemplo');

// Crie o pagamento na Cielo
try {
    // Configure o SDK com seu merchant e o ambiente apropriado para criar a venda
    $sale = (new CieloEcommerce($merchant, $environment))->createSale($sale);

    // Com a venda criada na Cielo, já temos o ID do pagamento, TID e demais
    // dados retornados pela Cielo
    $paymentId = $sale->getPayment()->getPaymentId();
    $boletoURL = $sale->getPayment()->getUrl();

    printf("URL Boleto: %s\n", $boletoURL);
} catch (CieloRequestException $e) {
    // Em caso de erros de integração, podemos tratar o erro aqui.
    // os códigos de erro estão todos disponíveis no manual de integração.
    $error = $e->getCieloError();
}

令牌化一张卡

<?php

require 'vendor/autoload.php';

use Tecnoponto\Cielo\API30\Merchant;

use Tecnoponto\Cielo\API30\Ecommerce\Environment;
use Tecnoponto\Cielo\API30\Ecommerce\CreditCard;
use Tecnoponto\Cielo\API30\Ecommerce\CieloEcommerce;

use Tecnoponto\Cielo\API30\Ecommerce\Request\CieloRequestException;

// ...
// ...
// Configure o ambiente
$environment = Environment::sandbox();

// Configure seu merchant
$merchant = new Merchant('MID', 'MKEY');

// Crie uma instância do objeto que irá retornar o token do cartão 
$card = new CreditCard();
$card->setCustomerName('Fulano de Tal');
$card->setCardNumber('0000000000000001');
$card->setHolder('Fulano de Tal');
$card->setExpirationDate('10/2020');
$card->setBrand(CreditCard::VISA);

try {
    // Configure o SDK com seu merchant e o ambiente apropriado para recuperar o cartão
    $card = (new CieloEcommerce($merchant, $environment))->tokenizeCard($card);

    // Get the token
    $cardToken = $card->getCardToken();
} catch (CieloRequestException $e) {
    // Em caso de erros de integração, podemos tratar o erro aqui.
    // os códigos de erro estão todos disponíveis no manual de integração.
    $error = $e->getCieloError();
}
// ...

创建 Pix 支付

<?php
$sale->customer('Nome do cliente')
    ->setIdentity('1234567898745')
    ->setIdentityType('CNPJ');
        
$sale->payment(158900)
    ->setType(Payment::PAYMENTTYPE_PIX)
    ->setAmount(158900);

try {
    $sale = (new CieloEcommerce($this->merchant, $this->environment))->createSale($sale);

    $paymentId = $sale->getPayment()->getPaymentId();
    $pix_qrcode = $sale->getPayment()->getQrcodeString();
    $nsu_pix = $sale->getProofOfSale();

    if (isset($paymentId)) {
        return true;
    } else {
        return false;
    }

} catch (CieloRequestException $e) {
    $error = $e->getCieloError();
    return ApiResponseClass::sendResponseInternal(false, $e->getMessage());
}  
// ...

手册

有关与 Cielo API 3.0 集成的更多信息,请参阅手册:[Integração API 3.0](https://developercielo.github.io/manual/cielo-ecommerce)

致谢

感谢包原作者 developercielo/api-3.0-php