public function procedcheckoutAction() { $tempObj = new Model_DbTable_Checkout(); $producturrency = new Admin_Model_DbTable_Countries(); $modelAuthor = new Publisher_Model_DbTable_Publishers(); $creditHistoryObj = new User_Model_DbTable_Chistory(); $transactionHistoryObj = new User_Model_DbTable_Transactionhistory(); $this->modelBooks = new Publisher_Model_DbTable_Books(); $modelImage = new Publisher_Model_DbTable_BookImages(); $modelStore = new Admin_Model_DbTable_Countries(); $productPrice = new Publisher_Model_DbTable_BookPrices(); $productPrice = new Publisher_Model_DbTable_BookPrices(); $groupSubsObj = new Company_Model_DbTable_GroupSubscriptions(); $UsersubObj = new Model_DbTable_Usersubscription(); //$price = 1000; $subscription_store = ""; $subscription_language = ""; $subscription_issues = ""; $formdata = $this->getRequest()->getPost(); $price = $formdata['total_price']; $sessid = $formdata['sess_id']; // echo "<pre>"; //print_r($formdata); //exit; $user_id = $formdata['user_id']; if (isset($price) && $price != 0) { $price = $price * 100; // multiply the price by 100 because TWPG deals price in kobo. $xml = "<?xml version='1.0' encoding='UTF-8'?>\n\t\t\t\t\t<TKKPG>\n\t\t\t\t\t<Request>\n\t\t\t\t\t<Operation>CreateOrder</Operation>\n\t\t\t\t\t<Language>EN</Language>\n\t\t\t\t\t<Order>\n\t\t\t\t\t<Merchant>EVENDOR</Merchant>\n\t\t\t\t\t<Amount>" . $price . "</Amount>\n\t\t\t\t\t<Currency>566</Currency>\n\t\t\t\t\t<Description>Payment for test</Description>\n\t\t\t\t\t<ApproveURL>" . $this->view->serverUrl() . $this->view->baseUrl() . "/checkout/approved/</ApproveURL>\n\t\t\t\t\t<CancelURL>" . $this->view->serverUrl() . $this->view->baseUrl() . "/checkout/declined/</CancelURL>\n\t\t\t\t\t<DeclineURL>" . $this->view->serverUrl() . $this->view->baseUrl() . "/checkout/declined/</DeclineURL>\n\t\t\t\t\t</Order>\n\t\t\t\t\t</Request>\n\t\t\t\t\t</TKKPG>"; $ch = curl_init(); //this is to initialize curl curl_setopt($ch, CURLOPT_URL, "https://196.46.20.36:5443/Exec"); //curl_setopt($ch, CURLOPT_URL,"https://mpi.valucardnigeria.com:5443/Exec"); curl_setopt($ch, CURLOPT_SSLVERSION, 3); curl_setopt($ch, CURLOPT_VERBOSE, '1'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0); curl_setopt($ch, CURLOPT_TIMEOUT, 5000); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_CAINFO, getcwd() . '/public/paymentgateway/cert/CAcert.crt'); curl_setopt($ch, CURLOPT_SSLCERT, getcwd() . '/public/paymentgateway/cert/myshop.pem'); curl_setopt($ch, CURLOPT_SSLKEY, getcwd() . '/public/paymentgateway/cert/myshop.key'); //curl_setopt($ch, CURLOPT_SSLKEY, getcwd().'/public/paymentgateway/cert/myshop.key'); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml')); curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); $response = curl_exec($ch); // this line post to our server //echo "<pre>"; //print_r($response); //exit; //echo htmlentities($response); //use this check the response sent by our PG at every point //exit; if (!(curl_errno($ch) > 0)) { //$ch>=0 shows error while $ch<=0 shows no error $parsedxml = simplexml_load_string($response); foreach ($parsedxml->children() as $RESPONSENODE) { foreach ($RESPONSENODE->children() as $ORDERNODE) { foreach ($ORDERNODE->children() as $child) { if ($child->getName() == "OrderID") { $orderid = $child; } if ($child->getName() == "SessionID") { $sessionid = $child; } if ($child->getName() == "URL") { $url = $child; } } } } //end all loop $gateway_url = $url . "?ORDERID=" . $orderid . "&SESSIONID=" . $sessionid; /* * THE ABOVE FORMED URL ($gateway_url) IS THE URL USED TO CALL THE PAYMENT GATEWAY.... YOU CAN USE THIS URL IN THE SOURCE (src) OF AN IFRAME. E.G <iframe src= "<?php echo $gateway_url ?>" frameborder="0" scrolling="no"></iframe> * */ if ($orderid != '' && $sessionid != '') { $array_order_status = array("order_id" => $orderid, "order_sessionid" => $sessionid); $tempObj->update($array_order_status, 'user_id="' . $user_id . '" and session_id="' . $sessid . '"'); } $storage_company = new Zend_Auth_Storage_Session('company_type'); $company_data = $storage_company->read(); if ($company_data->account_type == '1') { $tempData = $tempObj->fetchAll("order_id='" . $orderid . "' and session_id='" . $sessid . "'"); } else { $tempData = $tempObj->fetchAll("order_id='" . $orderid . "' and is_purchase!='1' and session_id='" . $sessid . "'"); } $order_details = "<table cellpadding='1'><tr><td colspan='3'>Order Id:" . $orderId . "</td></tr><tr><td>Item</td><td>Price</td><td>Quantity</td></tr>"; foreach ($tempData as $dataDet) { $productPriceInfo = $productPrice->getPriceByStoreId($dataDet['product_id'], $dataDet['store_id']); if ($dataDet['group_id'] != '' && $dataDet['group_id'] != 0) { $dateTime = date('Y-m-d H:i'); $price = $productPriceInfo['group_price']; $arrayDataGroup = array("publication_id" => $dataDet['product_id'], "group_id" => $dataDet['group_id'], "company_id" => $dataDet['user_id'], "assigned_date" => $dateTime); //$groupSubsObj->insert($arrayDataGroup); } else { $price = $productPriceInfo['price']; } $orderSt = 0; $product_details = $this->modelBooks->fetchRow("id='" . $dataDet['product_id'] . "'"); $getBrandInfo = $this->modelBooks->getBrandInfo($product_details['title']); if (!empty($getBrandInfo) && is_numeric($product_details['title'])) { $titleBrand = $getBrandInfo['brand']; } else { $titleBrand = $product_details['title']; } if (!empty($product_details['parent_brand_id']) && $product_details['cat_id'] != '3') { $productInfo = $this->modelBooks->fetchRow('id="' . $product_details['parent_brand_id'] . '"'); $getParentBrandInfo = $this->modelBooks->getBrandInfo($productInfo->title); if (!empty($getParentBrandInfo)) { //$titleBrand=$titleBrand.' ('.$getParentBrandInfo['brand'].')'; $titleBrand = $getParentBrandInfo['brand'] . " - " . $titleBrand; } } $getCurrencyName = $producturrency->getCurrencyCode($dataDet['store_id']); $authorInfo = $modelAuthor->getInfoByPublisherId($product_details['author_id']); $imageInfo = $modelImage->getImageInfoByProductId($product_details['id']); if ($dataDet['subscription_type'] == '0' || $dataDet['subscription_type'] == '') { if ($dataDet['group_id'] > 0) { $price = $productPriceInfo['group_price']; } else { $price = $productPriceInfo['price']; } } else { $price = $dataDet['subscription_price']; $subscription_store = $dataDet['subscription_store']; $subscription_language = $dataDet['subscription_language']; $subscription_issues = $dataDet['subscription_issues']; } $converted_price = $producturrency->currencyconverter($getCurrencyName, "NGN", $price); $tempDatInsert = array(); $tempDatInsert['userid'] = $dataDet['user_id']; $tempDatInsert['bookid'] = $dataDet['product_id']; $tempDatInsert['store_id'] = $dataDet['store_id']; $tempDatInsert['price'] = $price; $tempDatInsert['quantity'] = $dataDet['quntity']; $tempDatInsert['book_name'] = $titleBrand; $tempDatInsert['add_date'] = date('Y-m-d H:i:s'); $tempDatInsert['group_id'] = $dataDet['group_id']; $tempDatInsert['order_id'] = $orderid; $tempDatInsert['payment_status'] = $orderSt; $tempDatInsert['converted_price'] = $converted_price; $tempDatInsert['subscription_type'] = $dataDet['subscription_type']; $tempDatInsert['subscription_name'] = $dataDet['subscription_name']; $tempDatInsert['subscription_store'] = $dataDet['subscription_store']; $tempDatInsert['subscription_language'] = $dataDet['subscription_language']; $tempDatInsert['subscription_issues'] = $dataDet['subscription_issues']; $creditHistoryObj->insert($tempDatInsert); $todaysdate = date('Y-m-d H:i:s'); if ($dataDet['subscription_name'] == 'Weekly') { $date = new DateTime($todaysdate); $date->modify("+7 day"); $end_date = $date->format("Y-m-d H:i:s"); } else { if ($dataDet['subscription_name'] == 'Monthly') { $date = new DateTime($todaysdate); $date->modify("+30 day"); $end_date = $date->format("Y-m-d H:i:s"); } else { if ($dataDet['subscription_name'] == 'Quarterly') { $date = new DateTime($todaysdate); $date->modify("+90 day"); $end_date = $date->format("Y-m-d H:i:s"); } else { if ($dataDet['subscription_name'] == 'Half Yearly') { $date = new DateTime($todaysdate); $date->modify("+182 day"); $end_date = $date->format("Y-m-d H:i:s"); } else { if ($dataDet['subscription_name'] == 'Yearly') { $date = new DateTime($todaysdate); $date->modify("+365 day"); $end_date = $date->format("Y-m-d H:i:s"); } } } } } $subscriptionObj = array(); $subscriptionObj['order_id'] = $orderid; $subscriptionObj['product_id'] = $dataDet['product_id']; $subscriptionObj['group_id'] = $dataDet['group_id']; $subscriptionObj['user_id'] = $dataDet['user_id']; $subscriptionObj['subscription_type'] = $dataDet['subscription_type']; $subscriptionObj['subscription_name'] = $dataDet['subscription_name']; $subscriptionObj['subscription_price'] = $price; $subscriptionObj['country'] = $dataDet['subscription_store']; $subscriptionObj['language'] = $dataDet['subscription_language']; $subscriptionObj['number_of_issues'] = $dataDet['subscription_issues']; $subscriptionObj['start_date'] = date('Y-m-d H:i:s'); $subscriptionObj['end_date'] = $end_date; $subscriptionObj['remaining_downloads'] = $dataDet['subscription_issues']; $subscriptionObj['publication_id'] = $product_details['parent_brand_id']; $UsersubObj->insert($subscriptionObj); } //echo $gateway_url; //exit; header("location: " . $gateway_url); } else { echo curl_error($ch); exit; } exit; } else { $this->_redirect('/checkout/cart/'); } }
function displayorderAction() { ########################## data ########################### $orderIdForPurchase = $this->_getParam('orderid'); $producturrency = new Admin_Model_DbTable_Countries(); $modelAuthor = new Publisher_Model_DbTable_Publishers(); $tempObj = new Model_DbTable_Checkout(); $creditHistoryObj = new User_Model_DbTable_Chistory(); $transactionHistoryObj = new User_Model_DbTable_Transactionhistory(); $productPrice = new Publisher_Model_DbTable_BookPrices(); $modelImage = new Publisher_Model_DbTable_BookImages(); $modelStore = new Admin_Model_DbTable_Countries(); $productPrice = new Publisher_Model_DbTable_BookPrices(); $modelSubscription = new Publisher_Model_DbTable_Subscriptions(); $this->modelBooks = new Publisher_Model_DbTable_Books(); $UsersubObj = new Model_DbTable_Usersubscription(); $storage_company = new Zend_Auth_Storage_Session('company_type'); $company_data = $storage_company->read(); $storage = new Zend_Auth_Storage_Session('account_type'); $userCompanyObj = new Company_Model_DbTable_Companies(); $data = $storage->read(); $useremails = ""; if ($data->id) { $user_id = $data->id; } elseif ($company_data->id) { $user_id = $company_data->id; } if ($company_data->account_type == '1') { $groupObj = new Company_Model_DbTable_Groups(); $groupList = $groupObj->getGroupList($company_data->id); } $datahistory = "<div class='display-order'><div class='top_heading'>\t\t\t\t\n\t\t \t<div class='item'>Item(s)</div>\n\t\t\t\t<div class='prices'>Subscribed Users</div>\n\t\t <div class='prices'>Subscription Type</div>\n\t\t <div class='prices'>Price</div>"; if ($company_data->account_type == '1') { $datahistory .= "<div class='quantity'>Qty</div>"; } else { $datahistory .= "<div class='quantity'> </div>"; } $datahistory .= "<div class='total'>Total</div>\n\t\t </div>"; $orderData = $creditHistoryObj->fetchAll("order_id='" . $orderIdForPurchase . "'"); $dataDet = ''; foreach ($orderData as $dataDet) { $price = $dataDet['price']; $subscription_data = $modelSubscription->fetchAll('id="' . $dataDet['subscription_type'] . '"'); $product_details = $this->modelBooks->fetchRow("id='" . $dataDet['bookid'] . "'"); $transaction_details = $transactionHistoryObj->fetchRow("id='" . $dataDet['transaction_id'] . "'"); $catInfo = $this->modelBooks->getCategoryInfo($product_details['cat_id']); $getCurrencyName = $producturrency->getCurrencyCode($dataDet['store_id']); $authorInfo = $modelAuthor->getInfoByPublisherId($product_details['publisher_id']); $imageInfo = $modelImage->getImageInfoByProductId($product_details['id']); $total_price = $total_price + $producturrency->currencyconverter($getCurrencyName, "NGN", $dataDet['quantity'] * $price); if ($dataDet['payment_status'] == 1) { $orderStatus = 'Approved'; } elseif ($dataDet['payment_status'] == 2) { $orderStatus = 'Declined'; } else { $orderStatus = 'Pending'; } if (count($subscription_data) > 0) { $subtype = $subscription_data[0]->subscription_type; } else { $subtype = "N/A"; } if ($company_data->account_type == '1') { $subscriptiondatavalues = $UsersubObj->fetchAll('order_id=' . $orderIdForPurchase . ' and product_id=' . $dataDet['bookid'] . ' and active_date IS NULL'); foreach ($subscriptiondatavalues as $userdata) { $user_details = $userCompanyObj->fetchRow("id='" . $userdata['user_id'] . "'"); $useremails .= $user_details['user_email'] . '<br/>'; } $useremails = rtrim($useremails, '<br/>'); } else { $user_details = $userCompanyObj->fetchRow("id='" . $user_id . "'"); $useremails = $user_details['user_email']; } $datahistory .= '<div class="cart_detail"> <div class="item_content"> <img src="' . $this->view->serverUrl() . $this->view->baseUrl() . '/' . USER_UPLOAD_DIR . 'thumb1_' . $imageInfo['image_name'] . '" width="140" height="175" alt=""> <h5>' . stripslashes($dataDet['book_name']) . '</h5>'; if ($authorInfo['first_name'] != '') { $datahistory .= '<span><em>by: </em> ' . stripslashes($authorInfo['first_name'] . ' ' . $authorInfo['last_name']) . '</span>'; } $datahistory .= '<span><em>Category: </em> ' . stripslashes($catInfo['category_name']) . '</span> <span><em>publisher:</em> ' . stripslashes($authorInfo['publisher']) . '</span> </div> <div class="space_content">' . $useremails . '</div> <div class="prices_content">' . $subtype . '</div> <div class="prices_content">₦' . $producturrency->currencyconverter($getCurrencyName, "NGN", $price) . '</div> <div style="float: left;padding: 5% 0;text-align: center;width: 70px;"> <div class="">'; if ($dataDet['group_id'] != 0) { $datahistory .= '<div >' . $dataDet['quantity'] . '</div>'; } $datahistory .= '</div> </div> <div class="total_content">₦' . @number_format($producturrency->currencyconverter($getCurrencyName, "NGN", $dataDet['quantity'] * $price), 2) . '</div> </div>'; if ($company_data->account_type == '1') { $finalsubprice = $finalsubprice + $dataDet['quantity'] * $price; } else { $finalsubprice = $finalsubprice + $price; } } $datahistory .= '<div class="shipping_total"> <div class="row"> <div class="lt">Subtotal</div> <div class="rt">₦' . @number_format($total_price, 2) . '</div> </div> <div class="row" style="border:none;"> <div class="lt">Tax</div> <div class="rt">₦' . '00.00</div> </div> <div class="row subtotal"> <div class="lt">Total</div> <div class="rt">₦' . @number_format($total_price, 2) . '</div> </div> <div class="row subtotal"> <div class="lt">Order Id</div> <div class="rt">' . $orderIdForPurchase . '</div> </div> <div class="row subtotal"> <div class="lt">Payment Status</div> <div class="rt">' . $orderStatus . '</div> </div> </div></div>'; $this->view->datahistory = $datahistory; $this->view->orderId = $orderIdForPurchase; $this->view->transactionId = $orderData[0]['transaction_id']; $this->view->orderStatus = $orderStatus; $this->view->responseDescription = $transaction_details['responseDescription']; }