PHP and Moip SDK: Do not redirect to the Debit link with: $ redirect = $ payment-getLinks () - getLink ('payOnlineBankDebitItau');

0

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");
    
asked by anonymous 28.07.2018 / 20:13

1 answer

0

The SDK requests 'payBoleto':

$payment = $order->payments()
    ->setBoleto($expiration_date, $logo_uri, $instructions)
    ->execute();

    $redirect = $payment->getLinks()->getLink('payBoleto');

    header("location:$redirect");
    
31.07.2018 / 22:00