MultiPayment permite gerenciar pagamentos de diversos gateways da pagamento. Atualmente suporta o Iugu e Moip.

Overview

Introdução

MultiPayment permite gerenciar pagamentos de diversos gateways da pagamento. Atualmente suporta o Iugu e Moip.

Instalação

Instale esse pacote pelo composer:

composer require potelo/multi-payment

Agora, configure as variáveis necessárias para cada gateway que deseja usar no seu .env:

MULTIPAYMENT_DEFAULT=iugu

#iugu
IUGU_ID=
IUGU_APIKEY=

#moip
MOIP_APITOKEN=
MOIP_APIKEY=
php artisan vendor:publish --provider="Potelo\MultiPayment\Providers\MultiPaymentServiceProvider"

Verifique se o arquivo multi-payment.php foi criado no diretório config/app.

Opcionalmente você pode configurar o Trait, para facilitar o uso do metodo charge junto a um usuário.

use Potelo\MultiPayment\MultiPaymentTrait;

class User extends Authenticatable
{
    use MultiPaymentTrait;
}

Utilização

Utilize o método charge para criar uma transação de pagamento.

Usando a classe MultiPayment:

$payment = new \Potelo\MultiPayment\MultiPayment(); // gateway default será usado
$payment->charge($options);

// ou
$payment = new \Potelo\MultiPayment\MultiPayment('iugu');
$payment->charge($options);

// ou
$payment = new \Potelo\MultiPayment\MultiPayment();
$payment->gateway('moip')->charge($options);

Usando o Facade:

\Potelo\MultiPayment\MultiPayment::charge($options);

Usando o Trait:

$usuario->charge(10000, $options, 'moip');

Documentação

Método charge de MultiPayment recebe apenas o parâmetro $options:

