Ejemplo n.º 1
0
 public function autorenewcodeAction($api_url, $common, $detail)
 {
     $data = array('user_id' => $detail['user_id'], 'use_for_renew' => 1);
     $getCardDetails = $common->getUserCardDetails($api_url, $data);
     $card = end($getCardDetails);
     // Start:-- Get card details
     if ($card['creditCardDetails_token'] != '' && $card['customerDetails_id'] != '') {
         $bookingModel = new Bookings();
         $trans = new Transactions();
         $model = new Practitioners();
         $transaction['amount'] = $detail['price'];
         //$details['price'];
         $transaction['creditCardDetails_token'] = $card['creditCardDetails_token'];
         //$getCardDetails['creditCardDetails_token'];
         $transaction['customerDetails_id'] = $card['customerDetails_id'];
         //$getCardDetails['customerDetails_id'];
         $result = $trans->processPayment($this->getServiceLocator()->get('Config'), $transaction, 1);
         $user_details = $model->getSPDetails($api_url, $detail['user_id']);
         // getting use email permissions
         $subscriptionDetails = $common->getSubscriptiondetails($api_url, $detail['user_id'], true);
         // getting service provider subscription details
         $userFeatures = $common->getFeatures($api_url, $detail['user_id']);
         // If transaction done
         if ($result['status'] == 1) {
             $sendMail = 0;
             // Not send mail
             // Start :- Get subscription end date
             if (isset($detail['duration_in'])) {
                 if ($detail['duration_in'] == "1") {
                     // move subs date $selected['duration'] year ahed
                     $new_expireDate = date('Y-m-d', strtotime("+" . $detail['duration'] . " year", strtotime($detail['subscription_end_date'])));
                 } else {
                     if ($detail['duration_in'] == "2") {
                         // move subs date $selected['duration'] month ahed
                         $new_expireDate = date('Y-m-d', strtotime("+" . $detail['duration'] . " month", strtotime($detail['subscription_end_date'])));
                     } else {
                         if ($detail['duration_in'] == "3") {
                             // move subs date $selected['duration'] month ahed
                             $new_expireDate = date('Y-m-d', strtotime("+" . $detail['duration'] . " days", strtotime($detail['subscription_end_date'])));
                         } else {
                             // do nothing
                         }
                     }
                 }
             }
             // End :- Get subscription end date
             $subscriptionData = array();
             $subscriptionData['subscription_duration_id'] = $detail['subscription_duration_id'];
             $subscriptionData['payment_status_id'] = 7;
             $subscriptionData['site_commision'] = "0";
             $subscriptionData['status_id'] = 1;
             $subscriptionData['user_id'] = $detail['user_id'];
             $subscriptionData['invoice_total'] = $detail['price'];
             $subscriptionData['created_by'] = $detail['user_id'];
             $subscriptionData['invoice_status'] = 1;
             $subscriptionData['amount'] = $detail['price'];
             $subscriptionData['currency'] = $detail['currency'];
             $subscriptionData['payment_date'] = date('Y-m-d H:i:s');
             $subscriptionData['amount_paid'] = $detail['price'];
             $subscriptionData['transaction_id'] = $result['transaction_id'];
             $subscriptionData['payment_instrument_no'] = '5100';
             $subscriptionData['payment_method_id'] = '1';
             $subscriptionData['payment_status'] = 7;
             $subscriptionData['subscription_start_date'] = date('Y-m-d');
             $subscriptionData['sale_type'] = 1;
             $subscriptionData['subscription_end_date'] = $new_expireDate;
             $response = $bookingModel->addBooking($api_url, $subscriptionData);
             if ($response['status'] == 1 && isset($response['id'])) {
                 $user_details['address'] = json_decode($user_details['address'][0], true);
                 $user_details['contact'] = json_decode($user_details['contact'][0], true);
                 $data = $bookingModel->getBookings($api_url, '', '', '', '', '', '', $response['id'], 'subscription');
                 $view = new viewModel(array('booking_details' => $data['results'], 'user_details' => $user_details));
                 $view->setTemplate('application/membership/printinvoice.phtml');
                 $printData = $this->getServiceLocator()->get('viewrenderer')->render($view);
                 // Store in PDF format
                 $dompdf = new \DOMPDF();
                 $dompdf->load_html($printData);
                 $dompdf->render();
                 $output = $dompdf->output();
                 $attachment = new MimePart($output);
                 $attachment->type = 'application/pdf';
                 $attachment->filename = 'invoice.pdf';
                 $attachment->encoding = \Zend\Mime\Mime::ENCODING_BASE64;
                 $attachment->disposition = \Zend\Mime\Mime::DISPOSITION_ATTACHMENT;
                 $patterns = array('/{{user_name}}/i');
                 $replaces = array('<strong>' . $user_details['first_name'] . ' ' . $user_details['last_name'] . '</strong>');
                 if (isset($subscriptionDetails['features']) && is_array($subscriptionDetails['features']) && in_array(11, $subscriptionDetails['features']) || $userFeatures['email'] == 1) {
                     $common->sendMail($api_url, $user_details['email'], '', 11, '', $patterns, $replaces, $attachment);
                 }
             }
         } else {
             /* Make entry in failed payment history (pi21jan) */
             $check_failedpayArr = array('user_id' => $detail['user_id'], 'date' => date('Y-m-d', strtotime('-3 days')));
             $res = $common->check_failed_payment_history($api_url, $check_failedpayArr);
             if ($res) {
                 // there is a failed payment in last three days then set the subscription to basic one
                 $ongoing_subscription = $common->getSubscriptiondetails($api_url, $detail['user_id']);
                 $common->addSubscription($api_url, array('user_id' => $detail['user_id'], 'id' => $ongoing_subscription[0]['id']));
                 $delete_arr = array('user_id' => $detail['user_id']);
                 $common->deletefailedpayment($api_url, $delete_arr);
             } else {
                 $failed_payment_data = array('user_id' => $detail['user_id'], 'sale_type' => '1', 'instrument_no' => '', 'date' => date('Y-m-d H:i:s'));
                 $common->setfailedpayment($api_url, $failed_payment_data);
             }
             /* Failed payment code ends here */
             $consumer = new Consumers();
             // Start :- Get admin email id
             $res = $consumer->getConsumerdetails($api_url, 1);
             if (count($res) > 0) {
                 $adminEmailId = $res['email'];
             }
             // End :- Get admin email id
             $pattern = array('/{{user_name}}/i', '/{{subscription_name}}/i', '/{{error_message}}/i');
             $replace = array('<strong>' . $user_details['first_name'] . ' ' . $user_details['last_name'] . '</strong>', $detail['subscription_name'], '<strong>Transaction failed with message :- </strong>' . $result['msg']);
             if (isset($subscriptionDetails['features']) && is_array($subscriptionDetails['features']) && in_array(11, $subscriptionDetails['features']) || $userFeatures['email'] == 1) {
                 $common->sendMail($api_url, $user_details['email'], '', 19, '', $pattern, $replace, '', $adminEmailId);
             }
         }
     } else {
         /* Make entry in failed payment history (pi21jan) */
         $check_failedpayArr = array('user_id' => $detail['user_id'], 'date' => date('Y-m-d', strtotime('-3 days')));
         $res = $common->check_failed_payment_history($api_url, $check_failedpayArr);
         if ($res) {
             // there is a failed payment in last three days then set the subscription to basic one
             $ongoing_subscription = $common->getSubscriptiondetails($api_url, $detail['user_id']);
             $common->addSubscription($api_url, array('user_id' => $detail['user_id'], 'id' => $ongoing_subscription[0]['id']));
             $delete_arr = array('user_id' => $detail['user_id']);
             $common->deletefailedpayment($api_url, $delete_arr);
         } else {
             $failed_payment_data = array('user_id' => $detail['user_id'], 'sale_type' => '1', 'instrument_no' => '', 'date' => date('Y-m-d H:i:s'));
             $common->setfailedpayment($api_url, $failed_payment_data);
         }
         /* Failed payment code ends here */
     }
     // End:-- Get card details
 }
