定制 h00dstoker/cielo 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

h00dstoker/cielo

Composer 安装命令:

composer require h00dstoker/cielo

包简介

Integration with Cielo gateway.

README 文档

README

Build Status Maintainability Test Coverage

Cielo é uma biblioteca cliente para o web service da Cielo.

Com esta classe, sua aplicação será capaz de realizar transações a Crédito e Débito.

ATENÇÃO

Esta biblioteca é baseada na versão 1.5.x da API da Cielo, porém a mesma foi descontinuada. Alterações neste projeto são apenas para bug fixes e melhorias para a versão mencionada. Caso você esteja implementando em um novo projeto, recomendo utilizar a versão 3.x da API.

Requisitos

  • PHP 7.1+
  • SimpleXML

Instalação

composer.phar require "mrprompt/cielo"

Exemplos

Autorização

use GuzzleHttp\Client;
use MrPrompt\Cielo\Transacao;
use MrPrompt\Cielo\Ambiente\Teste;
use MrPrompt\Cielo\Autorizacao;
use MrPrompt\Cielo\Cliente;
use MrPrompt\Cielo\Idioma\Portugues;

/* @var $transacao \MrPrompt\Cielo\Transacao */
$transacao = new Transacao();
$transacao->setTid('10069930691FB8C01001');
$transacao->setAutorizar(2);
$transacao->setCapturar(false);
$transacao->setDataHora(new DateTime());
$transacao->setDescricao('teste');
$transacao->setMoeda(986);
$transacao->setNumero(001);
$transacao->setParcelas(1);
$transacao->setValor(1.00);

/* @var $cielo \MrPrompt\Cielo\Cliente */
$cielo = new Cliente(
    new Autorizacao(NUMERO_CIELO, CHAVE_CIELO),
    new Client(),
    new Portugues(),
    new Teste()
);

try {
    $requisicao = $cielo->autoriza($transacao);

    print_r($requisicao);
} catch (\InvalidArgumentException $ex) {
    echo "# ERRO: {$ex->getCode()} - {$ex->getMessage()}" . PHP_EOL;
}

Autorização Portador

use GuzzleHttp\Client;
use MrPrompt\Cielo\Ambiente\Teste;
use MrPrompt\Cielo\Autorizacao;
use MrPrompt\Cielo\Cliente;
use MrPrompt\Cielo\Idioma\Portugues;
use MrPrompt\Cielo\Cartao;
use MrPrompt\Cielo\Transacao;

/* @var $cielo \MrPrompt\Cielo\Cliente */
$cielo = new Cliente(
    new Autorizacao(NUMERO_CIELO, CHAVE_CIELO),
    new Client(),
    new Portugues(),
    new Teste()
);

/* @var $transacao \MrPrompt\Cielo\Transacao */
$transacao = new Transacao();
$transacao->setTid('10069930691FB8C01001');
$transacao->setAutorizar(2);
$transacao->setCapturar(false);
$transacao->setDataHora(new DateTime());
$transacao->setDescricao('teste');
$transacao->setMoeda(986);
$transacao->setNumero(001);
$transacao->setParcelas(1);
$transacao->setValor(1.00);

/* @var $transacao \MrPrompt\Cielo\Cartao */
$cartao = new Cartao();
$cartao->setBandeira('visa');
$cartao->setCartao('4012001037141112');
$cartao->setCodigoSeguranca('123');
$cartao->setIndicador(0);
$cartao->setNomePortador('Teste');
$cartao->setValidade('201612');

try {
    $requisicao = $cielo->autorizaPortador($transacao, $cartao);

    print_r($requisicao);
} catch (\InvalidArgumentException $ex) {
    echo "# ERRO: {$ex->getCode()} - {$ex->getMessage()}" . PHP_EOL;
}

Cancelamento

use GuzzleHttp\Client;
use MrPrompt\Cielo\Ambiente\Teste;
use MrPrompt\Cielo\Autorizacao;
use MrPrompt\Cielo\Cliente;
use MrPrompt\Cielo\Idioma\Portugues;
use MrPrompt\Cielo\Transacao;

/* @var $transacao \MrPrompt\Cielo\Transacao */
$transacao = new Transacao();
$transacao->setTid('10069930691FB8C01001');

/* @var $transacao \MrPrompt\Cielo\Cliente */
$cielo     = new Cliente(
    new Autorizacao(NUMERO_CIELO, CHAVE_CIELO),
    new Client(),
    new Portugues(),
    new Teste()
);

try {
    $requisicao = $cielo->cancela($transacao);

    print_r($requisicao);
} catch (\InvalidArgumentException $ex) {
    echo "# ERRO: {$ex->getCode()} - {$ex->getMessage()}" . PHP_EOL;
}

Captura

use GuzzleHttp\Client;
use MrPrompt\Cielo\Ambiente\Teste;
use MrPrompt\Cielo\Autorizacao;
use MrPrompt\Cielo\Cliente;
use MrPrompt\Cielo\Idioma\Portugues;
use MrPrompt\Cielo\Transacao;

/* @var $transacao \MrPrompt\Cielo\Transacao */
$transacao = new Transacao();
$transacao->setTid('10069930691FB8C01001');

/* @var $transacao \MrPrompt\Cielo\Cliente */
$cielo     = new Cliente(
    new Autorizacao(NUMERO_CIELO, CHAVE_CIELO),
    new Client(),
    new Portugues(),
    new Teste()
);

