Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

Suporte geral sobre problemas técnicos para OpenCart v1.x.
Por cesario678
Mensagens
#16725
Boa noite pessoal.
meu moip estava funcionando normalmente,do nada ele começou da o erro sintax erro
e parou de funcionar.
alguem sabe oque pode ser?
Por cesario678
Mensagens
#16765
Renato Frota escreveu:Onde, em que tela? informações insuficientes :D

você viu essa correção? (pagin 2) https://forum.opencartbrasil.com.br/ ... =39&t=1881
esta dando esse erro (SyntaxError: JSON.parse: unexpected character)
coisa que antes nao dava.

o erro é esse .
<br />
<b>Parse error</b>: syntax error, unexpected ':', expecting ']' in <b>/home/rentabil/public_html/brasilsales.com/catalog/controller/payment/moip.php</b> on line <b>81</b><br />{"output":null}

foreach ($this->cart->getProducts() as $product) {
$option_data = array();
foreach ($product['option'] as $option) {
$option_data[] = array(
'name' => $option['name'],
( Linha 81) 'value' => $option['value']

troquei e coloquei (option_value) mais nao funcionou,ou coloquei errado.
o pior é que muita gente comprou pelo moip,depois começou a dar o erro do nada.
Avatar do usuário
Por Renato Frota
Mensagens
#16779
o que tem na linha 81 do arquivo payment/moip.php?
Por cesario678
Mensagens
#16792
Renato Frota escreveu:o que tem na linha 81 do arquivo payment/moip.php?
Ta ai em cima

oreach ($this->cart->getProducts() as $product) {
$option_data = array();
foreach ($product['option'] as $option) {
$option_data[] = array(
'name' => $option['name'],
( Linha 81) 'value' => $option['value']
Avatar do usuário
Por Renato Frota
Mensagens
#16804
o correto é:
Código: Selecionar todos
 'value' => $option['option_value'] 
o erro diz que foi encontrado um sinal de ":" (dois pontos) no lugar de um colchete ]
isso significa que, provavelmente, você digitou option:value ou tem algum outro erro nesse arquivo, linhas antes.
Por cesario678
Mensagens
#16831
Renato Frota escreveu:o correto é:
Código: Selecionar todos
 'value' => $option['option_value'] 
o erro diz que foi encontrado um sinal de ":" (dois pontos) no lugar de um colchete ]
isso significa que, provavelmente, você digitou option:value ou tem algum outro erro nesse arquivo, linhas antes.
Eu Ja coloquei
$option['option_value']
mais não tinha funcionado.
o verdadeiro codigo é o
$option['value']
mais ta dando o sintax erro.


Agora quando vou ver o erro pelo firebug da o erro.
{"output":null}
mais nao fala aonde tenho que mecher.
Avatar do usuário
Por Renato Frota
Mensagens
#16853
cesario678 escreveu:
Renato Frota escreveu:o correto é:
Código: Selecionar todos
 'value' => $option['option_value'] 
o erro diz que foi encontrado um sinal de ":" (dois pontos) no lugar de um colchete ]
isso significa que, provavelmente, você digitou option:value ou tem algum outro erro nesse arquivo, linhas antes.
Eu Ja coloquei
$option['option_value']
mais não tinha funcionado.
o verdadeiro codigo é o
$option['value']
mais ta dando o sintax erro.


Agora quando vou ver o erro pelo firebug da o erro.
{"output":null}
mais nao fala aonde tenho que mecher.

Cola mais linhas além da 81 aqui...
Por cesario678
Mensagens
#16901
Renato Frota escreveu:
cesario678 escreveu:
Renato Frota escreveu:o correto é:
Código: Selecionar todos
 'value' => $option['option_value'] 
o erro diz que foi encontrado um sinal de ":" (dois pontos) no lugar de um colchete ]
isso significa que, provavelmente, você digitou option:value ou tem algum outro erro nesse arquivo, linhas antes.
Eu Ja coloquei
$option['option_value']
mais não tinha funcionado.
o verdadeiro codigo é o
$option['value']
mais ta dando o sintax erro.


Agora quando vou ver o erro pelo firebug da o erro.
{"output":null}
mais nao fala aonde tenho que mecher.

Cola mais linhas além da 81 aqui...
Código: Selecionar todos
<?php
class ControllerPaymentMoip extends Controller {
protected function index() {
     $this->data['button_continue'] = $this->language->get('button_continue');
$this->data['button_back'] = $this->language->get('button_back');

if (!$this->config->get('moip_test')) {
     $this->data['action'] = 'https://www.moip.com.br/PagamentoMoIP.do';
   } else {
$this->data['action'] ='https://desenvolvedor.moip.com.br/sandbox/PagamentoMoIP.do';
}

$this->load->model('checkout/order');
$order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']);
$this->data['nometranzacao'] = $this->config->get('moip_encryption');
$this->data['business'] = $this->config->get('moip_email');
$this->data['item_name'] = $this->config->get('config_store');
$this->data['currency_code'] = $order_info['currency_code'];
$this->data['amount'] = $this->currency->format($order_info['total'], $order_info['currency_code'], FALSE);
$this->data['first_name'] = htmlentities($order_info['payment_firstname'], ENT_COMPAT, 'UTF-8');
$this->data['last_name'] = htmlentities($order_info['payment_lastname'], ENT_COMPAT, 'UTF-8');
$this->data['address1'] = htmlentities($order_info['payment_address_1'], ENT_COMPAT, 'UTF-8');
$this->data['address2'] = htmlentities($order_info['payment_address_2'], ENT_COMPAT, 'UTF-8');
if(isset($order_info['payment_numero'])){
$this->data['numero'] = $order_info['payment_numero'];
}
if(isset($order_info['payment_bairro'])){
$this->data['bairro'] = $order_info['payment_bairro'];
}
$this->data['city'] = htmlentities($order_info['payment_city'], ENT_COMPAT, 'UTF-8');
$this->data['zip'] = $order_info['payment_postcode'];
$this->data['country'] = $order_info['payment_country'];
$this->data['notify_url'] = HTTPS_SERVER . 'payment/moip/callback&order_id';
$this->session->data['order_id'];
$this->data['codipedido'] = $this->session->data['order_id'];
$this->data['email'] = $order_info['email'];
$this->data['invoice'] = $this->session->data['order_id'] . ' - ' . $order_info['payment_firstname'] . ' ' . $order_info['payment_lastname'];

/* Pega o id do país */
$this->load->model('localisation/country');
     $paises = $this->model_localisation_country->getCountries();
foreach ($paises as $country) {
if($country['name']==$order_info['payment_country']){
$codigodopais = $country['country_id'];
}
}

/* Com id do país pega o code da cidade */
$this->load->model('localisation/zone');
     $results = $this->model_localisation_zone->getZonesByCountryId($codigodopais);

foreach ($results as $result) {
         if($result['name']==$order_info['payment_zone']){
$this->data['estado'] =$result['code'];
}
     }

if(isset($order_info['ddd'])){
$this->data['ddd'] = $order_info['ddd'];
} else {
$ntelefone = preg_replace("/[^0-9]/", "", $order_info['telephone']);
if(strlen($ntelefone) >= 10){
$ntelefone = ltrim($ntelefone, "0");
$this->data['ddd'] = substr($ntelefone, 0, 2);
$this->data['telephone'] = substr($ntelefone, 2,11);
} else {
$this->data['telephone'] = substr($ntelefone, 2,11);
}
}
$this->data['return'] = HTTPS_SERVER . 'checkout/success';
$this->data['cancel_return'] = HTTPS_SERVER . 'checkout/payment';
$this->data['back'] = HTTPS_SERVER . 'checkout/payment';
$this->data['mailpg'] = $this->config->get('moip_email');
$this->data['products'] = array();

foreach ($this->cart->getProducts() as $product) {
$option_data = array();
foreach ($product['option'] as $option) {
         $option_data[] = array(
           'name' => $option['name'],
           'value' => $option['value'] 
         );
       }

       $this->data['products'][] = array(
'descricao' => htmlentities($product['name'], ENT_COMPAT, 'UTF-8'),
'valor' => $this->currency->format($this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax'))),
//'disconto' => ($product['discount'] ? $this->currency->format($this->tax->calculate($product['price'] - $product['discount'], $product['tax_class_id'], $this->config->get('config_tax'))) : NULL),
'quantidade' => $product['quantity'],
'option' => $option_data,
'id' => $product['product_id'],
'peso' => $this->weight->convert($product['weight'], $product['weight_class_id'], $this->config->get('config_weight_class')),
//'discontos' => ($product['discount'] ? $this->currency->format($product['price'] - $product['discount']) : NULL)
       );
     }

if (isset($this->session->data['coupon'])) {
$this->load->model('checkout/coupon');
$coupon = $this->model_checkout_coupon->getCoupon($this->session->data['coupon']);
if ($coupon) {
$desconto = preg_replace("/[^0-9]/", "", $this->currency->format($coupon['discount'])); //valor do desconto
$valototal = preg_replace("/[^0-9]/", "", $this->currency->format($this->cart->getTotal())); //total da compra
$desctotalcompra = preg_replace("/[^0-9]/", "", $this->currency->format($coupon['total'])); //valo da compra que e aceito o desconto
if($valototal>=$desctotalcompra){
$this->data['cupomnome'] = $coupon['name'];
if($coupon['type']=='P' and $coupon['shipping']==0){
$valorddescon = $this->currency->format(($coupon['discount']/100)*$this->cart->getTotal());
$this->data['cupondedesconto'] = str_replace("[^0-9]", "", $valorddescon);
} else if ($coupon['type']=='F' and $coupon['shipping']==0){
$this->data['cupondedesconto'] = $desconto;
} else if ($coupon['shipping']==1){
$this->data['fretegratis'] = true;
}
}
}
}

$this->data['continue'] = HTTPS_SERVER . 'checkout/success';

$this->id = 'payment';

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/payment/moip.tpl')) {
$this->template = $this->config->get('config_template') . '/template/payment/moip.tpl';
} else {
$this->template = 'default/template/payment/moip.tpl';
}

$this->render();

}

public function confirm() {
$this->load->language('payment/moip');
$this->load->model('checkout/order');
$comment = $this->language->get('text_instruction') . "\n\n";
$comment .= $this->language->get('text_payment');
$this->model_checkout_order->confirm($this->session->data['order_id'], $this->config->get('config_order_status_id'), $comment);
if (isset($this->session->data['order_id'])) {
$this->cart->clear();
unset($this->session->data['shipping_method']);
unset($this->session->data['shipping_methods']);
unset($this->session->data['payment_method']);
unset($this->session->data['payment_methods']);
unset($this->session->data['comment']);
unset($this->session->data['order_id']);
unset($this->session->data['coupon']);
}
}

public function callback() {
if (isset($this->request->post['retornoalto']) AND isset($this->request->post['id_transacao'])){
$this->load->language('payment/moip');
$reference = $this->request->post['id_transacao'];
$this->load->model('checkout/order');
$order_info = $this->model_checkout_order->getOrder($reference);
if ($this->request->post['retornoalto'] == "sim") {
$valorpago ='R$ '.number_format($this->request->post['valor'], 2, ',', '.');
if ($order_info) {
$this->cart->clear();
/* Iniciado */
if ($this->request->post['status_pagamento'] == '2') {
/* Recupera o código do status aguardando pagto */
$aguardando = $this->config->get('moip_aguardando');
$comentaraio=sprintf($this->language->get('text_aguardandopg'), $this->request->post['tipo_pagamento']).$this->language->get('text_auterastatus');
/* Atualiza o status do pedido */
/* Atualiza o histórico do pedido */
$this->model_checkout_order->update((int)$reference, (int)$aguardando, $comentaraio,true);
$this->model_checkout_order->confirm((int)$reference,(int)$aguardando, $comentaraio);
/* Cancelado */
} elseif ($this->request->post['status_pagamento'] == '5') {
/* recupera o código do status em cancelado */
$cancelado = $this->config->get('moip_cancelado');
$comentaraio=sprintf($this->language->get('text_canceladouol'), $this->request->post['tipo_pagamento']).$this->language->get('text_auterastatus');
/* Atualiza o status do pedido */
/* Atualiza o histórico do pedido */
$this->model_checkout_order->update((int)$reference, (int)$cancelado, $comentaraio,true);
$this->model_checkout_order->confirm((int)$reference,(int)$cancelado, $comentaraio);
/* Autorizado */
} elseif ($this->request->post['status_pagamento'] == '1') {
/* Recupera o código do status aprovado */
$aprovado = $this->config->get('moip_aprovado');
$comentaraio=sprintf($this->language->get('text_aprovandouol'), $this->request->post['tipo_pagamento'],$valorpago).$this->language->get('text_auterastatus');
/* Atualiza o status do pedido */
/* Atualiza o histórico do pedido */
$this->model_checkout_order->update((int)$reference, (int)$aprovado, $comentaraio,true);
$this->model_checkout_order->confirm((int)$reference,(int)$aprovado, $comentaraio);
/* Em análise */
} elseif ($this->request->post['status_pagamento'] == '6') {
/* Recupera o código do status aprovado */
$aguardando = $this->config->get('moip_aguardando');
$comentaraio=sprintf($this->language->get('text_aprovemanalize'), $this->request->post['tipo_pagamento'],$valorpago).$this->language->get('text_auterastatus');
$this->model_checkout_order->update((int)$reference, (int)$aguardando, $comentaraio);
/* Concluido */
} elseif ($this->request->post['status_pagamento'] == '4') {
/* Recupera o código do status aprovado */
$aguardando = $this->config->get('moip_aguardando');
$comentaraio=sprintf($this->language->get('text_pagcompleto'), $this->request->post['tipo_pagamento'],$valorpago).$this->language->get('text_auterastatus');
$this->model_checkout_order->update((int)$reference, (int)$aguardando, $comentaraio);
}
}
}
}
}
}
?>
todo o codigo esta ai.
Avatar do usuário
Por Renato Frota
Mensagens
#16908
O arquivo só possui 4 ocorrências do caractere ":", sendo 2 logo no início do arquivo (na definição da URL action do formulário) e outras 2 comentadas.

Sendo assim, ainda acho que você editou errado a linha 'value' => $option['option_value']