]> _ Git - dtlc.git/commitdiff
wait #5349 @1
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 7 Jul 2022 13:09:12 +0000 (15:09 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 7 Jul 2022 13:09:12 +0000 (15:09 +0200)
framework/application/controllers/SogecommerceController.php

index 26114a589a811088de715b8bad756c2e222f13d8..3452b42113491863f6e9254d0696805c5cb357f1 100644 (file)
@@ -38,12 +38,16 @@ class SogecommerceController extends CubeIT_Controller_PageController
         }
 
         $amounts = DTLC_Util::getDevisAmounts($devis);
+        $error = '';
+
+        $am = round($amounts['ttc'] * 100);
+        $statusesOK = ['AUTHORISED', 'CAPTURED'];
 
         if (
-            in_array($response['vads_trans_status'], ['AUTHORISED']) &&
+            in_array($response['vads_trans_status'], $statusesOK) &&
             $response['vads_occurrence_type'] === 'UNITAIRE' &&
             $response['vads_currency'] == 978 &&
-            $response['vads_amount'] == $amounts['ttc'] * 100) {
+            $response['vads_amount'] == $am) {
             // Conditions pour valider le paiement
             // reponse = 00
             // devis EUR
@@ -51,9 +55,24 @@ class SogecommerceController extends CubeIT_Controller_PageController
             $status = 2;
         } else {
             $status = 4;
+
+            $e = [];
+            if ($response['vads_amount'] != $am) {
+                $e[] = 'Wrong amount : ' . $response['vads_amount'] . " || " . $am;
+            }
+            if (!in_array($response['vads_trans_status'], $statusesOK)) {
+                $e[] = 'Wrong status : ' . $response['vads_trans_status'];
+            }
+            if ($response['vads_currency'] != 978) {
+                $e[] = 'Wrong currency : ' . $response['vads_currency'];
+            }
+            if ($response['vads_occurrence_type'] !== 'UNITAIRE') {
+                $e[] = 'Wrong occurence type : ' . $response['vads_occurrence_type'];
+            }
+            $error = "\n\n" . implode("\n", $e);
         }
 
-        $data = array('infos_paiement' => print_r($response, true), 'date_paiement' => CubeIT_Date::now(), 'status' => $status);
+        $data = array('infos_paiement' => print_r($response, true) . $error, 'date_paiement' => CubeIT_Date::now(), 'status' => $status);
         $db->compliantUpdate('devis', $data, array('id = ?' => $devis->id));
 
         if ($status == 2) {