2017-08-19 7 views
0

Je ne suis pas capable de résoudre ce problème, je suis coincé ici en essayant de comprendre ce qui se passe, j'ai installé une extension de paiement, et quand j'essaie de payer le produit avec une carte de crédit , tout fonctionne, mon serveur de paiement confirme la transation et l'OpenCart envoie un e-mail au vendeur et au client, le problème est, après avoir fini la transaction, OpenCart n'ajoute pas l'historique des commandes, au vendeur et au client, j'ai essayé de regarder le code source de l'extension, mais tout me semble bien. Je demande à d'autres personnes et personne n'a de problèmes avec cette extension. les fichiers journaux juste sortie:OpenCart ne pas ajouter l'historique des commandes 3.0.1.1

2017-08-19 4:50:29 - FEE5D6-AF8F438F43BD-F004C9EFA444-E7BD05 

et c'est la pièce de js au poste de paiement whitch appeler la fonction pour confirmer le paiement:

PagSeguroDirectPayment.createCardToken({ 
      cardNumber: $('input#numero-cartao').val(), 
      brand: $('input#bandeira').val(), 
      cvv: $('input#cvv').val(), 
      expirationMonth: expiration[0], 
      expirationYear: expiration[1], 
      success: function(data) { 
       $.ajax({ 
        url: 'index.php?route=extension/payment/pagseguro_cartao/transition', 
        data: 'creditCardToken=' + data.card.token + '&senderHash=' + PagSeguroDirectPayment.getSenderHash() + '&installmentQuantity=' + $('select#parcelas option:selected').attr('data-value') + '&installmentValue=' + $('select#parcelas').val() + '&creditCardHolderName=' + $('input#nome').val() + '&creditCardHolderCPF=' + $('input#cpf').val() + '&creditCardHolderBirthDate=' + $('input#data-nascimento').val() + '&creditCardHolderPhone=' + $('input#telefone').val(), 
        type: 'POST', 
        dataType: 'JSON', 
        success: function(data){ 
         if (data.error) { 
          $('#warning').html(getError(data.error.code, data.error.message)).show(); 
         } else { 
          $('#button-confirm').attr('disabled'); 

          $.ajax({ 
           url: 'index.php?route=extension/payment/pagseguro_cartao/confirm', 
           data: 'status=' + data.status, 
           type: 'POST', 
           success: function() { 
            /*location.href = '{{ continue }}'*/ 
           } 
          }); 
         } 
        }, 
        complete: function(data) { 
         $('#button-confirm').button('reset'); 
        } 
       }); 
      }, 
      error: function(data) { 
       console.log(data); 
       var html = '<ul>'; 
       $.each(data.errors, function(i,e){ 
        html += '<li>' + getError(i,e) + '</li>'; 
       }); 
       html += '</ul>'; 

       $('#warning').html(html).show(); 

       $('#button-confirm').button('reset'); 
      } 
     }); 
    }); 

et le contrôleur au catalogue/contrôleur/prolongation/paiement :

public function confirm() { 
     $this->load->model('checkout/order'); 

     switch ($this->request->post['status']) { 
      case 1: 
       $status = $this->config->get('payment_pagseguro_aguardando_pagamento'); 
       break; 
      case 2: 
       $status = $this->config->get('payment_pagseguro_analise'); 
       break; 
      case 3: 
       $status = $this->config->get('payment_pagseguro_paga'); 
       break; 
      case 4: 
       $status = $this->config->get('payment_pagseguro_disponivel'); 
       break; 
      case 5: 
       $status = $this->config->get('payment_pagseguro_disputa'); 
       break; 
      case 6: 
       $status = $this->config->get('payment_pagseguro_devolvida'); 
       break; 
      case 7: 
       $status = $this->config->get('payment_pagseguro_cancelada'); 
       break; 
      default: 
       $status = $this->config->get('payment_pagseguro_aguardando_pagamento'); 
       break; 
     } 

     $this->model_checkout_order->addOrderHistory($this->session->data['order_id'], $status); 

     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['coupon']); 
      unset($this->session->data['pagseguro_desconto']); 
      unset($this->session->data['pagseguro_acrescimo']); 
     } 
    } 
} 

Répondre

0

Apparemment, tous les appels ajax de l'historique des commandes de la zone d'administration, exécutent l'API. Quel contrôleur d'API se trouve dans le dossier du catalogue. Donc, si vous avez des règles de redirection dans votre fichier .htaccess, alors la requête ajax ne fonctionne pas.

Je vous suggère de lancer la console depuis Google Chrome ou Firefox et d'ouvrir l'onglet Réseau. Lorsque vous ajoutez un nouvel historique de commande, vérifiez la réponse du serveur. Vous trouverez le problème.

+0

mes journaux affichent maintenant quelque chose à propos de l'index indéfini order_id lorsque j'appelle la fonction addOrderHistory '' '$ this-> model_checkout_order-> addOrderHistory ($ this-> session-> data ['order_id'], $ status);' '' –