Ir para conteúdo
  • Cadastre-se

duvida código


Posts Recomendados

<?php

function gerencianetboleto_config()
{
    $configarray = array(
        "FriendlyName"     => array("Type" => "System", "Value" => "Fortunus"),
        "username"         => array("FriendlyName" => "Token", "Type" => "text", "Size" => "40",),
        "configVencimento" => array(
            "FriendlyName" => "Configurações de Vencimento",
            "Type"         => "yesno",
            "Description"  => "Utilizar configurações de vencimento da GerênciaNet (vencimento informado no WHMCS é ignorado)",
        )
    );
    return $configarray;
}

function gerencianetboleto_link($params)
{
    $urlCallback = $params['systemurl'] . '/modules/gateways/callback/gerencianetboleto.php';

    //data
    $table       = "tblinvoices";
    $fields      = "duedate, userid";
    $where       = array(
        "id" => $params['invoiceid'],
    );
    $sort        = "id";
    $sortorder   = "ASC";
    $limits      = "1";
    $result      = select_query($table, $fields, $where, $sort, $sortorder, $limits);
    $invoiceData = mysql_fetch_array($result);

    $duedate       = $invoiceData['duedate'];
    $camposDueDate = explode('-', $duedate);
    $novoDueDate   = $camposDueDate[2] . '/' . $camposDueDate[1] . '/' . $camposDueDate[0];
    $userId        = $invoiceData['userid'];

    //data - tblclients
    $table       = 'tblclients';
    $fields      = 'id,firstname,lastname,email, address1, address2, city, state, postcode';
    $where       = array(
        'id' => $userId
    );
    $sort        = 'id';
    $sortorder   = "ASC";
    $limits      = 1;
    $usuario     = select_query($table, $fields, $where, $sort, $sortorder, $limits);
    $usuarioData = mysql_fetch_array($usuario);

$postcode = preg_replace("/[()-._]/", '', $usuarioData['postcode']);
if ( strlen($usuarioData['state']) != 2 ) {
$state = '';
} else {
$state = $usuarioData['state'];
}

    $xml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><boleto></boleto>');

$xml->addChild('token', $params['username']);
    $clientes = $xml->addChild('clientes');
    $cliente = $clientes->addChild('cliente');
$nomeRazaoSocial = $cliente->addChild('nomeRazaoSocial');
gerencianetboleto_addCData($nomeRazaoSocial, $usuarioData['firstname'] . ' ' . $usuarioData['lastname']);

$opcionais = $cliente->addChild('opcionais');
    $email = $opcionais->addChild('email');
gerencianetboleto_addCData($email, $usuarioData['email']);

$cep = preg_replace("/[()-.]/", "", $order_info['payment_postcode']);
$opcionais->addChild('cep', $postcode);

$rua = $opcionais->addChild('rua');
gerencianetboleto_addCData($rua, $usuarioData['address1']);
$complemento = $opcionais->addChild('complemento');
gerencianetboleto_addCData($complemento, $usuarioData['address2']);

$opcionais->addChild('estado', $state);
$cidade = $opcionais->addChild('cidade');
gerencianetboleto_addCData($cidade, $usuarioData['city']);

$opcionais->addChild('retorno', 'whmcs_' . $params['invoiceid']);

$itens = $xml->addChild('itens');

//data - itens
    $table     = "tblinvoiceitems";
    $fields    = "description,amount";
    $where     = array(
        "invoiceid" => $params['invoiceid'],
    );
    $sort      = "id";
    $sortorder = "ASC";
    $limits    = "";
    $result    = select_query($table, $fields, $where, $sort, $sortorder, $limits);

$totalItem = 0;
    while ($data = mysql_fetch_array($result)) {
$item = $itens->addChild('item');
$descricaoItem = $item->addChild('descricao');
gerencianetboleto_addCData($descricaoItem, str_replace("'", "", $data['description']));

$valorItem = preg_replace("/[.,-]/","", $data['amount']);
$totalItem += $valorItem;

$item->addChild('valor', $valorItem);
$item->addChild('qtde', 1);
    }

if ($params['configVencimento'] != 'on') {
$xml->addChild('vencimento', $novoDueDate);
}

$valor = preg_replace("/[.,-]/", "", $params['amount']);
$desconto = $totalItem - $valor;

if ($desconto > 0) {
$bOpcionais = $xml->addChild('opcionais');
$bOpcionais->addChild('descontoSobreTotal', $desconto);
}

$xmlParaEnvio = $xml->saveXML();

    $code = "<form method='post' action='https://integracao.gerencianet.com.br/whmcs/emitir'>
    <input type='hidden' name='entrada' value='" . $xmlParaEnvio . "' />
<input type='hidden' name='callback' value='" . $urlCallback . "' />
<input type='hidden' name='versao' value='2.0' />
<input type='hidden' name='tipo' value='boleto' />
<input type='hidden' name='token' value='". $params['username'] . "' />
<input type='hidden' name='valor' value='". $valor . "' />
<input type='hidden' name='configVencimento' value='". $params['configVencimento'] . "' />
<input type='hidden' name='vencimento' value='". $novoDueDate . "' />
    <input type='submit' value='Realizar Pagamento' />

</form>";

    return $code;
}

function gerencianetboleto_addCData($path, $string) {
  $dom = dom_import_simplexml($path);
  $cdata = $dom->ownerDocument->createCDATASection($string);
  $dom->appendChild($cdata);
}
Link para o comentário
Compartilhar em outros sites

@traysistemas, funcionou aqui. Veja: Eu apenas deixei a função de enviar padrão ocultada, assim o botão lê a função enviar.

<?php

