ciareis / cielo-api-3.0-php
Cielo API 3.0 集成
v4.0.1
2024-02-26 13:57 UTC
Suggests
- monolog/monolog: Allows more advanced logging of the application flow
README
SDK API-3.0 PHP
强制包
此包最初是从 developercielo/api-3.0-php 包派生而来,并增加了新功能。
为什么我们没有向原始包提交PR?存在许多未回答的问题。
主要功能
- 信用卡支付。
- 周期性支付。
- 第一次周期性支付时进行授权。
- 从第一次周期性支付开始授权。
- 更新支付数据。
- 更改支付日。
- 更改周期性支付金额。
- 借记卡支付。
- 支票支付。
- 电子转账支付。
- 取消授权。
- 查询支付。
- 卡令牌化。
限制
由于涉及应用程序的用户界面,SDK 仅作为创建交易的框架。在直接授权的情况下没有限制;但在需要用户身份验证或任何类型的用户重定向的情况下,开发者应使用 SDK 生成支付,并使用 Cielo 返回的链接提供用户重定向。
依赖关系
- PHP >= 5.6
安装SDK
如果已经有一个 composer.json
文件,只需将以下依赖项添加到您的项目中
"require": { "ciareis/cielo-api-3.0-php": "^3.0" }
添加依赖项到 composer.json
后,只需执行
composer install
或者,您可以直接在终端执行
composer require "ciareis/cielo-api-3.0-php"
支持的产品和标志及其常量
<?php require 'vendor/autoload.php'; use Ciareis\Cielo\API30\Ecommerce\CreditCard;
使用SDK
要使用 SDK 创建简单的信用卡支付,只需做
创建信用卡支付
<?php require 'vendor/autoload.php'; use Ciareis\Cielo\API30\Merchant; use Ciareis\Cielo\API30\Ecommerce\Environment; use Ciareis\Cielo\API30\Ecommerce\Sale; use Ciareis\Cielo\API30\Ecommerce\CieloEcommerce; use Ciareis\Cielo\API30\Ecommerce\Payment; use Ciareis\Cielo\API30\Ecommerce\CreditCard; use Ciareis\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 Ciareis\Cielo\API30\Merchant; use Ciareis\Cielo\API30\Ecommerce\Environment; use Ciareis\Cielo\API30\Ecommerce\Sale; use Ciareis\Cielo\API30\Ecommerce\CieloEcommerce; use Ciareis\Cielo\API30\Ecommerce\Payment; use Ciareis\Cielo\API30\Ecommerce\CreditCard; use Ciareis\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 Ciareis\Cielo\API30\Merchant; use Ciareis\Cielo\API30\Ecommerce\Environment; use Ciareis\Cielo\API30\Ecommerce\Sale; use Ciareis\Cielo\API30\Ecommerce\CieloEcommerce; use Ciareis\Cielo\API30\Ecommerce\Payment; use Ciareis\Cielo\API30\Ecommerce\CreditCard; use Ciareis\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(); } // ...
创建周期性支付
<?php require 'vendor/autoload.php'; use Ciareis\Cielo\API30\Merchant; use Ciareis\Cielo\API30\Ecommerce\Environment; use Ciareis\Cielo\API30\Ecommerce\Sale; use Ciareis\Cielo\API30\Ecommerce\CieloEcommerce; use Ciareis\Cielo\API30\Ecommerce\Payment; use Ciareis\Cielo\API30\Ecommerce\CreditCard; use Ciareis\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(); } // ...
查询周期性支付
<?php require 'vendor/autoload.php'; use Ciareis\Cielo\API30\Merchant; use Ciareis\Cielo\API30\Ecommerce\Environment; use Ciareis\Cielo\API30\Ecommerce\CreditCard; use Ciareis\Cielo\API30\Ecommerce\CieloEcommerce; use Ciareis\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(); } // ...
更新周期性支付的支付数据
<?php require 'vendor/autoload.php'; use Ciareis\Cielo\API30\Merchant; use Ciareis\Cielo\API30\Ecommerce\Environment; use Ciareis\Cielo\API30\Ecommerce\Sale; use Ciareis\Cielo\API30\Ecommerce\CieloEcommerce; use Ciareis\Cielo\API30\Ecommerce\Payment; use Ciareis\Cielo\API30\Ecommerce\CreditCard; use Ciareis\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(); }
激活/停用周期性支付
<?php require 'vendor/autoload.php'; use Ciareis\Cielo\API30\Merchant; use Ciareis\Cielo\API30\Ecommerce\Environment; use Ciareis\Cielo\API30\Ecommerce\CreditCard; use Ciareis\Cielo\API30\Ecommerce\CieloEcommerce; use Ciareis\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(); } // ...
更改周期性支付的日/值
<?php require 'vendor/autoload.php'; use Ciareis\Cielo\API30\Merchant; use Ciareis\Cielo\API30\Ecommerce\Environment; use Ciareis\Cielo\API30\Ecommerce\CreditCard; use Ciareis\Cielo\API30\Ecommerce\CieloEcommerce; use Ciareis\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(); } // ...
更新周期性支付的支付数据
<?php require 'vendor/autoload.php'; use Ciareis\Cielo\API30\Merchant; use Ciareis\Cielo\API30\Ecommerce\Environment; use Ciareis\Cielo\API30\Ecommerce\Sale; use Ciareis\Cielo\API30\Ecommerce\CieloEcommerce; use Ciareis\Cielo\API30\Ecommerce\Payment; use Ciareis\Cielo\API30\Ecommerce\CreditCard; use Ciareis\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 Ciareis\Cielo\API30\Merchant; use Ciareis\Cielo\API30\Ecommerce\Environment; use Ciareis\Cielo\API30\Ecommerce\Sale; use Ciareis\Cielo\API30\Ecommerce\CieloEcommerce; use Ciareis\Cielo\API30\Ecommerce\CreditCard; use Ciareis\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://localhost/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(); } // ...
创建带有支票的销售
<?php require 'vendor/autoload.php'; use Ciareis\Cielo\API30\Merchant; use Ciareis\Cielo\API30\Ecommerce\Environment; use Ciareis\Cielo\API30\Ecommerce\Sale; use Ciareis\Cielo\API30\Ecommerce\CieloEcommerce; use Ciareis\Cielo\API30\Ecommerce\Payment; use Ciareis\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 Ciareis\Cielo\API30\Merchant; use Ciareis\Cielo\API30\Ecommerce\Environment; use Ciareis\Cielo\API30\Ecommerce\CreditCard; use Ciareis\Cielo\API30\Ecommerce\CieloEcommerce; use Ciareis\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(); } // ...
手册
有关与 Cielo API 3.0 集成的更多信息,请参阅手册: API 3.0 集成
致谢
向包的原始作者 developercielo/api-3.0-php