Ejemplo n.º 2
0
 public function paymentAction()
 {
     $request = $this->getRequest();
     if ($request->isPost()) {
         $subscriptionsession = new Container('subscriptionsession');
         $session = new Container('frontend');
         $bookingModel = new Bookings();
         $trans = new Transactions();
         $model = new Practitioners();
         $common = new Common();
         $consumer = new Consumers();
         $api_url = $this->getServiceLocator()->get('config')['api_url']['value'];
         if ($request->getPost('usesavedcard') !== '1') {
             $data['name'] = $request->getPost('name_on_card');
             $data['email'] = $request->getPost('emailid');
             $card_type = $request->getPost('card_type');
             $data['card_no'] = $request->getPost('card_no');
             $data['month'] = $request->getPost('month');
             $data['year'] = $request->getPost('year');
             $data['cvv_no'] = $request->getPost('cvv_no');
             $data['amount'] = $subscriptionsession->serviceprice;
             $data['rememberme'] = $request->getPost('rememberme');
             $data['use_for_renew'] = $request->getPost('use_for_renew');
             $data['currency'] = $subscriptionsession->currency;
             $result = $trans->processPayment($this->getServiceLocator()->get('Config'), $data);
         } else {
             $savedCard_details = $common->getUserCardDetails($api_url, array('user_id' => $session->userid));
             $cardDetails = end($savedCard_details);
             /* get saved card details : statr */
             $details = $trans->getcarddetails($this->getServiceLocator()->get('Config'), $cardDetails['creditCardDetails_token']);
             if (is_object($details) && isset($details->last4) && isset($details->cardType)) {
                 $data['card_no'] = $details->last4;
                 if ($details->cardType == "Visa") {
                     $card_type = 1;
                 } else {
                     if ($details->cardType == "MasterCard") {
                         $card_type = 2;
                     } else {
                         if ($details->cardType == "American Express") {
                             $card_type = 3;
                         }
                     }
                 }
             }
             /* get saved card details : statr */
             $data['customerDetails_id'] = $cardDetails['customerDetails_id'];
             $data['paymentMethodToken'] = $cardDetails['creditCardDetails_token'];
             $data['amount'] = $subscriptionsession->serviceprice;
             $data['currency'] = $subscriptionsession->currency;
             $result = $trans->processPayment($this->getServiceLocator()->get('Config'), $data, '1');
         }
         if ($result['status'] == 1) {
             // save user card details
             if ($data['rememberme'] == 1 || $data['use_for_renew'] == "1") {
                 $usersCardDetails = array();
                 $usersCardDetails['user_id'] = $session->userid;
                 $usersCardDetails['creditCardDetails_token'] = $result['creditCardDetails_token'];
                 $usersCardDetails['customerDetails_id'] = $result['customerDetails_id'];
                 $usersCardDetails['use_for_renew'] = $data['use_for_renew'] == 1 || $data['use_for_renew'] == "1" ? 1 : 0;
                 $usersCardDetails['card_expiration_hash'] = md5($data['month'] . '-' . $data['year']);
                 //$response = $bookingModel->addUsersCardDetails($api_url, $usersCardDetails);
                 $response = $trans->updateCard($this->getServiceLocator()->get('Config'), $usersCardDetails);
             }
             $subscriptionData = array();
             $subscriptionData['subscription_duration_id'] = $subscriptionsession->subscription_duration_id;
             $subscriptionData['payment_status_id'] = 7;
             $subscriptionData['site_commision'] = "0";
             $subscriptionData['status_id'] = 1;
             $subscriptionData['user_id'] = $session->userid;
             $subscriptionData['invoice_total'] = str_replace(array('USD$', 'CAD$', '$'), array('', '', ''), $subscriptionsession->serviceprice);
             $subscriptionData['created_by'] = $session->userid;
             $subscriptionData['invoice_status'] = 1;
             $subscriptionData['amount'] = str_replace(array('USD$', 'CAD$', '$'), array('', '', ''), $subscriptionsession->serviceprice);
             $subscriptionData['currency'] = $subscriptionsession->currency;
             $subscriptionData['payment_date'] = date('Y-m-d H:i:s');
             $subscriptionData['amount_paid'] = $subscriptionsession->serviceprice;
             $subscriptionData['transaction_id'] = $result['transaction_id'];
             $subscriptionData['payment_instrument_no'] = strlen($data['card_no']) > 4 ? substr($data['card_no'], strlen($data['card_no']) - 4, 4) : $data['card_no'];
             $subscriptionData['payment_method_id'] = $card_type;
             $subscriptionData['payment_status'] = 7;
             $subscriptionData['subscription_start_date'] = date('Y-m-d');
             $subscriptionData['sale_type'] = 1;
             /* 1 for subscription */
             $subscriptionData['subscription_end_date'] = $subscriptionsession->subscription_end_date;
             //$subscriptionData['user_card_id'] = $result['user_card_id'];
             $response = $bookingModel->addBooking($api_url, $subscriptionData);
             if ($response['status'] == 1 && isset($response['id'])) {
                 /* Send email code starts here */
                 $common = new Common();
                 if ($template = $common->emailTemplate($api_url, 11)) {
                     //$sp_details = $model->getSPDetails($api_url, $bookingsession->sp_id);
                     //$user_details = $consumer->getConsumerdetails($api_url, $session->userid);
                     $user_details = $model->getSPDetails($api_url, $session->userid);
                     $user_details['address'] = json_decode($user_details['address'][0], true);
                     $user_details['contact'] = json_decode($user_details['contact'][0], true);
                     $data = $bookingModel->getBookings($api_url, '', '', '', '', '', '', $response['id'], 'subscription');
                     $view = new viewModel(array('booking_details' => $data['results'], 'user_details' => $user_details));
                     $view->setTemplate('application/membership/printinvoice.phtml');
                     $printData = $this->getServiceLocator()->get('viewrenderer')->render($view);
                     // Store in PDF format
                     $dompdf = new \DOMPDF();
                     $dompdf->load_html($printData);
                     $dompdf->render();
                     $output = $dompdf->output();
                     $attachment = new MimePart($output);
                     $attachment->type = 'application/pdf';
                     $attachment->filename = 'invoice.pdf';
                     $attachment->encoding = \Zend\Mime\Mime::ENCODING_BASE64;
                     $attachment->disposition = \Zend\Mime\Mime::DISPOSITION_ATTACHMENT;
                     $mail = new Message();
                     $transport = new \Zend\Mail\Transport\Sendmail();
                     $html = new MimePart(preg_replace('/{{user_name}}/i', '<strong>' . $user_details['first_name'] . ' ' . $user_details['last_name'] . '</strong>', $template['content']));
                     $html->type = "text/html";
                     $body = new MimeMessage();
                     $body->setParts(array($html, $attachment));
                     $mail->setBody($body)->setFrom($template['fromEmail'], 'Ovessence')->addTo($user_details['email'], '')->setSubject($template['subject']);
                     $transport->send($mail);
                     /* Send email code ends here */
                 }
                 // unset all sessions
                 $subscriptionsession->offsetUnset('currency');
                 $subscriptionsession->offsetUnset('serviceprice');
                 $subscriptionsession->offsetUnset('subscription_duration_id');
                 $subscriptionsession->offsetUnset('subscription_end_date');
                 echo json_encode(array('status' => '1', 'msg' => 'Subscription updated successfully. <br /> Redirecting to invoice page..!!', 'subscription_id' => $response['id']));
             } else {
                 echo json_encode(array('status' => '0', 'msg' => 'Transaction completed successfully with Transaction Id <strong>' . $result['transaction_id'] . '</strong>. <br /> Failed to complete your request. Please contact to site admin..!!', 'errors' => $response['data']));
             }
         } else {
             echo json_encode($result);
         }
     }
     exit;
 }
