Pagamentos duplicados / duplicados Prestashop

Objetivo : – Parar pagamentos duplicados

Estou usando o Prestashop versão 1.6.1.0. E eu tenho aplicação em Ios com apis em slim framework.

Quando eu ordeno algo do Ios end, há 2 inputs no painel de administração. insira a descrição da imagem aqui

Abaixo estão os módulos que estão ativos no meu painel de administração.

insira a descrição da imagem aqui

Tentei desativar módulos e fazer o pagamento depois, mas sem sorte.

Além disso, encontrei um problema duplo da Prestashop que também não ajudou!

Atualização: –

Minha API para pagamento em tira é: –

$app->post('/makeStripePayment', function() use($app){ //Log file : $myfile = "log_stripe.txt"; $txt = file_get_contents($myfile); $txt .= "######### makeStripePayment 13-june-2017 1 #########\n"; $ret = array(); if (!is_null($app->request->getBody())) { include_once (_PRESTA_ROOT_DIR_."/modules/paypal/paypal.php"); //include_once (_PRESTA_ROOT_DIR_."/modules/cronpanier/cronpanier.php"); $json = json_decode($app->request->getBody(), true); \Stripe\Stripe::setApiKey("sk_test_key"); $token = $json['stripeToken']; $cart_id = $json['cart_id']; $panier = new Cart($cart_id); $montant = $panier->getOrderTotal(true, Cart::BOTH); $amount = $montant*100; $customer = new Customer($panier->id_customer); $context = Context::getContext(); $context->customer = $customer; $context->cart = $panier; Address::insertAdressDefault(); $customerAddresses = $customer->getAddresses($context->language->id); $customerAddresses = array_values($customerAddresses); if ((!isset($context->cart->id_address_delivery) || empty($context->cart->id_address_delivery)) || !Address::isCountryActiveById((int)$context->cart->id_address_delivery)) { $context->cart->id_address_delivery = (int)$customerAddresses[0]['id_address']; $update = 1; } if ((!isset($context->cart->id_address_invoice) || empty($context->cart->id_address_invoice)) || !Address::isCountryActiveById((int)$context->cart->id_address_invoice)) { $context->cart->id_address_invoice = (int)$customerAddresses[0]['id_address']; $update = 1; } /* Update cart addresses only if needed */ if (isset($update) && $update) { $context->cart->update(); } $module = new Paypal(); $authOk = false; if ($token) { // Create the charge on Stripe's servers - this will charge the user's card try { $charge = \Stripe\Charge::create(array( "amount" => $amount, // amount in cents, again "currency" => "eur", "source" => $token, "description" => "Pharmacie Printemps" )); $payment_method = 'Paiement par stripe'; $ret['status'] = 'success'; $ret['message'] = "Succes :".$id.":".$montant.":".$cart_id; $authOk = true; } catch (\Stripe\Error\ApiConnection $e) { $ret['status'] = 'error'; $ret['message'] = utf8_encode("TLS 1.2 est pas pris en charge. Vous aurez besoin de mettre   niveau votre int gration."); } catch(\Stripe\Error\Card $e) { // The card has been declined $ret['status'] = 'error'; $ret['message'] = utf8_encode("La carte est refus e."); } } else { $ret['status'] = 'error'; $ret['message'] = utf8_encode("Erreur : Erreur de commande, merci de r essayer."); } } else { $ret['status'] = 'error'; $ret['message'] = utf8_encode('Requ te invalide'); } if($authOk){ $txt .= "---- AUTH OK ---- \n"; $module->validateOrder($cart_id,2,$montant,$payment_method); }else{ $ret['message'] = utf8_encode('Erreur de validation de commande, merci de r essayer'); } echo json_encode($ret); $txt .= "\n\n\n\n\n".print_r($json, true)."\n\n\n\n\n"; $txt .= ">>>>>>>>> makeStripePayment END\n\n\n\n\n"; file_put_contents($myfile, $txt); }); 

No código acima, existe o nome do método validateOrder que está abaixo se eu remover essa ordem de linha não está inserindo na tabela de pedidos e também não aparece no painel de administração.

método validateOrder

  public function validateOrder($id_cart, $id_order_state, $amount_paid, $payment_method = 'Unknown', $message = null, $transaction = array(), $currency_special = null, $dont_touch_amount = false, $secure_key = false, Shop $shop = null) { if ($this->active) { // Set transaction details if pcc is defined in PaymentModule class_exists if (isset($this->pcc)) { $this->pcc->transaction_id = (isset($transaction['transaction_id']) ? $transaction['transaction_id'] : ''); } if (version_compare(_PS_VERSION_, '1.5', ' 0) { /*var_dump($transaction); die();*/ PayPalOrder::saveOrder((int) $this->currentOrder, $transaction); } $this->setPayPalAsConfigured(); } } 

Alguém que enfrenta o mesmo problema?

Qualquer ajuda seria apreciada.

Desde já, obrigado.