try {
    $requisicao = $cielo->captura($transacao);

    print_r($requisicao);
} catch (\InvalidArgumentException $ex) {
    echo "# ERRO: {$ex->getCode()} - {$ex->getMessage()}" . PHP_EOL;
}

Consulta

use GuzzleHttp\Client;
use MrPrompt\Cielo\Ambiente\Teste;
use MrPrompt\Cielo\Autorizacao;
use MrPrompt\Cielo\Cliente;
use MrPrompt\Cielo\Idioma\Portugues;
use MrPrompt\Cielo\Transacao;

/* @var $transacao \MrPrompt\Cielo\Transacao */
$transacao = new Transacao();
$transacao->setTid('10069930691FB8C01001');

/* @var $transacao \MrPrompt\Cielo\Cliente */
$cielo     = new Cliente(
    new Autorizacao(NUMERO_CIELO, CHAVE_CIELO),
    new Client(),
    new Portugues(),
    new Teste()
);

try {
    $requisicao = $cielo->consulta($transacao);

    print_r($requisicao);
} catch (\InvalidArgumentException $ex) {
    echo "# ERRO: {$ex->getCode()} - {$ex->getMessage()}" . PHP_EOL;
}

TID

use GuzzleHttp\Client;
use MrPrompt\Cielo\Ambiente\Teste;
use MrPrompt\Cielo\Autorizacao;
use MrPrompt\Cielo\Cliente;
use MrPrompt\Cielo\Idioma\Portugues;
use MrPrompt\Cielo\Transacao;
use MrPrompt\Cielo\Cartao;

/* @var $transacao \MrPrompt\Cielo\Cliente */
$cielo     = new Cliente(
    new Autorizacao(NUMERO_CIELO, CHAVE_CIELO),
    new Client(),
    new Portugues(),
    new Teste()
);

/* @var $transacao \MrPrompt\Cielo\Transacao */
$transacao = new Transacao();
$transacao->setAutorizar(2);
$transacao->setCapturar(false);
$transacao->setDataHora(new DateTime());
$transacao->setDescricao('teste');
$transacao->setMoeda(986);
$transacao->setNumero(001);
$transacao->setParcelas(1);
$transacao->setValor(1.00);

/* @var $transacao \MrPrompt\Cielo\Cartao */
$cartao = new Cartao();
$cartao->setBandeira('visa');
$cartao->setCartao('4012001037141112');
$cartao->setCodigoSeguranca('123');
$cartao->setIndicador(0);
$cartao->setNomePortador('Teste');
$cartao->setValidade('201612');

try {
    $requisicao = $cielo->tid($transacao, $cartao);

    print_r($requisicao);
} catch (\InvalidArgumentException $ex) {
    echo "# ERRO: {$ex->getCode()} - {$ex->getMessage()}" . PHP_EOL;
}

Transação

use GuzzleHttp\Client;
use MrPrompt\Cielo\Ambiente\Teste;
use MrPrompt\Cielo\Autorizacao;
use MrPrompt\Cielo\Cliente;
use MrPrompt\Cielo\Idioma\Portugues;
use MrPrompt\Cielo\Transacao;
use MrPrompt\Cielo\Cartao;

/* @var $transacao \MrPrompt\Cielo\Transacao */
$transacao = new Transacao();
$transacao->setTid('10069930691FB8C01001');
$transacao->setAutorizar(2);
$transacao->setCapturar(false);
$transacao->setDataHora(new DateTime());
$transacao->setDescricao('teste');
$transacao->setMoeda(986);
$transacao->setNumero(001);
$transacao->setParcelas(1);
$transacao->setValor(1.00);

/* @var $transacao \MrPrompt\Cielo\Cartao */
$cartao = new Cartao();
$cartao->setBandeira('visa');
$cartao->setCartao('4012001037141112');
$cartao->setCodigoSeguranca('123');
$cartao->setIndicador(0);
$cartao->setNomePortador('Teste');
$cartao->setValidade('201612');

/* @var $transacao \MrPrompt\Cielo\Cliente */
$cielo     = new Cliente(
    new Autorizacao(NUMERO_CIELO, CHAVE_CIELO),
    new Client(),
    new Portugues(),
    new Teste()
);

try {
    $requisicao = $cielo->iniciaTransacao($transacao, $cartao, 'http://google.com.br');

    print_r($requisicao);
} catch (\InvalidArgumentException $ex) {
    echo "# ERRO: {$ex->getCode()} - {$ex->getMessage()}" . PHP_EOL;
}

Versões anteriores

  • PHP 5.5 ~ 5.6: Somente a versão 2.2 é compatível com PHP 5.5 e 5.6
  • PHP 5.3 ~ 5.4: Até a versão 2.1, o PHP 5.3 é suportado.

h00dstoker/cielo 适用场景与选型建议

h00dstoker/cielo 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 13.69k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2018 年 12 月 07 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「payment」 「gateway」 「card」 「credit」 「cielo」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 h00dstoker/cielo 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 h00dstoker/cielo 我们能提供哪些服务?
定制开发 / 二次开发

基于 h00dstoker/cielo 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 13.69k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 8
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 23
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-3.0
  • 更新时间: 2018-12-07