moiplabs/moip-php — Issue #23: Ao tentar pagar direto com o boleto, obtivemos erro até descobrir que setPagamentoDireto() existe e é o único método em pt-br da lib toda. Bizarro.
Author: djalmaaraujo
Created: 2011-10-20 04:28:49+00:00
State: open

Segue abaixo uma implementacao para boletos, funcionando:
Ao tentar pagar direto com o boleto, obtivemos erro até descobrir que setPagamentoDireto() existe e é o único método em pt-br da lib toda. Bizarro.

Resumidamente, voce define como ('Direto'), mas é como se fosse inutil, voce precisa setar setPagamentoDireto() para que funcione.

```php
$payer = array();
$payer['nome'] = 'Djalma Araujo';
$payer['email'] = 'djalma.araujo@gmail.com';
$payer['celular'] = '(81)55558899';
$payer['apelido'] = 'djalmaaraujo';
$payer['identidade'] = '111.111.111-11';
$payer['endereco']['logradouro'] = 'Rua lalala';
$payer['endereco']['numero'] = '555';
$payer['endereco']['complemento'] = 'Apt 503';
$payer['endereco']['bairro'] = 'Bairro';
$payer['endereco']['cidade'] = 'Cidade';
$payer['endereco']['estado'] = 'PE';
$payer['endereco']['pais'] = 'BRA';
$payer['endereco']['cep'] = '55448-888';
$payer['endereco']['telefone'] = '(81)32222222';

$this->gateway = new MoIP();
$this->gateway->setCredential(array(
'key'=>'123',
'token'=>'123')
)
->setReason('Testes')
->setUniqueID(rand(1,rand(5, 9999)))
->setValue(123.45)
->setPayer($payer)
->setEnvironment('producao')
->setPaymentType('Direto')
->setPagamentoDireto(array(
'forma' => 'boleto'
))
->addPaymentWay('boleto', array(
'dias_expiracao'=> array(
'dias' => 7,
'tipo' => 'corridos'
)
)
)
->validate()
->send();

$response = $this->gateway->getAnswer();
if ($response->success) {
header('Location: ' . $this->redirectGateway . $response->token);
exit;
} else {
die('ERROR');
}
```