Exemplo n.º 1
0
 /**
  * Set order as paid or canceled
  *
  * @param integer $state
  * @param integer $order_id
  * @param float $order_total
  * @param string $barcode
  *
  * @return void
  */
 private static function setOrderAs($state, $order_id, $order_total = null, $barcode = null)
 {
     $return = false;
     try {
         $order = new Order((int) $order_id);
         if (!is_null($order_total) && !is_null($barcode)) {
             $order->addOrderPayment($order_total, 'CashWay', $barcode);
             $order->setInvoice(true);
         }
         $history = new OrderHistory();
         $history->id_order = (int) $order->id;
         $history->changeIdOrderState((int) $state, $order);
         $history->addWithEmail(true);
         $return = true;
     } catch (Exception $e) {
         \CashWay\Log::error($e->getMessage());
     }
     return $return;
 }
Exemplo n.º 2
0
 */
include dirname(__FILE__) . '/../../config/config.inc.php';
include dirname(__FILE__) . '/../../init.php';
if (!defined('_PS_VERSION_')) {
    exit;
}
// To configure, add webhook in account storename.com/modules/conektaefectivo/notification.php
$body = Tools::file_get_contents('php://input');
$event_json = Tools::jsonDecode($body);
if ($event_json->type == 'charge.paid') {
    $charge = $event_json->data->object;
    $reference_id = (int) $charge->reference_id;
    $id_order = Order::getOrderByCartId($reference_id);
    $order = new Order($id_order);
    $order_fields = $order->getFields();
    $currency_payment = Currency::getPaymentCurrencies(Module::getModuleIdByName('conektaprestashop'), $order_fields['id_shop']);
    $total_order_amount = (int) $order->getOrdersTotalPaid();
    $str_total_order_amount = (string) $total_order_amount;
    $format_total_order_amount = str_pad($str_total_order_amount, strlen($str_total_order_amount) + 2, '0', STR_PAD_RIGHT);
    if ($currency_payment[0]['iso_code'] === $charge->currency) {
        if ($format_total_order_amount == $charge->amount) {
            $orderHistory = new OrderHistory();
            $orderHistory->id_order = $order;
            $orderHistory->changeIdOrderState(Configuration::get('PS_OS_PAYMENT'), $order);
            $orderHistory->addWithEmail();
            Db::getInstance()->Execute('UPDATE ' . _DB_PREFIX_ . 'conekta_transaction SET status = "paid" WHERE id_order = ' . pSQL($reference_id) . '');
        }
    }
}
header('HTTP/1.1 200 OK');
exit;