Open edmarholanda opened 7 years ago
Olá, edmarholanda, tudo bem?
conseguiu a soluçao para isso? Estou tentando resolver o mesmo problema aqui.
Não. Perdi tanto tempo resolver estes problemas que estou migrando para outra plataforma.
Pessoal, alghuém conseguiu algo? Estou usando tbm o OSC e não funciona. Mas no meu caso apenas para celular androids
Aqui o problema era na parte do cpf, alterei a função _getPayerTaxId pra sempre pegar o TaxVat do customer ou do formulário(para checkout como visitante)
protected function _getPayerTaxId(Mage_Sales_Model_Quote_Address $address)
{
/**
* @var Mage_Sales_Model_Quote $quote
* @var Mage_Customer_Model_Customer $customer
*/
$quote = $this->_getQuote($address);
$customer = $quote ? $quote->getCustomer() : null;
$payerTaxId = $this->_helper()->getCpfCnpjOrTaxvat($customer, $this->nonPersistedData);
if (empty($payerTaxId)) {
$payerTaxId = $quote->getCustomerTaxvat();
}
if (empty($payerTaxId)) {
$payerTaxId = $this->_getFromRequest('taxvat');
}
return $payerTaxId;
}
Na verdade ele funciona as vezes só, testo a mesma requisição varias vezes e algumas abrem o cartão e outras não
Pra mim o problema me pareceu ser com o campo estado. Pois qdo o erro acontece, se o cliente troca o campo estado e depois seleciona de novo funciona. Como alternativa ao OSC, vcs já tentaram usar em outro checkout?
Se você mandar a mesma requisição por curl ele retorna respostas diferentes
Oi Gabriel, obrigado. Mas não entendi muito bem, poderia me dar mais detalhes?
Se alguém estiver com esse problema, segue breve 'solução':
Criar um pequeno módulo que reescreva o método generateUrlAction do controlador ExpressController.php localizado em app/code/community/Esmart/PayPalBrasil/controllers/ExpressController.php
No método generateUrlAction, após o trecho de código:
if ($quote->isVirtual()) { $quote->getBillingAddress()->setPaymentMethod(Esmart_PayPalBrasil_Model_Plus::CODE); } else { $quote->getShippingAddress()->setPaymentMethod(Esmart_PayPalBrasil_Model_Plus::CODE); }
adicionar o seguinte bloco:
if( $quote->getShippingAddress()->getData('street') == null ) { $billing = Mage::getSingleton('checkout/session')->getData('onestepcheckout_form_values/billing'); $quote->getShippingAddress()->setStreet( implode(' ', $billing['street']) ); $quote->getShippingAddress()->setCity($billing['city']); $quote->getShippingAddress()->setRegion($billing['region']); $quote->getShippingAddress()->setRegion_id($billing['region_id']); }
Esse ajuste resolve o problema para quem utiliza OSC Inovarti apenas.
Ao tentar fazer o cadastramento de endereço na página de pagamento do OSC Inovart, mesmo preenchendo todos os campos obrigatórios, o módulo continua exibindo a mensagem:
"Prezado cliente, favor preencher os dados dos passos anteriores antes de selecionar a Forma de Pagamento".
Se os endereços já estiverem previamente cadastrados, e forem alterados na página de pagamento, o problema não ocorrerá. O problema só aparece ao tentar cadastrar novo endereço e escolher o PayPal Plus como forma de pagamento. Por conta disso ando perdendo muitas vendas principalmente com novos clientes.
Fiz testes tanto numa instalação limpa do Magento como na loja de produção.