Using the Moip SDK, I use the command to generate a link and be redirected to the link:
$redirect = $payment->getLinks()->getLink('payOnlineBankDebitItau');
header("location:$redirect");
But do not redirect. But when I execute by command, it prints the link and I can open it. The same way I use for ticket generation and works using the header ("location: $ redirect"); But for Debit Online, via Itaú, it does not work. What can I be doing wrong?
Follow the whole code:
<?php
require __DIR__.'/vendor/autoload.php';
use Moip\Moip;
use Moip\Auth\BasicAuth;
require __DIR__.'/php/MysqliDb.php';
require_once 'class.extenso.php';
if (!isset($_SESSION)) {
session_start();
}
// aqui pega do login que é de validacao e restrito.php
$id_candidato = $_SESSION['id_candidato'];
$cpfcandidato = $_SESSION['cpfcandidato'];
$id_doador = $_SESSION['id_doador'];
$descricao = $_SESSION['descricao'];
$valor = $_SESSION['valor'];
$valor_sem_virgula = str_replace(',', '', $valor);
$valor_final = str_replace('R$', '', $valor_sem_virgula);
// Retorna os dados do doador
$resultado = $base->rawQuery('SELECT * from cadastro_doador where idcadastro_doador = "'.$id_doador.'"');
$nome = $resultado[0]['nome'];
$cpf = $resultado[0]['cpf'];
$email = $resultado[0]['email'];
$endereco = $resultado[0]['endereco'];
$numero = $resultado[0]['numero'];
$bairro = $resultado[0]['bairro'];
$cidade = $resultado[0]['cidade'];
$estado = $resultado[0]['estado'];
$cep = $resultado[0]['cep'];
$celular = $resultado[0]['celular'];
$data_nascimento = $resultado[0]['nascimento'];
$nascimento = date('d-m-Y', strtotime($data_nascimento));
$token = 'MEU TOKEN';
$key = 'MINHA CHAVE';
$moip = new Moip(new BasicAuth($token, $key), Moip::ENDPOINT_SANDBOX);
$uniqid = uniqid();
// pagamento debito Itaú
$customer = $moip->customers()->setOwnId(uniqid())
->setFullname($nome)
->setEmail($email)
->setBirthDate($data_nascimento)
->setPhone(55, $celular)
->setTaxDocument($cpf)
->addAddress('BILLING', $endereco, $numero, $bairro, $cidade, $estado, $cep)
->create('');
$valor_inteiro = intval($valor_final);
$order = $moip->orders()->setOwnId(uniqid())
->addItem('Doação de ', 1, $descricao, $valor_inteiro)
->setCustomer($customer)
->create();
$expiration_date = new DateTime();
$expiration_date->add(new DateInterval('P3D'));
$payment = $order->payments()
->setOnlineBankDebit('341', $expiration_date, '#')
->execute();
$redirect = $payment->getLinks()->getLink('payOnlineBankDebitItau');
header("location:$redirect");
The Boleto that works is this:
<?php
require __DIR__.'/vendor/autoload.php';
require __DIR__.'/php/MysqliDb.php';
require_once 'class.extenso.php';
if (!isset($_SESSION)) {
session_start();
}
// aqui pega do login que é de validacao e restrito.php
$id_candidato = $_SESSION['id_candidato'];
$cpfcandidato = $_SESSION['cpfcandidato'];
$id_doador = $_SESSION['id_doador'];
$descricao = $_SESSION['descricao'];
$valor = $_SESSION['valor'];
echo $id_doador;
// Retorna os dados do doador
$resultado = $base->rawQuery('SELECT * from cadastro_doador where idcadastro_doador = "'.$id_doador.'"');
$nome = $resultado[0]['nome'];
$cpf = $resultado[0]['cpf'];
$email = $resultado[0]['email'];
$endereco = $resultado[0]['endereco'];
$numero = $resultado[0]['numero'];
$bairro = $resultado[0]['bairro'];
$cidade = $resultado[0]['cidade'];
$estado = $resultado[0]['estado'];
$cep = $resultado[0]['cep'];
$celular = $resultado[0]['celular'];
$data_nascimento = $resultado[0]['nascimento'];
$nascimento = date('d-m-Y', strtotime($data_nascimento));
//$_SESSION['valorextenso'] = clsTexto::valorPorExtenso($_GET['valor'], true, false);
// if ($_GET['id_candidato'] == null) {
// header('Location: ../doe.php?listagem&erro=nocandidato');
// exit();
// }
use Moip\Moip;
use Moip\Auth\BasicAuth;
$token = 'MEU TOKEN';
$key = 'MINHA CHAVE';
$moip = new Moip(new BasicAuth($token, $key), Moip::ENDPOINT_SANDBOX);
$uniqid = uniqid();
// vou ter que pegar os dados do doador aqui
$customer = $moip->customers()->setOwnId(uniqid())
->setFullname($nome)
->setEmail($email)
->setBirthDate($data_nascimento)
->setPhone($celular)
->setTaxDocument($cpf)
->addAddress('BILLING', $endereco, $numero, $bairro, $cidade, $estado, $cep)
->create('');
//$customer = $moip->customers()->get('CUS-N6VZ9065MCRW');
// pegar os dados do candidato aqui e colocar no boleto
$nome_candidato = $descricao;
$valor_boleto = 2500;
$order = $moip->orders()->setOwnId(uniqid())
->addItem('Doação de '.$nome_candidato, 1, '$nome_candidato', $valor_boleto)
->setCustomer($customer)
->create();
$expiration_date = new DateTime();
$expiration_date->add(new DateInterval('P3D'));
$logo_uri = 'https://prafrentefederais.com.br/assets/images/photo-2018-06-02-15-08-22-512x256.jpg';
$instructions = [
'Não receber após a data de vencimento.',
'Doação no valor de '.$nome_candidato.'.',
'PRAFRENTEFEDERAIS: prafrentefederais.com.br.',
];
$payment = $order->payments()
->setBoleto($expiration_date, $logo_uri, $instructions)
->execute();
$redirect = $payment->getLinks()->getLink('payBoleto');
header("location:$redirect");