Plugin Moip Assinaturas para CakePHP - Conheça e aprenda a usar

Esse plugin nos permite utilizar todos os recursos do Moip Assinaturas em suas aplicações web desenvolvidas em CakePHP.

[ Hits: 16.493 ]

Por: Fábio Marcelo de Lima em 13/02/2015 | Blog: http://www.bendit.com.br


Webhooks



Documentação do Webhooks:
Conforme descrição do Moip:

"O Moip Assinaturas utiliza webhooks para notificar a sua aplicação em tempo real sobre os eventos que afetam os recursos da sua conta, como clientes, assinaturas, faturas e pagamentos."
Com esse plugin, ele torna sua vida mais fácil para receber as notificações do Moip (NASP).

A primeira coisa a fazer é configurar o "tokenNasp" e o "activeWebhook" para habilitar seu funcionamento.

Exemplo:

Configure::write('MoipAssinaturas', array(
    'token' => 'Insira-seu-token-aqui',
    'key' => 'Insira-sua-chave-de-acesso-aqui',
    'isProd' => false,
    'tokenNasp' => 'Seu-token-aqui',
    'activeWebhook' => true,
));

Você também precisa configurar a URL de notificação para receber os webhooks no painel do Moip ou através do componente MoipAssinaturas::Preferences. A URL que deve ser informada é:
  • http://seu-dominio/diretorio-seu-projeto/moip_assinaturas/webhooks

Todas as notificações que chegarem nesse endereço passarão por 3 verificações:

1. Se o Webhook está ativado nas configurações do plugin;
2. Se o Token do Nasp foi informado nas configurações do plugin;
3. Se o Token do Nasp informado na configuração é o mesmo do Header da Notificação.

Se algum desse falhar, a notificação não será processada e retornará uma mensagem de erro de acordo com o erro.

Para utilizar os dados da notificação, será necessário criar um Controller onde você poderá customizar ou tomar ações baseados nessas notificações. Como por exemplo, disparar um e-mail para o cliente ou gravar os dados no banco, baseado nos tipos das notificações. Veja aqui os tipos.

* Nota importante: o Controller, você deverá criar no diretório app/Controller da sua aplicação e deverá ter o nome "NaspController", e possuir pelo menos um método que deverá se chamar "process".

Exemplo para NaspController onde o método process grava as informações recebidas no banco de dados em formato JSON:

<?php

App::uses('AppController', 'Controller');

class NaspController extends AppController {

public $uses = array('Log');

public $components = array();

public function process($data){
    $this->request->data['Log']['log'] = json_encode($data);

    if ($this->Log->save($this->request->data)) {
        echo 'Dados salvos com sucesso';
    } else {
        echo 'Ocorreu um erro ao salvar os dados';
    }
}
}

?>

Considerações finais

Em caso de bugs, abra uma issue no Git Hub:
Como contribuir via Git Hub:

1. Fork it
2. Crie um novo branch ("git checkout -b my-new-feature")
3. Commit suas features ("git commit -am 'Add some feature'")
4. Push ("git push origin my-new-feature")
5. Crie um novo Pull Request

Contribuições são bem-vindas.

Repositório do projeto no Git Hub:
Documentação oficial:
Qualquer dúvida em utilizar, é só mandar um e-mail que tento ajudar como posso:

Fábio Lima [fabio@bendit.com.br]
Bendit - Web & Mobile

Página anterior    

Páginas do artigo
   1. Introdução
   2. Instalação e configuração
   3. Conhecendo o plugin
   4. Exemplo de utilização API de Planos
   5. Exemplo de utilização API de Clientes
   6. Exemplo de utilização API de Assinaturas
   7. Exemplo de utilização API de Faturas
   8. Exemplo de utilização API de Pagamentos
   9. Exemplo de utilização API de Retentativas
   10. Exemplo de utilização API de Preferências
   11. Webhooks
Outros artigos deste autor

Endian Firewall - Solução completa para um servidor de internet

Leitura recomendada

Construindo componentes em PHP e jQuery

Simulando o SSH via WEB

Servidor LAMP + PHPMyAdmin + Webalizer

Conheça o PHP-Fusion

Lighttpd + SQLite + PHP

  
Comentários
[1] Comentário enviado por eduardoweiland em 13/02/2015 - 16:21h

Parabéns, excelente plugin. Muito bem desenvolvido e, melhor ainda, muitíssimo bem documentado. Só faltou criar um pacote para o composer :) mas fora isso é um dos melhores plugins para o CakePHP que eu já vi.

[2] Comentário enviado por fabiolima em 21/02/2015 - 00:35h

Opa, obrigado ~eduardoweiland, realmente me preocupei com a documentação para deixar o mais simples de usar. Quano ao composer, pode deixar que vou preparar uma atualização do plugin contemplando ele :). Abs.

[3] Comentário enviado por Anderson631 em 19/12/2016 - 00:16h

Fábio, que excelente trabalho! Esse plugin ficou ótimo, e ainda com uma documentação/tutorial didático como esse, deixou sensacional! Infelizmente a documentação do Moip sobre essas Assinaturas, pelo menos pra mim, ficou muito disperso em muitas páginas e confusa. Mas seu plugin iré me ajudar muito! Deus lhe abençoe!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts