- 04 Fev 2011, 17:29
#3068
Faca esses testes:
Uma compra ultilizando o FRETE GRATIS.
Adicionar algum item com o valor ZERO no cart.
Finalize a compra. Talvez vai dar um erro.. 160.
Caso tenha esse erro. Esse e o codigo atualizado corrigindo outros erros tambem. Como o valor do transporte nao chegando ao pagseguro.
Boa Sorte.
Uma compra ultilizando o FRETE GRATIS.
Adicionar algum item com o valor ZERO no cart.
Finalize a compra. Talvez vai dar um erro.. 160.
Caso tenha esse erro. Esse e o codigo atualizado corrigindo outros erros tambem. Como o valor do transporte nao chegando ao pagseguro.
Boa Sorte.
Código: Selecionar todos
<form action="<?php echo $action; ?>" method="post" id="formpagseguro">
<input type="hidden" name="email_cobranca" value="<?php echo $email_pgseguro; ?>" />
<input type="hidden" name="ref_transacao" value="<?PHP echo $ref; ?>" />
<input type="hidden" name="tipo" value="CP" />
<input type="hidden" name="moeda" value="BRL" />
<?PHP
//Proteção e valor do frete
if(!isset($fretegratis)){ //verifica sem não tem cumpom de frete gratis
if(isset($this->session->data['shipping_method'])){ //verifica se foi selecionado um modo de envio
if($this->session->data['shipping_method']['id']=='free.free'){ //verifica se o metodo de envio e fretegratis
$valorfe=0;
}else {
$valorfe =preg_replace("/[^0-9]/", "", $this->session->data['shipping_method']['text']); //pega o valor do frete ja calculado
if ($valorfe<1) {
$errofrete=true; //se o valor do frete for 0 então deu erro no calculo
}
}
} else {
$errofrete=true;
}
}else if($fretegratis==true){ //se existe o valor e 0
$valorfe=0;
}
//dados dos produtos
$pesototal_produtos=0;
$i=1;
$iddoproduto=array();
foreach ($products as $product) {
$produtoid=$product['id']; //id do produto
$preco = $product['valor'];
$preco = preg_replace("/[^0-9]/", "", $preco); //valor do produto
$pesoprod = preg_replace("/[^0-9]/", "", $product['peso']); //peso do produto
$dopcoes=''; //opções do produto
$descricaoproduto = $product['descricao']; //descrição
foreach ($product['option'] as $option) {
$dopcoes.=' -'.$option['name'].' '.$option['value']; //monta os opcionais do produto
}
$descricaoproduto.= $dopcoes; //descrição do produto
$produtoid = str_replace($iddoproduto, $produtoid."#".$i, $produtoid); //id do produto
//Lista de Produtos
if (($preco != "0")&& ($preco != "")) {
?>
<input type="hidden" name="item_descr_<?PHP echo $i;?>" value="<?PHP echo $descricaoproduto;?>" />
<input type="hidden" name="item_valor_<?PHP echo $i;?>" value="<?PHP echo $preco;?>" />
<input type="hidden" name="item_quant_<?PHP echo $i;?>" value="<?PHP echo $product['quantidade'];?>" />
<input type="hidden" name="item_id_<?PHP echo $i;?>" value="<?PHP echo $produtoid;?>" />
<?PHP
if(isset($errofrete)){ //se deu erro no frete
$pesototal_produtos=+$pesoprod; //somando o peso dos produtos
?>
<input type="hidden" name="item_frete_<?PHP echo $i;?>" value="0" />
<?PHP
}
$i++;
}
$iddoproduto[]=$produtoid;
}
//fim dados dos produtos
$pg_contact_zip= preg_replace("/[^0-9]/", "",$pg_contact_zip); //remove os caracteres não numericos
//verifica se existe alguns dados necessarios
if(!isset($numero)){
$numero="0";
}
if(!isset($bairro)){
$bairro="NA";
}
if(!isset($ddd)){
$ddd="00";
}
//da o valor do frete ou o peso total dos produtos
if($this->session->data['shipping_method']['id']!='free.free'){
if(!isset($errofrete)){ //se não deu erro no frete envia o valor do frete
?>
<input type="hidden" name="item_descr_<?PHP echo $i;?>" value="<?PHP echo "Frete" ;?>" />
<input type="hidden" name="item_valor_<?PHP echo $i;?>" value="<?PHP echo $valorfe;?>" />
<input type="hidden" name="item_quant_<?PHP echo $i;?>" value="<?PHP echo "1";?>" />
<input type="hidden" name="item_id_<?PHP echo $i;?>" value="<?PHP echo "999999999999";?>" />
<input type="hidden" name="item_frete_<?PHP echo $i;?>" value="0" />
<?PHP }else { //se deu erro no frete envia o peso dos produtos para o pagseguro calcula o frete ?>
<input type="hidden" name="item_peso_1" value="<?PHP echo $pesototal_produtos; ?>" />
<?PHP
if(isset($this->session->data['shipping_method'])){
if(isset($this->session->data['shipping_method']['id'])){
if($this->session->data['shipping_method']['id']=='pac.pac'){ //se o frete tiver dado 0 e for PAC
echo "\n".'<input name="tipo_frete" value="EN" type="hidden">';
}else if($this->session->data['shipping_method']['id']=='sedex.sedex'){ //se o frete tiver dado 0 e for SEDEX
echo "\n".'<input name="tipo_frete" value="SD" type="hidden">';
}
}
}
}
}
//Dados do Cliente
?>
<input type="hidden" name="cliente_nome" value="<?PHP echo $pg_contact_firstname.' '.$pg_contact_last_name; ?>" />
<input type="hidden" name="cliente_cep" value="<?PHP echo $pg_contact_zip; ?>" />
<input type="hidden" name="cliente_end" value="<?PHP echo $pg_contact_address1; ?>" />
<input type="hidden" name="cliente_num" value="<?PHP echo $numero; ?>" />
<input type="hidden" name="cliente_compl" value="<?PHP echo $pg_contact_address2; ?>" />
<input type="hidden" name="cliente_bairro" value="<?PHP echo $bairro; ?>" />
<input type="hidden" name="cliente_cidade" value="<?PHP echo $pg_contact_city; ?>" />
<input type="hidden" name="cliente_uf" value="<?PHP echo $estado; ?>" />
<input type="hidden" name="cliente_pais" value="<?PHP echo $pg_contact_country; ?>" />
<input type="hidden" name="cliente_ddd" value="<?PHP echo $ddd; ?>" />
<input type="hidden" name="cliente_tel" value="<?PHP echo $telephone; ?>" />
<input type="hidden" name="cliente_email" value="<?PHP echo $pg_contact_email; ?>" />
</form>
<div style="background: #F7F7F7; border: 1px solid #DDDDDD; padding: 10px; margin-bottom: 10px;">
<br />
<center><img src="https://pagseguro.uol.com.br/security/Imagens/468x60_10X_pagseguro.gif" border="0" alt="PagSeguro" /></center><br />
Após clicar no botão <b>Finalizar Compra com PagSeguro</b> que está abaixo, você será redirecionado para o PagSeguro para efetuar o pagamento.
<br />
<br />
</div>
<div class="buttons">
<table>
<tr>
<td align="left"><a onclick="location = '<?php echo str_replace('&', '&', $back); ?>'" class="button"><span><?php echo $button_back; ?></span></a></td>
<td align="right"><a id="checkout" ><span><img src="https://p.simg.uol.com.br/out/pagseguro/i/botoes/carrinhoproprio/btnFinalizaBR.jpg" border="0" /></span></a></td>
</tr>
</table>
</div>
<script type="text/javascript"><!--
$('#checkout').click(function() {
$('body').css("cursor", "wait");
$('#checkout').hide('fast');
$.ajax({
type: 'GET',
url: 'index.php?route=payment/pagseguro/confirm',
success: function() {
$('#formpagseguro').submit();
}
});
});
//--></script>