function gerencianetboleto_config()
{
    $configarray = array(
        "FriendlyName"     => array("Type" => "System", "Value" => "Fortunus"),
        "username"         => array("FriendlyName" => "Token", "Type" => "text", "Size" => "40",),
        "configVencimento" => array(
            "FriendlyName" => "Configurações de Vencimento",
            "Type"         => "yesno",
            "Description"  => "Utilizar configurações de vencimento da GerênciaNet (vencimento informado no WHMCS é ignorado)",
        )
    );
    return $configarray;
}

function gerencianetboleto_link($params)
{
    $urlCallback = $params['systemurl'] . '/modules/gateways/callback/gerencianetboleto.php';

    //data
    $table       = "tblinvoices";
    $fields      = "duedate, userid";
    $where       = array(
        "id" => $params['invoiceid'],
    );
    $sort        = "id";
    $sortorder   = "ASC";
    $limits      = "1";
    $result      = select_query($table, $fields, $where, $sort, $sortorder, $limits);
    $invoiceData = mysql_fetch_array($result);

    $duedate       = $invoiceData['duedate'];
    $camposDueDate = explode('-', $duedate);
    $novoDueDate   = $camposDueDate[2] . '/' . $camposDueDate[1] . '/' . $camposDueDate[0];
    $userId        = $invoiceData['userid'];

    //data - tblclients
    $table       = 'tblclients';
    $fields      = 'id,firstname,lastname,email, address1, address2, city, state, postcode';
    $where       = array(
        'id' => $userId
    );
    $sort        = 'id';
    $sortorder   = "ASC";
    $limits      = 1;
    $usuario     = select_query($table, $fields, $where, $sort, $sortorder, $limits);
    $usuarioData = mysql_fetch_array($usuario);

$postcode = preg_replace("/[()-._]/", '', $usuarioData['postcode']);
if ( strlen($usuarioData['state']) != 2 ) {
$state = '';
} else {
$state = $usuarioData['state'];
}

    $xml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><boleto></boleto>');

$xml->addChild('token', $params['username']);
    $clientes = $xml->addChild('clientes');
    $cliente = $clientes->addChild('cliente');
$nomeRazaoSocial = $cliente->addChild('nomeRazaoSocial');
gerencianetboleto_addCData($nomeRazaoSocial, $usuarioData['firstname'] . ' ' . $usuarioData['lastname']);

$opcionais = $cliente->addChild('opcionais');
    $email = $opcionais->addChild('email');
gerencianetboleto_addCData($email, $usuarioData['email']);

$cep = preg_replace("/[()-.]/", "", $order_info['payment_postcode']);
$opcionais->addChild('cep', $postcode);

$rua = $opcionais->addChild('rua');
gerencianetboleto_addCData($rua, $usuarioData['address1']);
$complemento = $opcionais->addChild('complemento');
gerencianetboleto_addCData($complemento, $usuarioData['address2']);

$opcionais->addChild('estado', $state);
$cidade = $opcionais->addChild('cidade');
gerencianetboleto_addCData($cidade, $usuarioData['city']);

$opcionais->addChild('retorno', 'whmcs_' . $params['invoiceid']);

$itens = $xml->addChild('itens');

//data - itens
    $table     = "tblinvoiceitems";
    $fields    = "description,amount";
    $where     = array(
        "invoiceid" => $params['invoiceid'],
    );
    $sort      = "id";
    $sortorder = "ASC";
    $limits    = "";
    $result    = select_query($table, $fields, $where, $sort, $sortorder, $limits);

$totalItem = 0;
    while ($data = mysql_fetch_array($result)) {
$item = $itens->addChild('item');
$descricaoItem = $item->addChild('descricao');
gerencianetboleto_addCData($descricaoItem, str_replace("'", "", $data['description']));

$valorItem = preg_replace("/[.,-]/","", $data['amount']);
$totalItem += $valorItem;

$item->addChild('valor', $valorItem);
$item->addChild('qtde', 1);
    }

if ($params['configVencimento'] != 'on') {
$xml->addChild('vencimento', $novoDueDate);
}

$valor = preg_replace("/[.,-]/", "", $params['amount']);
$desconto = $totalItem - $valor;

if ($desconto > 0) {
$bOpcionais = $xml->addChild('opcionais');
$bOpcionais->addChild('descontoSobreTotal', $desconto);
}

$xmlParaEnvio = $xml->saveXML();

    $code = "<form method='post' action='https://integracao.gerencianet.com.br/whmcs/emitir'>
    <input type='hidden' name='entrada' value='" . $xmlParaEnvio . "' />
<input type='hidden' name='callback' value='" . $urlCallback . "' />
<input type='hidden' name='versao' value='2.0' />
<input type='hidden' name='tipo' value='boleto' />
<input type='hidden' name='token' value='". $params['username'] . "' />
<input type='hidden' name='valor' value='". $valor . "' />
<input type='hidden' name='configVencimento' value='". $params['configVencimento'] . "' />
<input type='hidden' name='vencimento' value='". $novoDueDate . "' />
<!-- <input type='submit' value='Realizar Pagamento' /> -->
  <input type="image" src="http://www.linhadecodigo.com.br/artigos/img_artigos/AndersonWeschnhoski/BotaoCSS3/botaoCSS301.jpg" alt="Enviar" />

</form>";

    return $code;
}

function gerencianetboleto_addCData($path, $string) {
  $dom = dom_import_simplexml($path);
  $cdata = $dom->ownerDocument->createCDATASection($string);
  $dom->appendChild($cdata);
}

Ajude o fórum! Antes de postar, leiam as regras de postagem aqui.

Link para o comentário
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Infelizmente, seu conteúdo contém termos que não são permitimos. Edite seu conteúdo para remover as palavras destacadas abaixo.
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...

Informação Importante

Concorda com os nossos termos?