ernandesrs/lapipay

There is no license information available for the latest version (v0.0.1) of this package.

Payment

v0.0.1 2023-08-05 16:46 UTC

This package is auto-updated.

Last update: 2024-04-05 18:29:33 UTC


README

Este é um projeto de estudo de criação de pacotes Laravel e uso de APIs de pagamento.

Este pacote fará, inicialmente, integração com a API da Pagarme.

GATEWAYS IMPLEMENTADAS

Pagarme: pagarme

INSTALAÇÃO

composer require ernandesrs/lapipay

CONFIGURAÇÃO

Guia de configuração do pacote LAPIPAY.

Variáveis ambiente

No arquivo .env do seu projeto, adicione as seguintes variáveis:


PAYMENT_TESTING=true
PAYMENT_DEFAULT_GATEWAY=pagarme
PAYMENT_POSTBACK_URL_TEST=

PAYMENT_PAGARME_API_TEST=
PAYMENT_PAGARME_API_LIVE=
PAYMENT_PAGARME_API_ANTIFRAUD=false

Veja uma breve explicação das chaves acima.

CHAVE DESCRIÇÃO
PAYMENT_TESTING Define se o sistema de cobrança está em testes. Se definido como false, o sistema de cobrança irá efetuar cobranças reais.
PAYMENT_DEFAULT_GATEWAY Define a gateway que será utilizada. Veja o início da documentação as gateways implementadas.
PAYMENT_POSTBACK_URL_TEST Url de postback para teste local. Veja o arquivo de configuração para mais detalhes
PAYMENT_PAGARME_API_TEST Chave de teste da api(cobranças falsas para testes).
PAYMENT_PAGARME_API_LIVE Chave de produção da api(cobranças reais).
PAYMENT_PAGARME_API_ANTIFRAUD Define se o recurso de antifraude está habilitado na Pagar.me. Quando habilitado, alguns dados extras são obrigatórios em cobranças com cartão de crédito.

Adicione o ServiceProvider

Em /config/app.php adicione Ernandesrs\Lapipay\LapipayServiceProvider::class no item 'providers'. Vai ficar assim:

<?php

return [
    
    // outras configurações... 

    'providers' => [
        // outros providers...
        App\Providers\RouteServiceProvider::class,

        Ernandesrs\Lapipay\LapipayServiceProvider::class
    ],

    // outras configurações
];

Publique o arquivo de configuração

Na raiz do seu projeto Laravel, publique o arquivo de configuração com o seguinte comando:

php artisan vendor:publish --tag=lapipay-config

O arquivo de configuração possui campos que podem ser modificados no arquivo de variáveis .env, veja a seção acima 'Variáveis ambientes'. Veja o arquivo de configurações para mais detalhes.

(Opcional) Publique os arquivos de idiomas

Na raiz do seu projeto Laravel, publique os arquivos de idiomas com o seguinte comando:

php artisan vendor:publish --tag=lapipay-lang

Faça uso da trait AsCustomerTrait

Na seu modelo de usuário \App\Models\User, faça o uso da trait AsCustomerTrait, seu modelo ficará parecido com isso:

<?php

namespace App\Models;

// outras importações...
use Ernandesrs\Lapipay\Models\AsCustomerTrait;

class User extends Authenticatable
{
    use AsCustomerTrait;

Alguns métodos da trait são importantes e seus retornos precisam ser adaptadas ao seu modelo User. Copie, cole e adapte ao seu modelo.

    /**
     * Customer id
     *
     * @return string
     */
    public function customerId(): string
    {
        return $this->id;
    }

    /**
     * Customer first name
     *
     * @return string
     */
    public function customerFirstName(): string
    {
        return $this->first_name;
    }

    /**
     * Customer last name
     *
     * @return string
     */
    public function customerLastName(): string
    {
        return $this->last_name;
    }

    /**
     * Customer email
     *
     * @return string
     */
    public function customerEmail(): string
    {
        return $this->email;
    }

    /**
     * Customer country
     *
     * @return string
     */
    public function customerCountry(): string
    {
        return 'br';
    }

    /**
     * Customer type
     * Tipo de pessoa, individual ou corporation
     *
     * @return string
     */
    public function customerType(): string
    {
        return 'individual';
    }

    /**
     * Customer phone number
     *
     * @return \Ernandesrs\Lapipay\Models\Phone
     */
    public function customerPhone(): \Ernandesrs\Lapipay\Models\Phone
    {
        return new \Ernandesrs\Lapipay\Models\Phone(55, 00000000000);
    }

    /**
     * Customer document
     *
     * @return \Ernandesrs\Lapipay\Models\Document
     */
    public function customerDocument(): \Ernandesrs\Lapipay\Models\Document
    {
        // return \Ernandesrs\Lapipay\Models\Document::cnpj(12345678910);
        // return \Ernandesrs\Lapipay\Models\Document::cnh(12345678910);
        return \Ernandesrs\Lapipay\Models\Document::cpf(12345678910);
    }

    /**
     * Customer address
     *
     * @return \Ernandesrs\Lapipay\Models\Address
     */
    public function customerAddress(): \Ernandesrs\Lapipay\Models\Address
    {
        return new \Ernandesrs\Lapipay\Models\Address(
            'Rua Street',
            7822,
            '29315000',
            'br',
            'sp',
            'São Paulo',
            'Centro',
            'Apartamento 98 Andar 12'
        );
    }

USO

O uso é bastante simples, veja:

Clientes

Ao criar um cliente, os dados do cliente serão salvos na base dados da gateway que gerará um ID para o cliente. Este ID será salvo na sua base dados e então poderá ser utilizado futuramente para facilitar outros processos(transações), bastando passar o ID.

Documentação | PT-BR

Cartões

Valida e salva um hash seguro do cartão gerado pela gateway na base de dados, isso facilitará cobranças de maneira segura.

Documentação | PT-BR

Pagamentos/cobranças

Todo processo para realização de pagamento/cobrança: adicionar cliente, produtos e efetuação de cobrança/pagamento.

Documentação | PT-BR