Download the PHP package potelo/mo-payment without Composer
On this page you can find all versions of the php package potelo/mo-payment. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download potelo/mo-payment
More information about potelo/mo-payment
Files in potelo/mo-payment
Package mo-payment
Short Description MoPayment fornece uma interface para controlar pagamentos no moip.com.br
License MIT
Informations about the package mo-payment
MoPayment
Introdução
MoPayment é baseado no Laravel Cashier e fornece uma interface para controlar assinaturas do moip.com.br
Instalação Laravel 5.x
Instale esse pacote pelo composer:
Se você não utiliza o auto-discovery, Adicione o ServiceProvider em config/app.php
Agora, configure as variáveis utilizadas pelo GuPayment no seu .env:
Antes de usar o MoPayment você precisa preparar o banco de dados. Primeiro você tem que publicar o migration.
Caso precise modificar ou acrescentar colunas na tabela de assinatura, basta editar os migrations publicados. Depois, basta rodar o comando php artisan migrate.
Agora vamos adicionar em config/services.php duas configurações. A classe do usuário, sua chave de api que o Iugu fornece e o nome da tabela utilizada para gerenciar as assinaturas, a mesma escolhida na criação do migration.
Criar assinatura
Para criar uma assinatura, primeiro você precisa ter uma instância de um usuário que extende o MoPaymentTrait. Você então deve usar o método newSubscription
para criar uma assinatura:
Sobrescrever valor do plano
Caso deseje sobrescrever o valor do plano, utilize o método amount
. Ex: R$ 20,90 deve ser informado como "2090"
Cupom de desconto
Se necessário, você pode associar cupons de descontos para oferecer aos assinantes do seus planos. Para informar um cupom de desconto ao criar uma assinatura utilize o método coupon
.
Checar status da assinatura
Uma vez que o usuário assine um plano na sua aplicação, você pode verificar o status dessa assinatura através de alguns métodos. O método subscribed
retorna true se o usuário possui uma assinatura ativa, mesmo se estiver no período trial:
Se você precisa saber se um a assinatura de um usuário está no período trial, você pode usar o método onTrial
. Esse método pode ser útil para informar ao usuário que ele está no período de testes, por exemplo:
Para saber se uma assinatura foi suspensa, basta usar o método suspended
na assinatura:
Você também pode checar se uma assinatura foi suspensa mas o usuário ainda se encontra no "período de carência". Por exemplo, se um usuário cancelar a assinatura no dia 5 de Março mas a data de vencimento é apenas no dia 10, ele está nesse período de carência até o dia 10. Para saber basta utilizar o método onGracePeriod
:
Cancelar assinatura
Para cancelar uma assinatura, basta chamar o método suspend
na assinatura do usuário:
Reativar assinatura
Se um usuário tem uma assinatura suspensa e gostaria de reativá-la, basta utilizar o método resume
.
Faturas
Você pode facilmente pegar as faturas de um usuário através do método invoices
:
Assinantes
Quando você utiliza o método newSubscription
o cliente é criado automaticamente. Porém para criar um cliente manualmente, você pode utilizar o método createAsMoipCustomer
.
Webhooks
Webhooks são endereços (URLs) para onde o Moip dispara notificações para certos eventos que ocorrem na sua conta. Para utilizar você precisa configurar uma rota para o método handleWebhook
, a mesma rota que você configurou no seu painel do Moip:
O MoPayment tem métodos para atualizar o seu banco de dados caso uma assinatura seja suspensa. Apontando a rota para esse método, isso ocorrerá de forma automática.
Lembrando que você precisa desativar a proteção CRSF para essa rota. Você pode colocar a URL em except
no middleware VerifyCsrfToken
:
Outros webhooks
O Moip possui vários outros webhooks e para você criar para outros eventos basta estender o WebhookController
. Seus métodos devem corresponder a handle + o nome do evento em "camelCase". Por exemplo, ao criar uma nova fatura, o Moip envia um gatilho com o seguinte evento: invoice.created
, então basta você criar um método chamado handleInvoiceCreated
.
Caso queira testar os webhooks em ambiente local, você pode utilizar o ngrok.