Ejemplo n.º 3
0
 public function paymentAction()
 {
     $request = $this->getRequest();
     if ($request->isPost()) {
         $bookingsession = new Container('bookingsession');
         $session = new Container('frontend');
         $bookingModel = new Bookings();
         $trans = new Transactions();
         $model = new Practitioners();
         $consumer = new Consumers();
         $common = new Common();
         $api_url = $this->getServiceLocator()->get('config')['api_url']['value'];
         $data['name'] = $request->getPost('name_on_card');
         $data['email'] = $request->getPost('emailid');
         $card_type = $request->getPost('card_type');
         $data['card_no'] = $request->getPost('card_no');
         $data['month'] = $request->getPost('month');
         $data['year'] = $request->getPost('year');
         $data['cvv_no'] = $request->getPost('cvv_no');
         $data['amount'] = $bookingsession->price;
         $data['currency'] = $bookingsession->currency;
         $result = $trans->processPayment($this->getServiceLocator()->get('Config'), $data);
         if ($result['status'] == 1) {
             //if (1 == 1) {
             $bookingData = array();
             $bookingData['transaction_id'] = $result['transaction_id'];
             $bookingData['service_provider_id'] = $bookingsession->sp_id;
             $bookingData['user_id'] = $session->userid;
             $bookingData['service_provider_service_id'] = $bookingsession->durationid;
             //$bookingData['booked_date'] = $bookingsession->servicedate;
             $bookingData['booked_date'] = date('Y-m-d H:i:s', strtotime(str_replace('/', '-', $bookingsession->servicedate)));
             $bookingData['booking_status'] = 5;
             $bookingData['payment_status'] = 7;
             $bookingData['status_id'] = 1;
             $bookingData['sale_type'] = 3;
             $bookingData['currency'] = $bookingsession->currency;
             $bookingData['amount'] = str_replace(array('USD$', 'CAD$', 'USD ', 'CAD ', 'USD', 'CAD', '$'), array('', '', '', '', '', '', ''), $bookingsession->serviceprice);
             // as suggested by kanhaiya sir on 1-8-2014
             $bookingData['site_commision'] = $data['amount'];
             $bookingData['invoice_total'] = str_replace(array('USD$', 'CAD$', 'USD ', 'CAD ', 'USD', 'CAD', '$'), array('', '', '', '', '', '', ''), $bookingsession->serviceprice);
             // as suggested by kanhaiya sir on 1-8-2014
             $bookingData['invoice_status'] = 1;
             $bookingData['payment_status_id'] = 7;
             $bookingData['amount_paid'] = $data['amount'];
             $bookingData['payment_date'] = date('Y-m-d H:i:s');
             $bookingData['payment_instrument_no'] = substr($data['card_no'], strlen($data['card_no']) - 4, 4);
             $bookingData['payment_method_id'] = $card_type;
             $bookingData['created_by'] = $session->userid;
             $bookingData['service_address_id'] = $bookingsession->locationid;
             //print_r($bookingData); exit;
             $response = $bookingModel->addBooking($api_url, $bookingData);
             if ($response['status'] == 1 && isset($response['id'])) {
                 //if (1==1) {
                 /* Generate attachment code starts here*/
                 $sp_details = $model->getSPDetails($api_url, $bookingsession->sp_id);
                 $sp_details['contact'] = json_decode($sp_details['contact'][0], true);
                 $user_details = $consumer->getConsumerdetails($api_url, $session->userid);
                 $user_details['address'] = json_decode($user_details['address'][0], true);
                 $user_details['contact'] = json_decode($user_details['contact'][0], true);
                 $data = $bookingModel->getBookings($api_url, '', $session->userid, '', '', '', '', $response['id']);
                 $service_rendering_address = $data['results'][0]['service_address_id'] != '' && $data['results'][0]['service_address_id'] != 'None' ? $common->address($api_url, $data['results'][0]['service_address_id']) : 'Not Available';
                 $view = new viewModel(array('booking_details' => $data['results'], 'user_details' => $user_details, 'service_rendering_address' => $service_rendering_address, 'service_rendering_details' => $sp_details));
                 $view->setTemplate('application/booking/printinvoice.phtml');
                 $printData = $this->getServiceLocator()->get('viewrenderer')->render($view);
                 // Store in PDF format
                 $dompdf = new \DOMPDF();
                 $dompdf->load_html($printData);
                 $dompdf->render();
                 $output = $dompdf->output();
                 $attachment = new MimePart($output);
                 $attachment->type = 'application/pdf';
                 $attachment->filename = 'invoice.pdf';
                 $attachment->encoding = \Zend\Mime\Mime::ENCODING_BASE64;
                 $attachment->disposition = \Zend\Mime\Mime::DISPOSITION_ATTACHMENT;
                 /* Generate attachment code ends here*/
                 /* Send email code starts here */
                 $common = $this->getServiceLocator()->get('Application\\Model\\Common');
                 $pattern = array('/{{user_name}}/i');
                 $userreplace = array('<strong>' . $user_details['first_name'] . ' ' . $user_details['last_name'] . '</strong>');
                 $spreplace = array('<strong>' . $sp_details['first_name'] . ' ' . $sp_details['last_name'] . '</strong>');
                 $common->sendMail($api_url, $user_details['email'], '', 9, '', $pattern, $userreplace, $attachment);
                 $subscriptionDetails = $common->getSubscriptiondetails($api_url, $bookingData['service_provider_id'], true);
                 // getting service provider subscription details
                 $userFeatures = $common->getFeatures($api_url, $bookingData['service_provider_id']);
                 if (isset($subscriptionDetails['features']) && is_array($subscriptionDetails['features']) && in_array(11, $subscriptionDetails['features']) && $userFeatures['email'] == 1) {
                     $common->sendMail($api_url, $sp_details['email'], '', 10, '', $pattern, $spreplace);
                 }
                 if (isset($subscriptionDetails['features']) && is_array($subscriptionDetails['features']) && in_array(12, $subscriptionDetails['features']) && $userFeatures['sms'] == 1) {
                     $common->sendMsg($sp_details['contact']['phone_number'], 1, '', $pattern, array($sp_details['first_name'] . ' ' . $sp_details['last_name']));
                 }
                 /* Send email code ends here */
                 // unset all sessions
                 $bookingsession->offsetUnset('sp_id');
                 $bookingsession->offsetUnset('user_id');
                 $bookingsession->offsetUnset('price');
                 $bookingsession->offsetUnset('locationid');
                 $bookingsession->offsetUnset('serviceid');
                 $bookingsession->offsetUnset('durationid');
                 $bookingsession->offsetUnset('servicedate');
                 $bookingsession->offsetUnset('serviceprice');
                 echo json_encode(array('status' => '1', 'msg' => 'Booking successfully completed. <br /> Redirecting to invoice page..!!', 'booking_id' => $response['id']));
             } else {
                 echo json_encode(array('status' => '0', 'msg' => 'Transaction completed successfully with Transaction Id <strong>' . $result['transaction_id'] . '</strong>. <br /> Failed to book your request. Please contact to site admin..!!', 'errors' => $response['data']));
             }
         } else {
             echo json_encode($result);
         }
     }
     exit;
 }