PHPackages                             odinizfilho/infinitepay-php - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. odinizfilho/infinitepay-php

ActiveLibrary

odinizfilho/infinitepay-php
===========================

SDK PHP server-side para o Checkout Integrado da InfinitePay

025PHPCI passing

Since Jul 13Pushed 1mo agoCompare

[ Source](https://github.com/odinizfilho/infinitepay-php)[ Packagist](https://packagist.org/packages/odinizfilho/infinitepay-php)[ RSS](/packages/odinizfilho-infinitepay-php/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependenciesVersions (1)Used By (0)

InfinitePay PHP
===============

[](#infinitepay-php)

SDK PHP **server-side** para criar links do Checkout Integrado e confirmar pagamentos da InfinitePay sem receber dados de cartão no seu sistema.

> Este projeto é um SDK comunitário e não oficial. A integração usa o checkout hospedado da InfinitePay.

Por que este package existe?
----------------------------

[](#por-que-este-package-existe)

A API do Checkout Integrado da InfinitePay é simples, mas uma integração de pagamento segura envolve mais do que enviar uma requisição HTTP. Cada projeto precisaria implementar novamente validação de valores, serialização do payload, tratamento de erros, timeouts, verificação TLS e confirmação de webhooks.

Este package concentra essas responsabilidades em uma API PHP pequena e tipada. A aplicação cria o pedido no backend, envia somente os dados necessários para a InfinitePay e recebe uma URL de checkout hospedado. Os dados de cartão são preenchidos diretamente no ambiente da InfinitePay e nunca passam pelo servidor ou pelo frontend da loja.

Ele também resolve um ponto importante da integração: um webhook ou os parâmetros recebidos na URL de retorno não devem ser considerados prova de pagamento. O SDK permite reconciliar a notificação com o pedido salvo e consultar o endpoint `payment_check` antes de liberar um produto ou serviço.

Por que usar?
-------------

[](#por-que-usar)

- **Menos código repetido:** criação de links, consulta de pagamentos e leitura de webhooks usam objetos prontos e reutilizáveis.
- **Valores monetários seguros:** os preços são inteiros em centavos, evitando erros de arredondamento causados por `float`.
- **Validação antes da requisição:** itens, InfiniteTag, cliente, endereço, URLs e identificadores são validados antes de chegar à API.
- **Webhook reconciliado:** pedido e valor são comparados com os dados locais e o pagamento é confirmado server-to-server.
- **Transporte protegido:** TLS é verificado, redirects não são seguidos e existem limites de tempo e tamanho de resposta.
- **Erros previsíveis:** falhas de validação, comunicação e respostas da API possuem exceções separadas.
- **Fácil de testar:** o transporte HTTP pode ser substituído por uma implementação simulada, sem criar cobranças reais nos testes.
- **Independente de framework:** pode ser usado em PHP puro, Laravel, Symfony ou qualquer projeto com Composer.

O package reduz erros comuns e oferece uma base consistente, mas não substitui as responsabilidades da aplicação. O sistema consumidor ainda deve autenticar o comprador, carregar produtos e preços do banco, proteger a rota contra abuso e processar cada `transaction_nsu` de forma idempotente.

Requisitos
----------

[](#requisitos)

- PHP 8.1 ou superior
- extensoes `curl`, `json` e `mbstring`
- Checkout Integrado habilitado na conta InfinitePay

Instalacao
----------

[](#instalacao)

Enquanto o pacote ainda nao estiver publicado no Packagist, adicione o repositorio ao projeto consumidor:

```
{
  "repositories": [
    { "type": "vcs", "url": "https://github.com/odinizfilho/infinitepay-php" }
  ],
  "require": {
    "odinizfilho/infinitepay-php": "dev-main"
  }
}
```

Depois execute `composer update odinizfilho/infinitepay-php`.

Criar um checkout
-----------------

[](#criar-um-checkout)

Este codigo deve rodar em uma rota do backend. O frontend recebe somente a URL pronta do checkout; valores e itens devem sempre vir do banco de dados, nunca do corpo enviado pelo navegador.

```
