Пример #1
0
 public function initContent()
 {
     parent::initContent();
     $transactionId = Tools::getValue('orderId');
     try {
         $result = Pay_Helper_Transaction::processTransaction($transactionId);
         $order = new Order($result['real_order_id']);
         $customer = new Customer($order->id_customer);
         $this->context->smarty->assign(array('reference_order' => $result['real_order_id'], 'email' => $customer->email, 'id_order_formatted' => $order->reference));
         if ($result['state'] == 'PAID') {
             Tools::redirect('index.php?controller=order-confirmation&id_cart=' . $result['orderId'] . '&id_module=' . $this->module->id . '&id_order=' . $result['real_order_id'] . '&key=' . $customer->secure_key);
         }
         if ($result['state'] == 'CHECKAMOUNT') {
             $this->setTemplate('return_checkamount.tpl');
         }
         if ($result['state'] == 'CANCEL') {
             if (!empty($result['real_order_id'])) {
                 Tools::redirect('index.php?controller=order&submitReorder=Reorder&id_order=' . $result['real_order_id']);
             } else {
                 Tools::redirect('index.php?controller=order');
             }
         }
         if ($result['state'] == 'PENDING') {
             Tools::redirect('index.php?controller=order-confirmation&id_cart=' . $result['orderId'] . '&id_module=' . $this->module->id . '&id_order=' . $result['real_order_id'] . '&key=' . $customer->secure_key);
         }
     } catch (Exception $ex) {
         echo 'Error: ' . $ex->getMessage();
         die;
     }
 }
Пример #2
0
 public function initContent()
 {
     $transactionId = Tools::getValue('order_id');
     $action = Tools::getValue('action');
     try {
         if (strpos($action, 'refund') !== false) {
             throw new Pay_Exception('Ignoring refund');
         }
         if (strpos($action, 'pending') !== false) {
             throw new Pay_Exception('Ignoring pending');
         }
         $result = Pay_Helper_Transaction::processTransaction($transactionId);
     } catch (Exception $ex) {
         echo "TRUE| ";
         echo $ex->getMessage();
         die;
     }
     echo 'TRUE| Status updated to ' . $result['state'] . ' for cartId: ' . $result['orderId'] . ' orderId: ' . @$result['real_order_id'];
     die;
 }
