Git Product home page Git Product logo

pagseguro-edi-php's Introduction

EDI for PHP

pt-BR: Uma biblioteca simples e direta para carregar sequencialmente dados do EDI da adquirente PagSeguro

en-US: A straightfoward library for sequential loading of EDI entries from PagSeguro

NOTA: Este guia está primariamente em inglês, caso haja necessidade, será adicionado uma versão em pt-BR no futuro.

Installation

This package is provided via packagist.org, you can install it directly using the following command:

composer require kubinyete/pagseguro-edi

Currently, only PHP versions 8.0 or greater are supported/tested, if you currently need support for older versions, we strongly advice you to test it yourself and then create a pull request to merge any needed changes, any feedback is appreciated.

Usage

First and foremost, this library is a simple webservice client designed to be used for sequential reading, this will speed up your development time as any object, attribute mapping, data fetching and pagination mechanism has already been implemented.

You can start right away by using the following code snippet:

require_once 'vendor/autoload.php';

// Provided user
$credentialsUsername = getenv('USER');
// Provider secret token
$credentialsToken = getenv('TOKEN');

// Selected environment (production only)
$environment = \Kubinyete\Edi\PagSeguro\Core\PagSeguroEdiEnvironment::production();
// Selected EDI version (prefer latest)
$version = \Kubinyete\Edi\PagSeguro\Core\PagSeguroEdiClient::VERSION_LATEST;

$client = new \Kubinyete\Edi\PagSeguro\Core\PagSeguroEdiClient(
    env: $environment, 
    clientId: $credentialsUsername, token: $credentialsToken, 
    version: $version
);

Fetching transactional movements

// Creates a new paginator for any transactional movements from today, fetching every page with size 500
$paginator = $client->getTransactionalMovements(date: new DateTime('now'), pageSize: 500);

// Iterating over every page available
foreach ($paginator as $item) {
    // You can also manually configure or extract attributes from our paginator object
    echo "Found movement code {$item->getMovimentoApiCodigo()} on page {$paginator->getPage()}/{$paginator->getTotalPages()}" . PHP_EOL;
}

You can also manually fetch single pages or manually increment if necessary

// Manually fetching first page
$paginator->setPage(1);
$items = $paginator-getItems();

// Increment +1 page
$paginator->incrementPage();
$items = $paginator-getItems();

// Decrement -1 page
$paginator->decrementPage();
$items = $paginator-getItems();

// Manually iterating (without an iterator)
while ($items = $paginator->nextItems()) {
    echo "Found movement code {$item->getMovimentoApiCodigo()} on page {$paginator->getPage()}/{$paginator->getTotalPages()}" . PHP_EOL;
}

Fetching finantial movements

// Creates a new paginator for any finantial movements from today, fetching every page with size 500
$paginator = $client->getFinantialMovements(date: new DateTime('now'), pageSize: 500);

// Iterating over every page available
foreach ($paginator as $item) {
    // You can also manually configure or extract attributes from our paginator object
    echo "Found movement code {$item->getMovimentoApiCodigo()} on page {$paginator->getPage()}/{$paginator->getTotalPages()}" . PHP_EOL;
}

Supported movement types

Transactional

Attribute name Type Method
movimento_api_codigo string TransactionalMovement::getMovimentoApiCodigo
tipo_registro string TransactionalMovement::getTipoRegistro
estabelecimento string TransactionalMovement::getEstabelecimento
data_inicial_transacao string TransactionalMovement::getDataInicialTransacao
hora_inicial_transacao string TransactionalMovement::getHoraInicialTransacao
data_venda_ajuste string TransactionalMovement::getDataVendaAjuste
hora_venda_ajuste string TransactionalMovement::getHoraVendaAjuste
tipo_evento string TransactionalMovement::getTipoEvento
tipo_transacao string TransactionalMovement::getTipoTransacao
codigo_transacao string TransactionalMovement::getCodigoTransacao
codigo_venda string TransactionalMovement::getCodigoVenda
valor_total_transacao float TransactionalMovement::getValorTotalTransacao
valor_parcela float TransactionalMovement::getValorParcela
pagamento_prazo string TransactionalMovement::getPagamentoPrazo
plano string TransactionalMovement::getPlano
parcela string TransactionalMovement::getParcela
quantidade_parcela string TransactionalMovement::getQuantidadeParcela
data_prevista_pagamento string TransactionalMovement::getDataPrevistaPagamento
taxa_parcela_comprador float TransactionalMovement::getTaxaParcelaComprador
tarifa_boleto_compra float TransactionalMovement::getTarifaBoletoCompra
valor_original_transacao float TransactionalMovement::getValorOriginalTransacao
taxa_parcela_vendedor float TransactionalMovement::getTaxaParcelaVendedor
taxa_intermediacao float TransactionalMovement::getTaxaIntermediacao
tarifa_intermediacao float TransactionalMovement::getTarifaIntermediacao
tarifa_boleto_vendedor float TransactionalMovement::getTarifaBoletoVendedor
taxa_rep_aplicacao float TransactionalMovement::getTaxaRepAplicacao
valor_liquido_transacao float TransactionalMovement::getValorLiquidoTransacao
status_pagamento string TransactionalMovement::getStatusPagamento
meio_pagamento string TransactionalMovement::getMeioPagamento
instituicao_financeira string TransactionalMovement::getInstituicaoFinanceira
canal_entrada string TransactionalMovement::getCanalEntrada
leitor string TransactionalMovement::getLeitor
meio_captura string TransactionalMovement::getMeioCaptura
num_logico string TransactionalMovement::getNumLogico
nsu string TransactionalMovement::getNsu
cartao_bin string TransactionalMovement::getCartaoBin
cartao_holder string TransactionalMovement::getCartaoHolder
codigo_autorizacao string TransactionalMovement::getCodigoAutorizacao
codigo_cv string TransactionalMovement::getCodigoCv
numero_serie_leitor string TransactionalMovement::getNumeroSerieLeitor
tx_id string TransactionalMovement::getTxId

