Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, estou postando em PHP, mas podem mudar para um lugar melhor se acharem que seja.
Bom, utilizo o Magento (PHP) e estou tentando homologar o VISA na loja.
Temos o módulo funcionando beleza, o único porém é que quando redireciona para o gateway de pagamento (locaweb) para depois ir para o visa, ele abre em popup, e então é bloqueado.
A visa passou arquivo em ASP para implementar.
O programador que fez o módulo "transformou" para PHP e seguiu oq a VISA diz.
Mas nada de funcionar.
O arquivo Redirect.php é assim:
<?php
class Campoy_Visanet_Block_Standard_Redirect extends Mage_Core_Block_Abstract
{
protected function _construct()
{
$this->setTemplate('visanet/standard/redirect.phtml');
parent::_construct();
}
protected function _toHtml()
{
$html = '<html>';
$html .= '<head>';
$html .= '<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />';
$html .= $this->getScriptCode();
$html .= '</head>';
$html .= '<body>';
$html .= '<p align="center">' . $this->__('Você será redirecionado para a Visanet em alguns instantes. Se isso não acontecer, clique no botão abaixo.') . '</p>';
$html .= '<p align="center">' . $this->getFormCode() . '</p>';
$html .= '<script type="text/javascript">document.getElementById("visanet_standard_checkout").submit();</script>';
$html .= '</body></html>';
return $html;
}
private function getFormCode() {
$standard = Mage::getModel('visanet/standard');
$formFields = $standard->getStandardCheckoutFormFields();
$total = $formFields['damount'];
$total = number_format($total, 2, '.', '');
if (!Mage::getModel('wlpayment/wlpayment')->saveReg($formFields['orderid'], $formFields['tid'], $formFields['parcelas'], $total, $formFields['bandeira'])) {
echo 'Falha ao gravar transaç$atilde;o.';
}
$form = '<form id = "visanet_standard_checkout" name="visanet_standard_checkout" action="' . $standard->getVisanetUrl() . '" method="post" target="mpg_popup" onSubmit="javascript:fabrewin()">';
foreach ($formFields as $field=>$value) {
$form .= '<input type="hidden" name="' . $field . '" value="' . $value . '" />';
}
$form .= '<p align="center">';
$form .= '<input type="image" src="' . $standard->getSkinUrl('images/visa.jpg') . '" /> . <br />';
$form .= '<input type="submit" value="Clique aqui para entrar na página da Visa" />';
$form .= '</p>';
$form .= '</form>';
return($form);
}
private function getScriptCode() {
$script = '<script language="JavaScript" type="text/javascript">';
$script .= 'var retorno;';
$script .= 'var mpg_popup;';
$script .= 'window.name="loja";';
$script .= 'function fabrewin() {';
$script .= ' if(navigator.appName.indexOf("Netscape") != -1) {';
$script .= ' mpg_popup = window.open("", "mpg_popup","toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=0,screenX=0,screenY=0,left=0,top=0,width=765,height=440");';
$script .= ' }';
$script .= ' else {';
$script .= ' mpg_popup = window.open("", "mpg_popup","toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=1,screenX=0,screenY=0,left=0,top=0,width=765,height=440");';
$script .= ' }';
$script .= ' return true;';
$script .= '}';
$script .= '</script>';
return($script);
}
}
Porém eles pedem para acrescentar isso antes do return true:
$script .= ' window.location = "redirecionaCBP.asp"';$script .= ' }';
$script .= ' window.location = "redirecionaCBP.php"';
$script .= ' return true;';
$script .= '}';
$script .= '</script>';
return($script);
}
}
Como o servidor é LINUX, mudei o .asp para .php (usando o arquivo correto, claro).
Tudo bonitinho, mas nada de funcionar.
O arquivo redirecionaCBP.php está assim:
<html>
<head>
<title>Multitech Informática</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#ffffff" text="#000000" onload="document.forms[0].submit();">
<form name="frmRedireciona" method="post" action="[https://comercio.locaweb.com.br/comercio.comp">](https://comercio.locaweb.com.br/comercio.comp)
<input type="hidden" name="url" value="[https://cbp.3dsolution.com.br/cbp/aguardeEC.html">](https://cbp.3dsolution.com.br/cbp/aguardeEC.html)
</form>
</body>
</html>
Já não sei o que fazer e a VISA não quer liberar.
Alguem tem uma solução?
Carregando comentários...