Пример #3
0
 /**
  * @see FrontController::initContent()
  */
 public function initContent()
 {
     //        parent::initContent();
     $cart = $this->context->cart;
     $deliveryAddress = new Address((int) $cart->id_address_delivery);
     $invoiceAddress = new Address((int) $cart->id_address_invoice);
     $paymentOptionId = Tools::getValue('pid');
     $token = Configuration::get('PAYNL_TOKEN');
     $serviceId = Configuration::get('PAYNL_SERVICE_ID');
     $statusPending = Configuration::get('PAYNL_WAIT');
     if (!isset($cart->id)) {
         echo "Can't find cart";
         exit;
     }
     try {
         //validate the order
         $customer = new Customer($cart->id_customer);
         $total = (double) $cart->getOrderTotal(true, Cart::BOTH);
         $orderStatus = Configuration::get('PAYNL_WAIT');
         $module = $this->module;
         $currencyId = $this->context->currency->id;
         $currencyCode = $this->context->currency->iso_code;
         //$paymentMethodName = $module->getPaymentMethodName($paymentOptionId);
         $extraFee = $module->getExtraCosts($paymentOptionId, $total);
         $total += $extraFee;
         //$cart->additional_shipping_cost = $extraFee;
         //$module->validateOrderPay((int) $cart->id, $orderStatus, $total, $extraFee, $module->getPaymentMethodName($paymentOptionId), NULL, array(), (int) $currencyId, false, $customer->secure_key);
         $cartId = $cart->id;
         $apiStart = new Pay_Api_Start();
         //Klantgegevens meesturen
         /* array(
          *  initals
          *  lastName
          *  language
          *  accessCode
          *  gender (M or F)
          *  dob (DD-MM-YYYY)
          *  phoneNumber
          *  emailAddress
          *  bankAccount
          *  iban
          *  bic
          *  sendConfirmMail
          *  confirmMailTemplate
          *  address => array(
          *      streetName
          *      streetNumber
          *      zipCode
          *      city
          *      countryCode
          *  )
          *  invoiceAddress => array(
          *      initials
          *      lastname
          *      streetName
          *      streetNumber
          *      zipCode
          *      city
          *      countryCode
          *  )
          * )
          */
         $language = new Language($cart->id_lang);
         $arrEnduser = array();
         $arrEnduser['language'] = $language->iso_code;
         $arrEnduser['phoneNumber'] = !empty($invoiceAddress->phone) ? $invoiceAddress->phone : $invoiceAddress->phone_mobile;
         $arrEnduser['initials'] = $customer->firstname;
         $arrEnduser['lastName'] = $customer->lastname;
         list($year, $month, $day) = explode('-', $customer->birthday);
         $arrEnduser['dob'] = $day . '-' . $month . '-' . $year;
         $arrEnduser['emailAddress'] = $customer->email;
         // delivery address
         $arrAddress = array();
         $strAddress = $deliveryAddress->address1 . $deliveryAddress->address2;
         $arrStreetHouseNr = Pay_Helper::splitAddress($strAddress);
         $arrAddress['streetName'] = $arrStreetHouseNr[0];
         $arrAddress['streetNumber'] = $arrStreetHouseNr[1];
         $arrAddress['zipCode'] = $deliveryAddress->postcode;
         $arrAddress['city'] = $deliveryAddress->city;
         $country = new Country($deliveryAddress->id_country);
         $arrAddress['countryCode'] = $country->iso_code;
         $arrEnduser['address'] = $arrAddress;
         // invoice address
         $arrAddress = array();
         $arrAddress['initials'] = $customer->firstname;
         $arrAddress['lastName'] = $customer->lastname;
         $strAddress = $invoiceAddress->address1 . $invoiceAddress->address2;
         $arrStreetHouseNr = Pay_Helper::splitAddress($strAddress);
         $arrAddress['streetName'] = $arrStreetHouseNr[0];
         $arrAddress['streetNumber'] = $arrStreetHouseNr[1];
         $arrAddress['zipCode'] = $invoiceAddress->postcode;
         $arrAddress['city'] = $invoiceAddress->city;
         $country = new Country($invoiceAddress->id_country);
         $arrAddress['countryCode'] = $country->iso_code;
         $arrEnduser['invoiceAddress'] = $arrAddress;
         $apiStart->setEnduser($arrEnduser);
         // producten toevoegen
         $products = $cart->getProducts();
         foreach ($products as $product) {
             $apiStart->addProduct($product['id_product'], $product['name'], round($product['price_wt'] * 100), $product['cart_quantity'], 'H');
         }
         //verzendkosten toevoegen
         $shippingCost = $cart->getTotalShippingCost();
         if ($shippingCost != 0) {
             $apiStart->addProduct('SHIPPING', 'Verzendkosten', round($shippingCost * 100), 1, 'H');
         }
         //Inpakservice toevoegen
         if ($cart->gift != 0) {
             $packingCost = $cart->getGiftWrappingPrice(true);
             if ($packingCost != 0) {
                 $apiStart->addProduct('PACKING', 'Inpakservice', round($packingCost * 100), 1, 'H');
             }
         }
         $cartRules = $cart->getCartRules();
         foreach ($cartRules as $cartRule) {
             $apiStart->addProduct('DISCOUNT' . $cartRule['id_cart_rule'], $cartRule['description'], round($cartRule['value_real'] * -100), 1, 'H');
         }
         if ($extraFee != 0) {
             $apiStart->addProduct('PAYMENTFEE', 'Betaalkosten', round($extraFee * 100), 1, 'H');
         }
         $apiStart->setApiToken($token);
         $apiStart->setServiceId($serviceId);
         $description = Configuration::get('PAYNL_DESCRIPTION_PREFIX') . ' ' . $cart->id;
         $description = trim($description);
         $apiStart->setDescription($description);
         $apiStart->setExtra1('CartId: ' . $cart->id);
         $apiStart->setPaymentOptionId($paymentOptionId);
         $finishUrl = Context::getContext()->link->getModuleLink('paynl_paymentmethods', 'return');
         $exchangeUrl = Context::getContext()->link->getModuleLink('paynl_paymentmethods', 'exchange');
         $apiStart->setFinishUrl($finishUrl);
         $apiStart->setExchangeUrl($exchangeUrl);
         $apiStart->setAmount(round($total * 100));
         $apiStart->setCurrency($currencyCode);
         $result = $apiStart->doRequest();
         $startData = $apiStart->getPostData();
         Pay_Helper_Transaction::addTransaction($result['transaction']['transactionId'], $paymentOptionId, round($total * 100), $currencyCode, $cartId, $startData);
         if ($this->module->validateOnStart($paymentOptionId)) {
             $module->validateOrderPay((int) $cart->id, $statusPending, $total, $extraFee, $module->getPaymentMethodName($paymentOptionId), NULL, array('transaction_id' => $result['transaction']['transactionId']), (int) $currencyId, false, $customer->secure_key);
         }
         Tools::redirect($result['transaction']['paymentURL']);
         //$url = $paynl->startTransaction($cart);
     } catch (Exception $e) {
         echo $e->getMessage();
     }
     //betaling starten
 }