Finantial

Attribute name Type Method
movimento_api_codigo string FinantialMovement::getMovimentoApiCodigo
tipo_registro string FinantialMovement::getTipoRegistro
estabelecimento string FinantialMovement::getEstabelecimento
data_inicial_transacao string FinantialMovement::getDataInicialTransacao
hora_inicial_transacao string FinantialMovement::getHoraInicialTransacao
data_venda_ajuste string FinantialMovement::getDataVendaAjuste
hora_venda_ajuste string FinantialMovement::getHoraVendaAjuste
tipo_evento string FinantialMovement::getTipoEvento
tipo_transacao string FinantialMovement::getTipoTransacao
codigo_transacao string FinantialMovement::getCodigoTransacao
codigo_venda string FinantialMovement::getCodigoVenda
valor_total_transacao float FinantialMovement::getValorTotalTransacao
valor_parcela float FinantialMovement::getValorParcela
pagamento_prazo string FinantialMovement::getPagamentoPrazo
plano string FinantialMovement::getPlano
parcela string FinantialMovement::getParcela
quantidade_parcela string FinantialMovement::getQuantidadeParcela
taxa_parcela_comprador float FinantialMovement::getTaxaParcelaComprador
tarifa_boleto_compra float FinantialMovement::getTarifaBoletoCompra
valor_original_transacao float FinantialMovement::getValorOriginalTransacao
taxa_parcela_vendedor float FinantialMovement::getTaxaParcelaVendedor
taxa_intermediacao float FinantialMovement::getTaxaIntermediacao
tarifa_intermediacao float FinantialMovement::getTarifaIntermediacao
tarifa_boleto_vendedor float FinantialMovement::getTarifaBoletoVendedor
taxa_rep_aplicacao float FinantialMovement::getTaxaRepAplicacao
valor_liquido_transacao float FinantialMovement::getValorLiquidoTransacao
taxa_antecipacao float FinantialMovement::getTaxaAntecipacao
valor_liquido_antecipacao float FinantialMovement::getValorLiquidoAntecipacao
status_pagamento string FinantialMovement::getStatusPagamento
identificador_revenda string FinantialMovement::getIdentificadorRevenda
meio_pagamento string FinantialMovement::getMeioPagamento
instituicao_financeira string FinantialMovement::getInstituicaoFinanceira
canal_entrada string FinantialMovement::getCanalEntrada
leitor string FinantialMovement::getLeitor
meio_captura string FinantialMovement::getMeioCaptura
cod_banco string FinantialMovement::getCodBanco
banco_agencia string FinantialMovement::getBancoAgencia
conta_banco string FinantialMovement::getContaBanco
num_logico string FinantialMovement::getNumLogico
nsu string FinantialMovement::getNsu
cartao_bin string FinantialMovement::getCartaoBin
cartao_holder string FinantialMovement::getCartaoHolder
codigo_autorizacao string FinantialMovement::getCodigoAutorizacao
codigo_cv string FinantialMovement::getCodigoCv
numero_serie_leitor string FinantialMovement::getNumeroSerieLeitor
tx_id string FinantialMovement::getTxId

Anticipation

Attribute name Type Method
tipo_registro string AnticipationMovement::getTipoRegistro
estabelecimento string AnticipationMovement::getEstabelecimento
data_inicial_transacao string AnticipationMovement::getDataInicialTransacao
hora_inicial_transacao string AnticipationMovement::getHoraInicialTransacao
data_venda_ajuste string AnticipationMovement::getDataVendaAjuste
hora_venda_ajuste string AnticipationMovement::getHoraVendaAjuste
tipo_evento string AnticipationMovement::getTipoEvento
tipo_transacao string AnticipationMovement::getTipoTransacao
codigo_transacao string AnticipationMovement::getCodigoTransacao
codigo_venda string AnticipationMovement::getCodigoVenda
valor_total_transacao float AnticipationMovement::getValorTotalTransacao
valor_parcela float AnticipationMovement::getValorParcela
plano string AnticipationMovement::getPlano
parcela string AnticipationMovement::getParcela
quantidade_parcela string AnticipationMovement::getQuantidadeParcela
valor_liquido_transacao float AnticipationMovement::getValorLiquidoTransacao
status_pagamento string AnticipationMovement::getStatusPagamento
num_logico string AnticipationMovement::getNumLogico
nsu string AnticipationMovement::getNsu
cartao_bin string AnticipationMovement::getCartaoBin
cartao_holder string AnticipationMovement::getCartaoHolder
codigo_autorizacao string AnticipationMovement::getCodigoAutorizacao
codigo_cv string AnticipationMovement::getCodigoCv
data_prevista_pagamento string AnticipationMovement::getDataPrevistaPagamento
data_movimentacao string AnticipationMovement::getDataMovimentacao
taxa_antecipacao float AnticipationMovement::getTaxaAntecipacao
valor_liquido_antecipacao float AnticipationMovement::getValorLiquidoAntecipacao

pagseguro-edi-php's People

Contributors

kubinyete avatar

Watchers

 avatar

pagseguro-edi-php's Issues

Add required test cases

Primarly, we should be testing the following:

  1. Remote communication using our webservice client & provided token
  2. Model parsing from each endpoint response (Transaction, Finantial, etc...)
  3. Pagination behavior, using as either an iterator or procedural

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.