$options = [
    'amount' => 10000,
    'customer' => [
        'name' => 'Nome do cliente',
        'email' => '[email protected]',
        'cpf' => '12345678901',
        'phone_number' => '11 99999-9999',
        'address' => [
            'street' => 'Rua do cliente',
            'number' => '123',
            'complement' => 'Apto. 123',
            'district' => 'Bairro do cliente',
            'city' => 'Cidade do cliente',
            'state' => 'SP',
            'zip_code' => '12345-678',
        ],
    ],
    'items' => [
        [
            'description' => 'Produto 1',
            'quantity' => 1,
            'price' => 10000,
        ],
        [
            'description' => 'Produto 2',
            'quantity' => 2,
            'price' => 5000,
        ],
    ],
    'payment_method' => 'credit_card',
    'credit_card' => [
        'number' => '1234567890123456',
        'month' => '12',
        'year' => '2022',
        'cvv' => '123',
        'first_name' => 'João',
        'last_name' => 'Maria'
    ],
];
atributo obrigatório tipo descrição exemplo
amount obrigatório caso items não seja informado int valor em centavos 10000
customer obrigatório array array com os dados do cliente ['name' => 'Nome do cliente'...]
customer.name obrigatório string nome do cliente 'Nome do cliente'
customer.email obrigatório string email do cliente '[email protected]'
customer.tax_document obrigatório no gateway moip string cpf ou cnpj do cliente '12345678901'
birth_date string formato yyyy-mm-dd data de nascimento '01/01/1990'
customer.phone_number string telefone '999999999'
customer.phone_area string DDD '999999999'
customer.address obrigatório para o método de pagamento bank_slip array array com os dados do endereço do cliente ['street' => 'Rua do cliente'...]
customer.address.street obrigatório string nome da rua 'Nome da rua'
customer.address.number obrigatório string número da casa '123'
customer.address.district obrigatório string bairro 'Bairro do cliente'
customer.address.city obrigatório string cidade 'Salvador'
customer.address.state obrigatório string estado 'Bahia'
customer.address.complement obrigatório string complemento 'Apto. 123'
customer.address.zip_code obrigatório string cep '12345678'
items obrigatório caso amount não tenha sido informado array array com os itens da compra [['description' => 'Produto 1',...
items.description obrigatório string descrição do item 'Produto 1'
items.quantity obrigatório int quantidade do item 1
items.price obrigatório int valor do item 10000
payment_method obrigatório 'credit_card','bank_slip' método de pagamento 'credit_card'
credit_card obrigatório caso payment_method seja 'credit_card' array array com os dados do cartão de crédito ['number' => '1234567890123456',...
credit_card.token string token do cartão para o gateway escolhido 'abcdefghijklmnopqrstuvwxyz'
credit_card.number obrigatório caso token não tenha sido informado string número do cartão de crédito '1234567890123456'
credit_card.month obrigatório caso token não tenha sido informado string mês de expiração do cartão de crédito '12'
credit_card.year obrigatório caso token não tenha sido informado string ano de expiração do cartão de crédito '2022'
credit_card.cvv obrigatório caso token não tenha sido informado string código de segurança do cartão de crédito '123'
credit_card.first_name string primeiro nome no cartão de crédito 'João'
credit_card.last_name string último nome no cartão de crédito 'Maria'
bank_slip array array com os dados do boleto ['expiration_date' => '2022-12-31',...
bank_slip.expiration_date string no formato yyyy-mm-dd data de expiração do boleto 2021-10-10
You might also like...
Metamask & web3js Ethereum payment method extenstion for Magento 2 without any third party gateways
Metamask & web3js Ethereum payment method extenstion for Magento 2 without any third party gateways

CurrencyPrecision Magento 2 Extension Metamask Ethereum payment method module for Magento 2 Table of contents Description Feature Installation Compose

Releases(v1.0.0)
Owner
null
Lightweight abstraction layer for payment gateways

Slickpay is lightweight abstraction layer for payment gateways. Documentation Documentation for Slickpay can be found on official website. Licence The

Slickpay 31 Oct 26, 2021
Xenon\LaravelBDSms is a sms gateway package for sending text message to Bangladeshi mobile numbers using several gateways like sslcommerz, greenweb, dianahost,metronet in Laravel framework

Xenon\LaravelBDSms is a sms gateway package for sending text message to Bangladeshi mobile numbers using several gateways for Laravel. You should use

Ariful Islam 95 Jan 3, 2023
Um site para diversos tipos de notícias.

Notícias Um site para diversos tipos de notícias. Configuração Tenha o Composer instalado em sua máquina e através de seu terminal entre no diretório

Ryan Menezes 2 Jan 1, 2022
Servicio Rest que permite llevar y consultar el gasto diario cotidiano

LaravelGastosApi es un servicio rest el cual le permite al usuario llevar un registro de sus gastos cotidianos. La Api cuenta con servicios de inserci

Jeremias Caballero 3 Jun 2, 2021
Site que permite encontrar todas as informações de um CEP e armazenar na lista de endereços cadastrados. Desenvolvido em Laravel com a API da VIACEP.

CEP Finder Site que permite encontrar todas as informações de um CEP e armazenar na lista de endereços cadastrados. Desenvolvido em Laravel com a API

Pedro Viana 0 Dec 26, 2021
Este aplicativo permite ingresar, editar y eliminar productos de una tienda.

Este aplicativo permite ingresar, editar y eliminar productos de una tienda. Tambien permite realizar ventas mediante el id del producto y en otro modulo tiene una lista detallada de todas las ventas realizadas.

Juan David 1 Jan 6, 2022
Lightweight abstraction layer for payment gateways

Slickpay is lightweight abstraction layer for payment gateways. Documentation Documentation for Slickpay can be found on official website. Licence The

Slickpay 31 Oct 26, 2021
Xenon\LaravelBDSms is a sms gateway package for sending text message to Bangladeshi mobile numbers using several gateways like sslcommerz, greenweb, dianahost,metronet in Laravel framework

Xenon\LaravelBDSms is a sms gateway package for sending text message to Bangladeshi mobile numbers using several gateways for Laravel. You should use

Ariful Islam 95 Jan 3, 2023
playSMS is a web interface for SMS gateways and bulk SMS services

README Latest development release is playSMS version 1.4.4-beta4 Latest stable release is playSMS version 1.4.3 Official project website: https://play

playSMS 662 Dec 31, 2022
Integerating Laravel with Payment Gateways Paypal, Stripe, Paymob, Paytabs and MyFatoorah

This Repo is for integerating Laravel with some Payment gateways Integeration with For these integerations you need to provide env variables from your

Sherif Nabil 4 Jul 12, 2022