zabaala / moip
Permita que sua aplicação Laravel se integre com o servico de pagamento recorrente do Moip (Moip Assinaturas)
Requires
- illuminate/support: ^5.3
This package is not auto-updated.
Last update: 2022-06-25 07:56:04 UTC
README
Moip Assinaturas
Permita que sua aplicação Laravel se integre com o servico de pagamento recorrente do Moip.
Pacote criado a partir do SDK V2 criado pela Moiplabs.
Instalando o pacote
Para incluir a última versão estável do pacote, execute o seguinte comando:
composer require zabaala/moip
Você pode optar também por utilizar versões não estáveis do pacote, o que te permitirá utilizar recursos que ainda estão em desenvolvimento ou em teste.
Para isso, execute:
composer require zabaala/moip:dev-develop
Depois de incluir a dependência zabaala/moip
no seu projeto, você vai precisar adicionar o Service Provider e um Aliase do pacote no seu arquivo config/app.php
. No final, você deve ter algo semelhante ao código a baixo:
'providers' => [ ... Zabaala\Moip\MoipServiceProvider::class, ... ], 'aliases' => [ ... 'Moip' => Zabaala\Moip\MoipFacade::class, ... ],
Configurando o Pacote
O pacote zabaala/moip
possue um arquivo de configuração que precisa ser publicado para a pasta de configuração raiz do seu projeto Laravel. Para isto, execute o comando:
php artisan vendor:publish --tag=moip
Ao final do processo, você encontrará um arquivo chamado moip.php
dentro da pasta config/
do seu projeto.
Neste momento você vai precisar configurar o seu pacote. Antes de continuar com a configuração, é importante que você já tenha uma conta criada com o Moip. Caso você ainda não possua uma conta Moip tenha, acesse http://cadastro.moip.com.br e efetue seu cadastro. Após você efetuar seu cadastro e tiver a certeza de que sua conta está ativa, autentique-se no ambiente do Moip.
O Moip possue dois End Points:
- Production: Ambiente final de integração ou Ambiente de Produção. Aqui suas operações serão feitas com dados reais e serão processadas pelo Moip.
- Sandbox: Ambiente de teste de integração. Aqui suas operações são salvas no moip, mas não são submetidas às operadoras de cartões de crédito.
Por padrão, o pacote utiliza o End Point sandbox
como padrão em suas configurações.
Uma outra informação importante também, é que o pacote estimula a paramatrização saudável da sua aplicação. Por isso, embora exista um arquivo moip.php
na sua pasta configurações, recomendo fortemente que você parametrize essas configurações no seu arquivo .env
. Então, para isso, basta incluir as seguintes linhas no final do seu arquivo .env
:
MOIP_CLIENT=Client Name
MOIP_ENDPOINT=sandbox
MOIP_API_TOKEN=[your-api-token]
MOIP_API_KEY=[your-api-key]
Defina os valores corretos para cada uma das variaveis de ambiente relacionadas acima.
Utilizando o pacote
Com esse pacote você poderá:
- Planos (Plan): (listar, consultar, criar, ativar, desativar);
- Cupons (Coupon): (listar, consultar, criar, ativar, desativar);
- Assinantes (Subscriber): (listar, consultar, criar, atualizar);
- Informações de Cobrança (BillingInfo): (Atualizar dados de cobrança);
- Assinaturas (Subscription): (Criar, listar, consultar detalhes, suspender, reativar, cancelar, alterar);
- Faturas (Invoice): (Listar, consultar);
- Pagamentos (Payment): (Listar, consultar);
- Números de Cartões de Crédito para testes.
Planos (Plans)
Listando os planos existentes:
$moip = Moip::plans()->all();
Consultando um plano:
$moip = Moip::plans()->find($code);
Criando um plano:
$plans = Moip::plans(); $plans->setCode('PLAN-123-7789'); $plans->setName("PLANO 01"); $plans->setDescription("Plano básico de assinatura"); $plans->setAmount("3000"); // Corresponde à R$ 30,00 $plans->setInterval('MONTH', 1); // Recorrência da cobrança $plans->setPaymentMethod(\Zabaala\Moip\Resource\Payment::METHOD_CREDIT_CARD); try { $plans->create(); } catch (RuntimeException $e) { echo $e->getMessage(); }
Alterando um plano:
$plans = Moip::plans(); $plans->setCode('PLAN-UNIQ-CODE'); $plans->setName("PLANO 01"); $plans->setDescription("Plano básico de assinatura"); $plans->setAmount("3000"); // Corresponde à R$ 30,00 $plans->setInterval('MONTH', 1); // Recorrência da cobrança $plans->setPaymentMethod(\Zabaala\Moip\Resource\Payment::METHOD_CREDIT_CARD); try { $plans->update(); } catch (RuntimeException $e) { echo $e->getMessage(); }
Ativando um plano:
$moip = Moip::plans(); $plans->setCode('PLAN-UNIQ-CODE'); try { $plans->activate(); } catch (RuntimeException $e) { echo $e->getMessage(); }
Desativando um plano um plano:
$plans = Moip::plans(); $plans->setCode('PLAN-UNIQ-CODE'); try { $plans->inactivate(); } catch (RuntimeException $e) { echo $e->getMessage(); }
Cupons (Coupons)
Listando todos os cupons de desconto:
$coupons = Moip::coupons()->all();
Criando um novo cupom de desconto:
$coupons = Moip::coupons(); $coupons->setCode('ABCD-1234'); $coupons->setName('Coupon de teste de integração'); $coupons->setDescription('Utilizado para testar a integração com o Moip'); $coupons->setDiscount('20', 'percent'); $coupons->setStatus('active'); $coupons->setDuration('once'); // once|repeating|forever $coupons->setMaxRedemptions('100'); $coupons->setExpirationDate('31', '12', '2016'); try { $coupons->create(); } catch (\Exception $e) { throw new \Exception($e); }
Ativando um plano:
$coupons = Moip::coupons(); $coupons->setCode('ABCD-1234'); $coupons->activate();
Desativando um plano:
$coupons = Moip::coupons(); $coupons->setCode('ABCD-1234'); $coupons->inactivate();
Assinantes (Subscribers)
Listando todos os assinantes:
$subscriber = Moip::subscribers(); $subscriber->all();
Consultando um assinante:
$moip = Moip::subscribers(); $subscriber->get('CLIENT-CODE');
Criando um novo assinante:
$subscriber = Moip::subscribers(); $subscriber->setCode('CLIENT-CODE'); $subscriber->setEmail('emaildocliente@domain.com'); $subscriber->setFullName("FULANO DE TAL"); $subscriber->setCpf("00000000000"); // Sem mascara. $subscriber->setPhone(/* code area */ '11', /* phone number */ '999999999'); // Sem mascara. $subscriber->setBirthDate(/* Day */ '31', /* Month */ '12', /* Year */ '1990'); $subscriber->setAddress( 'AVENIDA CORONEL LINHARES', // street. '4565', // number. 'AP 304', // complement. Can be null. 'CENTRO', // District. 'SAO PAULO', // City. 'SP', // State. '01000000' // Zipcode. ); try { $subscriber->create(); } catch (RuntimeException $e) { echo $e->getMessage(); }
Atualizando um assinante:
$subscriber = Moip::subscribers(); $subscriber->setCode('CLIENT-CODE'); $subscriber->setEmail('emaildocliente@domain.com'); $subscriber->setFullName("FULANO DE TAL"); $subscriber->setCpf("00000000000"); // Sem mascara. $subscriber->setPhone(/* code area */ '11', /* phone number */ '999999999'); // Sem mascara. $subscriber->setBirthDate(/* Day */ '31', /* Month */ '12', /* Year */ '1990'); $subscriber->setAddress( 'AVENIDA CORONEL LINHARES', // street. '4565', // number. 'AP 304', // complement. Can be null. 'CENTRO', // District. 'SAO PAULO', // City. 'SP', // State. '01000000' // Zipcode. ); try { $subscriber->update(); } catch (RuntimeException $e) { echo $e->getMessage(); }
Informações de cobrança (BillingInfo)
Atualizando o cartão de crédito de um determinado assinante:
$billingInfo = Moip::billingInfos(); $billingInfo->setSubscriberCode('CLIENT-CODE'); $billingInfo->setCreditCard( '0000000000000000', // credit card number. '08', // expiration day. '20', // expiration year with two digits. 'FULANO C DE TAL' // holder name. ); try { $billingInfo->update(); } catch (RuntimeException $e) { echo $e->getMessage(); }
Assinaturas (Subscriptions)
Listando todas as assinaturas:
$subscription = Moip::subscriptions(); $subscription->get('SUBSCRIPTION-CODE');
Consultando uma assinatura:
$moip = Moip::subscriptions(); $subscription->get('SUBSCRIPTION-CODE');
Criando uma assinatura:
$subscription = Moip::subscriptions(); $subscription->setCode(uniqid()); $subscription->setAmount('3000'); $subscription->setPaymentMethod(\MoipAssinaturas\Resource\Payment::METHOD_CREDIT_CARD); $subscription->setPlanCode('PLAN-CODE'); $subscription->setSubscriberCode('02'); try { $subscription->create(); } catch (RuntimeException $e) { echo $e->getMessage(); }
Alterando uma assinatura:
$subscription = Moip::subscriptions(); $subscription->setCode('SUBSCRIPTION-CODE'); $subscription->setPlanCode('PLAN-CODE'); $subscription->setNextInvoiceDate(/* day */ '05', /* month */ '03', /* year with 4 digits */ '2016'); try { $subscription->update(); } catch (RuntimeException $e) { echo $e->getMessage(); }
Faturas (Invoice)
Listando todas as faturas:
$invoice = Moip::invoices(); $invoice->setSubscriptionCode('SUBSCRIPTION-CODE'); $invoice->all();
Consultando uma assinatura:
$invoice = Moip::invoices(); $invoice->get('INVOICE-CODE');
Pagamentos (Payments)
Listando todos os pagamentos:
$payments = Moip::payments(); $payments->setInvoiceCode('INVOICE-CODE'); $payments->all();
Consultando um pagamento:
$payments = Moip::payments(); $payments->get('PAYMENT-ID');
Cartões de Créditos para teste
Abaixo seguem alguns números de cartões de crédito que podem ser utilizados para teste:
American Express*: 376411112222331
Mastercard: 5555666677778884
Diners: 30111122223331
Visa: 4073020000000002
Hipercard: 3841009009123456089
*O cartão American Express possui CVV de 4 dígitos, ao contrário de todas as bandeiras que possuem CVV com apenas 3.
Licensa
MIT License.