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; } }
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; }
/** * @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 }