Guest User

Untitled

a guest
Nov 15th, 2018
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.96 KB | None | 0 0
  1. <?php
  2.  
  3. class Carepack extends MX_Controller {
  4.  
  5.  
  6.  
  7. function __construct()
  8.  
  9. {
  10.  
  11. parent::__construct();
  12.  
  13. $data_meta['title'] = '';
  14.  
  15. $data_meta['description'] = '';
  16.  
  17. // $this->lang->load("en");
  18.  
  19. }
  20.  
  21. function index()
  22.  
  23. {
  24. $this->load->helper('inflector');
  25. $data['packages'] = json_decode(
  26.  
  27. file_get_contents($this->config->item('rest_url').'index.php/carepack_package_api/fetch_all_data/username/'.$this->config->item('username').'/password/'.$this->config->item('password').'/format/json')
  28.  
  29. );
  30. $data_meta['site_name'] = 'Doctorola';
  31. $data_meta['title'] = 'Doctorola Carepack';
  32. $data_meta['description'] = 'Doctorola brings to you a unique cost-effective way to keep ahead of the sickness and their impacts in your life. Doctorola CarePacks help you ensure proactive management of your health.CarePacks are made to exactly fit your needs depending on your age, profession or conditions.';
  33.  
  34. $data_meta['image'] = base_url().'assets_new/carepack/Img_2a.jpg';
  35.  
  36. $data['header'] = $this->load->view('frontend/doctor_profile/header_carepack', $data_meta, TRUE);
  37. $data['footer'] = $this->load->view('frontend/doctor_profile/footer', $data_footer, TRUE);
  38. $this->load->view('care_pack/carepack', $data);
  39. }
  40.  
  41. function single($package_id)
  42. {
  43. $this->load->helper('inflector');
  44. $data['packages'] = json_decode(
  45.  
  46. file_get_contents($this->config->item('rest_url').'index.php/carepack_package_api/packageById/id/'.$package_id.'/username/'.$this->config->item('username').'/password/'.$this->config->item('password').'/format/json')
  47.  
  48. );
  49. $data_meta['site_name'] = 'Doctorola Carepack';
  50. $data_meta['title'] = $data['packages'][0]->name;
  51. $data_meta['description'] = $data['packages'][0]->description;
  52. $data_meta['image'] = base_url().'assets_new/carepack/'.$data['packages'][0]->desc_image;
  53.  
  54. $data['components'] = json_decode(
  55.  
  56. file_get_contents($this->config->item('rest_url').'index.php/carepack_package_api/package_componentById/id/'.$package_id.'/username/'.$this->config->item('username').'/password/'.$this->config->item('password').'/format/json')
  57.  
  58. );
  59.  
  60. $data['header'] = $this->load->view('frontend/doctor_profile/header_carepack', $data_meta, TRUE);
  61. $data['footer'] = $this->load->view('frontend/doctor_profile/footer', $data_footer, TRUE);
  62. $this->load->view('care_pack/senior_care_new', $data);
  63. }
  64.  
  65. function single_family_care()
  66. {
  67. $data['header'] = $this->load->view('frontend/doctor_profile/header', $data_meta, TRUE);
  68. $data['footer'] = $this->load->view('frontend/doctor_profile/footer', $data_footer, TRUE);
  69. $this->load->view('care_pack/single_family_care', $data);
  70. }
  71.  
  72. public function prebook($pack)
  73. {
  74. $this->load->helper('inflector');
  75. $data['packages'] = json_decode(
  76.  
  77. file_get_contents($this->config->item('rest_url').'index.php/carepack_package_api/categoyNameByPackageId/username/'.$this->config->item('username').'/password/'.$this->config->item('password').'/format/json')
  78.  
  79. );
  80. //var_dump($data);exit;
  81.  
  82. $data['header'] = $this->load->view('frontend/others/header', '', TRUE);
  83. $data['footer'] = $this->load->view('frontend/others/footer', '', TRUE);
  84. $data['pack'] = $pack;
  85. $this->load->view('care_pack/prebooking.php', $data);
  86. }
  87.  
  88. public function getPackageData() {
  89. $data = file_get_contents($this->config->item('rest_url').'index.php/carepack_package_api/categoyNameByPackageId/username/'.$this->config->item('username').'/password/'.$this->config->item('password').'/format/json');
  90. echo $data;
  91.  
  92. }
  93.  
  94. public function request_for_proposal($pack)
  95. {
  96. $this->load->helper('inflector');
  97. $data['packages'] = json_decode(
  98.  
  99. file_get_contents($this->config->item('rest_url').'index.php/carepack_package_api/categoyNameByPackageId/username/'.$this->config->item('username').'/password/'.$this->config->item('password').'/format/json')
  100.  
  101. );
  102.  
  103. $data['header'] = $this->load->view('frontend/others/header', '', TRUE);
  104. $data['footer'] = $this->load->view('frontend/others/footer', '', TRUE);
  105. $data['pack'] = $pack;
  106. $this->load->view('care_pack/request_for_proposal.php', $data);
  107. }
  108.  
  109. public function request_for_proposal_success()
  110. {
  111. // Catch all data & mail to doctorola team
  112. $email = $this->input->post('email');
  113. $package = $this->input->post('value_a');
  114. $company_name = $this->input->post('company_name');
  115. $name = $this->input->post('name');
  116. $designation = $this->input->post('designation');
  117. $mobile = $this->input->post('mobile');
  118. $altmobile = $this->input->post('altmobile');
  119. $noofemployee = $this->input->post('noofemployee');
  120. $company_address = $this->input->post('company_address');
  121.  
  122.  
  123. $body = "Package : ".$package."<br/>Company : ".$company_name."<br/>Name : ".$name."<br/>Designation : ".$designation."<br/>Mobile : ".$mobile."<br/>Alternate Mobile : ".$altmobile."<br/>Number of Employees : ".$noofemployee."<br/>Address : ".$company_address;
  124.  
  125.  
  126. $config = Array(
  127. 'protocol' => 'smtp',
  128. 'smtp_host' => 'ssl://smtp.gmail.com',
  129. 'smtp_port' => 465,
  130. 'smtp_user' => 'contact@doctorola.com',
  131. 'smtp_pass' => 'klejrchhaednyinh',
  132. 'mailtype' => 'html',
  133. 'charset' => 'iso-8859-1',
  134. 'wordwrap' => TRUE
  135. );
  136.  
  137. $this->load->library('email', $config);
  138. $this->email->set_newline("\r\n");
  139. $this->email->from($email);
  140. $this->email->to('corporate@doctorola.com');
  141. $this->email->subject('Interested in '.$package.' from '.$company_name);
  142. $this->email->message($body);
  143. if($this->email->send()) {
  144. $this->prebooking_final_message(true);
  145. }
  146. else {
  147. echo "Something went wrong. Please try again later.";
  148. }
  149. // Mail to client
  150.  
  151.  
  152. }
  153.  
  154. public function prebooking_final_message($request_for_proposal=false)
  155. {
  156. $data['request_for_proposal'] = $request_for_proposal;
  157. $data['header'] = $this->load->view('frontend/others/header', '', TRUE);
  158. $data['footer'] = $this->load->view('frontend/others/footer', '', TRUE);
  159. $this->load->view('care_pack/prebooking_final_message.php', $data);
  160. }
  161.  
  162. public function success()
  163. {
  164. $valid = $this->input->post('val_id');
  165. //echo $valid;
  166. $val_id=urlencode($valid);
  167. $store_id=urlencode("doctorola001live");
  168. $store_passwd=urlencode("doctorola001live30778");
  169.  
  170. $requested_url = ("https://www.sslcommerz.com.bd/validator/api/validationserverAPI.php?val_id=".$val_id."&Store_Id=".$store_id."&Store_Passwd=".$store_passwd);
  171.  
  172. $handle = curl_init();
  173.  
  174. curl_setopt($handle, CURLOPT_URL, $requested_url);
  175. curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
  176. curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
  177. curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
  178. $result = curl_exec($handle);
  179. $code = curl_getinfo($handle, CURLINFO_HTTP_CODE);
  180. //echo $code;
  181. if($code == 200 && !( curl_errno($handle)))
  182. {
  183. # TO CONVERT AS OBJECT
  184. $result = json_decode($result);
  185. # TRANSACTION INFO
  186. $status = $result->status;
  187. $tran_date = $result->tran_date;
  188. $tran_id = $result->tran_id;
  189. $val_id = $result->val_id;
  190. $amount = $result->amount;
  191. $store_amount = $result->store_amount;
  192. $bank_tran_id = $result->bank_tran_id;
  193. $card_type = $result->card_type;
  194. # ISSUER INFO
  195. $card_no = $result->card_no;
  196. $card_issuer = $result->card_issuer;
  197. $card_brand = $result->card_brand;
  198. $card_issuer_country = $result->card_issuer_country;
  199. $card_issuer_country_code = $result->card_issuer_country_code;
  200. # API AUTHENTICATION
  201. $apiconnect = $result->APIConnect;
  202. $validated_on = $result->validated_on;
  203. $gw_version = $result->gw_version;
  204. # FUNCTION PARAMETERS
  205. $package = $result->value_a;
  206. $name = $result->value_b;
  207. $email = $result->value_c;
  208. $address = $result->value_d;
  209.  
  210. // update doctorola_invoice table's status to '1' as this bill is paid.
  211.  
  212. $curl_handle = curl_init();
  213. curl_setopt($curl_handle, CURLOPT_URL, $this->config->item('rest_url').'index.php/care_package_api/pre_booking/format/json');
  214. curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, true);
  215. curl_setopt($curl_handle, CURLOPT_CUSTOMREQUEST, "PUT");
  216. curl_setopt($curl_handle, CURLOPT_POSTFIELDS, http_build_query(array(
  217. 'name' => $name,
  218. 'email' => $email,
  219. 'phone' => $tran_id,
  220. 'address' => $address,
  221. 'package' => $package,
  222. 'tran_date' => $tran_date,
  223. 'amount' => $amount,
  224. 'bank_tran_id' => $bank_tran_id,
  225. 'card_type' => $card_type,
  226. 'card_no' => $card_no,
  227. 'card_issuer' => $card_issuer,
  228. 'card_brand' => $card_brand,
  229. 'card_issuer_country' => $card_issuer_country,
  230. 'card_issuer_country_code' => $card_issuer_country_code,
  231. 'username' => $this->config->item('username'),
  232. 'password' => $this->config->item('password')
  233. )));
  234.  
  235. $buffer = curl_exec($curl_handle);
  236. curl_close($curl_handle);
  237.  
  238. //var_dump($result);
  239.  
  240. $this->prebooking_final_message();
  241. }
  242. else
  243. {
  244. echo "Unable to Connect!";
  245. exit;
  246. }
  247. }
  248.  
  249. public function fail()
  250. {
  251. //print_r($_POST);
  252. echo 'Payment failed';
  253. }
  254.  
  255. public function cancel()
  256. {
  257. //echo 'Payment cancelled';
  258. //sleep(3);
  259. redirect(base_url().'carepack');
  260. }
  261.  
  262.  
  263. public function handleData() {
  264.  
  265.  
  266. $amount_data = $this->input->post('amount');
  267. //var_dump($amount_data);exit;
  268. $amount_arr = explode(" ", $amount_data);
  269. $amount = $amount_arr[1];
  270. $_finalAmount = str_replace( ',', '', $amount );
  271. //var_dump($_finalAmount);exit;
  272.  
  273. $__array = [];
  274.  
  275. $__array['order']['amount'] = $_finalAmount;
  276. $__array['order']['id'] = 'EBL' . time();
  277. $__array['order']['description'] = 'EBL Skypay';
  278. $__array['order']['currency'] = 'BDT';
  279.  
  280. $__array['submit'] = 'PAY WITH EBL SKYPAY';
  281.  
  282. $__array['interaction']['cancelUrl'] = base_url() . 'frontend_final/carepack/cancel?order='.$__array['order']['id'];
  283. $__array['interaction']['returnUrl'] = base_url() . 'frontend_final/carepack/complete?order='.$__array['order']['id'];
  284.  
  285. $__array['interaction']['merchant']['name'] = 'Doctorola.com';
  286. $__array['interaction']['merchant']['logo'] = 'https://res.cloudinary.com/doctorola/image/upload/v1423549010/logo_et3yab.png';
  287. $__array['interaction']['displayControl']['billingAddress'] = 'HIDE';
  288. $__array['interaction']['displayControl']['orderSummary'] = 'HIDE';
  289.  
  290.  
  291.  
  292. $username = $this->config->item('username');
  293. $password = $this->config->item('password');
  294.  
  295. $order_id = $__array['order']['id'];
  296. $package = $this->input->post('value_a');
  297. $name = $this->input->post('value_b');
  298. $email = $this->input->post('value_c');
  299. $address = $this->input->post('value_d');
  300. $phone = $this->input->post('tran_id');
  301. $created_at = date("Y/m/d");
  302.  
  303.  
  304. $url = $this->config->item('rest_url').'index.php/care_package_api/temp_pre_booking/format/json/';
  305.  
  306. $curl_handle = curl_init($url);
  307. curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, true);
  308. curl_setopt($curl_handle, CURLOPT_POST, true);
  309. curl_setopt($curl_handle, CURLOPT_POSTFIELDS, array(
  310. 'order_id' => $order_id,
  311. 'name' => $name,
  312. 'email'=> $email,
  313. 'phone' => $phone,
  314. 'package' => $package,
  315. 'address' => $address,
  316. 'username' => $username,
  317. 'password' => $password,
  318. 'created_at' => $created_at
  319. ));
  320.  
  321. $buffer = curl_exec($curl_handle);
  322.  
  323. curl_close($curl_handle);
  324.  
  325.  
  326. require_once(APPPATH.'libraries/ebl-pg/ebl/configuration.php');
  327. require_once(APPPATH.'libraries/ebl-pg/ebl/skypay.php');
  328.  
  329. //echo 'working';exit;
  330. if($_SERVER['REQUEST_METHOD'] == "POST" && isset($__array['order']['id']) && isset($__array['order']['amount']) && isset($__array['order']['currency'])) {
  331. //var_dump($configArray);exit;
  332. $skypay = new skypay($configArray);
  333. $responseArray = $skypay->Checkout($__array);
  334. }
  335.  
  336.  
  337. }
  338.  
  339. public function complete() {
  340. require_once(APPPATH.'libraries/ebl-pg/ebl/configuration.php');
  341. require_once(APPPATH.'libraries/ebl-pg/ebl/skypay.php');
  342.  
  343. $errorMessage = "";
  344. $errorCode = "";
  345. $gatewayCode = "";
  346. $result = "";
  347.  
  348. $responseArray = array();
  349.  
  350. $resultIndicator = (isset($_GET["resultIndicator"]))?$_GET["resultIndicator"]:"";
  351.  
  352. $eblskypay = $_SESSION['eblskypay'];
  353.  
  354. $result = "Payment Falied";
  355.  
  356. if( !empty($eblskypay['successIndicator']) && ($eblskypay['successIndicator'] == $resultIndicator) ) {
  357. $skypay = new skypay($configArray);
  358. $responseArray = $skypay->RetrieveOrder($_GET["order"]);
  359. if(($responseArray["amount"] == $responseArray["totalAuthorizedAmount"]) && ($responseArray["amount"] == $responseArray["totalCapturedAmount"])) {
  360. $result = "Payment Completed";
  361. }
  362. }
  363.  
  364.  
  365.  
  366. if($result === "Payment Completed") {
  367. $order_id = $responseArray['id'];
  368. //var_dump($order_id);exit;
  369.  
  370. $temp_data = json_decode(file_get_contents($this->config->item('rest_url').'index.php/care_package_api/temp_pre_booking_by_orderid/order_id/'.$order_id.'/username/'.$this->config->item('username').'/password/'.$this->config->item('password').'/format/json'));
  371.  
  372. //var_dump($responseArray['transaction[0].transaction.acquirer.transactionId']);exit;
  373.  
  374. $curl_handle = curl_init();
  375. curl_setopt($curl_handle, CURLOPT_URL, $this->config->item('rest_url').'index.php/care_package_api/ebl_booking/format/json');
  376. curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, true);
  377. curl_setopt($curl_handle, CURLOPT_CUSTOMREQUEST, "PUT");
  378. curl_setopt($curl_handle, CURLOPT_POSTFIELDS, http_build_query(array(
  379. 'name' => $temp_data[0]->name,
  380. 'email' => $temp_data[0]->email,
  381. 'phone' => $temp_data[0]->phone,
  382. 'address' => $temp_data[0]->address,
  383. 'package' => $temp_data[0]->package,
  384. 'tran_date' => $temp_data[0]->created_at,
  385. 'amount' => $responseArray['amount'],
  386. 'bank_tran_id' => $responseArray['transaction[0].transaction.acquirer.transactionId'],
  387. 'card_type' => $responseArray['sourceOfFunds.type'],
  388. 'card_no' => $responseArray['sourceOfFunds.provided.card.number'],
  389. 'card_issuer' => $responseArray['sourceOfFunds.provided.card.issuer'],
  390. 'card_brand' => $responseArray['sourceOfFunds.provided.card.brand'],
  391. 'card_issuer_country' => 'Bangladesh',
  392. 'card_issuer_country_code' => 'BD',
  393. 'username' => $this->config->item('username'),
  394. 'password' => $this->config->item('password')
  395. )));
  396.  
  397. $buffer = curl_exec($curl_handle);
  398. curl_close($curl_handle);
  399. //echo $buffer;
  400.  
  401. $this->prebooking_final_message();
  402. }
  403. }
  404.  
  405. }
Add Comment
Please, Sign In to add comment