# Criando o módulo

O primeiro passo para desenvolver é compreender como o modulo é organizado dentro do sistema. Para tanto, tenha em mente que cada modulo deve ser representado por um arquivo com nome exclusivo, escrito em minúsculo e armazenado no diretório /modulos/pagamentos sendo seu respectivo arquivo de retorno (caso aplicável) armazenado, com o mesmo nome, no diretório /módulos/pagamentos/retorno.



Disponibilizamos no github os arquivos de exemplo para o desenvolvimento do primeiro modulo, que desmembramos abaixo.



#### Variável $moduloPagamento

```php
<?php
# MODULO DE PAGAMENTO DE EXEMPLO

$moduloPagamento=array('nome'=>'exemplo','nomeVisivel'=>'Modulo de exemplo');
```

É uma variável do tipo array que recebe informações básicas sobre o modulo, onde “nome” deve ser o mesmo nome dado ao arquivo que contem as informações do modulo sem a extensão “**.php**”, nesse caso, “**exemplo**”.

No mesmo sentido, a chave “**nomeVisivel**” é o nome da forma de pagamento mostrada ao usuário quando da utilização do modulo. _Esse valor é apenas uma referencia, pois pode ser alterado pelo administrador após ativar o modulo no sistema_.



#### Variável $dadosModuloPagamento



```php
$dadosModuloPagamento=array(

	/*ex: array('a',		'b',		'c',		300,	d,		e,	f,	g),
	
	a = tipo de campo (textfield, select, textarea, radio, checkbox, password)
	b = nome/Rotulo do campo, legenda a ser exibida ao usuario
	c = nome do campo, parametro a ser utilizado	
	300 = largura do campo em pixels
	d = altura do campo (aplicavel ao textarea)
	e = campo obrigatorio (true = sim, false = nao)
	f = array com valores das opções, usado em select e radio ex: array('opcao1' => 1, 'opcao2' => 2)
	g = rotulo adicional ao usuario, aplicado ao final do campo
	
	*/
	
	array('textfield', 'Token', 'token', 300, '', true, '', 'seu token'),
	array('radio', 'Campo2', 'campo2', 300, '', true, array('opcao1' => 1, 'opcao2' => 2), ''),
);
```

Contem informações sobre os campos de configuração do modulo.

Neste array são gerados os campos que o administrador deverá preencher ao ativar o modulo.

Os campos comumente cadastrados são: Email, Conta, token, taxa, dentre outros dados configuráveis que você possa precisar para criar o seu modulo de pagamento.

Os campos são gerados na ordem cadastrada seguindo a regra de um array/campo por linha como no arquivo de exemplo.



#### Função moduloFatura\_exemplo()

```php
function ModuloFatura_exemplo(){ //substituia exemplo pelo nome de seu arquivo/modulo

	global $parametros, $config;
	
	/*$parametros['fatura']
	  $parametros['cliente']
	  $parametros['moduloPagamento']*/
	
	$codigo = 'Código html/javascript visivel na fatura.<br />Token: ';		
	$codigo.= $parametros['moduloPagamento']['token'];
	
	return $codigo;

}
```

O nome dessa função é composto pelo prefixo “ModuloFatura\_” sucedido do nome de seu modulo. No nosso caso, “exemplo”.

A função é executada toda vez que o cliente final abre uma fatura que utiliza esse modulo/forma de pagamento, ou quando a forma de pagamento em questão é selecionada.

As principais informações estão armazenadas na variável **$parametros** onde estão organizados os dados distribuídos em arrays.



**$parametros\['fatura']** – Array que contem os dados referentes a fatura como (id\_fatura, valor, valor\_pago, data\_vencimento)

**$parametros\['cliente']** – Array que contem os dados do cliente como (nome, empresa, telefone, email, endereço, numero, bairro, cidade, estado, cpf\_cnpj)

**$parametros\['moduloPagamento']** – Array que contem os dados referentes ao seu modulo. São os valores configurados para os campos que você criou no item acima. No nosso exemplo, token e campo2



{% hint style="info" %}
Caso haja alguma dúvida quanto ao correto nome do campo a ser utilizado você pode listar todos os dados por meio da função **print\_r($parametros)**.
{% endhint %}

