Example #1
0
 function create_subscription($subs)
 {
     $list = "";
     // Verify submitted data
     //1. Subscription start could not be earlier submissiom date
     //2. Interval length must be 7 to 365 for day based subscriptions
     // Above verifications delegated to Payment gateway
     $pr = new ProcessPayment();
     $subs_id = $pr->createSubscription($subs);
     if ($subs_id != FALSE) {
         $courseid = $this->get_course_id($subs->coursename);
         $userid = $this->get_userid_by_fio($subs->user);
         $card_last_four = substr($subs->card_no, -4);
         $subs->subsid = $subs_id;
         $subs->courseid = $courseid;
         $subs->userid = $userid;
         $subs->last_four = $card_last_four;
         $list .= $this->add_installment_user($subs);
     } else {
         $list .= "Credit card declined";
     }
     return $list;
 }
Example #2
0
 function make_stub_payment($card)
 {
     $list = "";
     $mailer = new Mailer();
     $invoice = new Invoice();
     $user_group = $card->user_group;
     $userid = $card->userid;
     $item = substr($this->get_course_name($card->courseid), 0, 27);
     $cart_type_num = $this->get_card_type($card->card_type);
     $user_payment_data = $this->get_user_payment_credentials($card->userid);
     // compatible if user does not exist
     //$renew_fee = $this->get_renew_fee();
     // Make card object compatible with confirmation email
     $names = explode(" ", $card->card_holder);
     if (count($names) == 2) {
         $firstname = $names[0];
         $lastname = $names[1];
     }
     //end if
     if (count($names) == 3) {
         $firstname = $names[0] . " " . $names[1];
         $lastname = $names[2];
     }
     // end else
     $card->email = $user_payment_data->email;
     $card->slotid = $this->get_user_slotid($card->courseid, $card->userid);
     // compatible if user does not exist
     $card->first_name = $firstname;
     $card->signup_first = $user_payment_data->firstname;
     $card->last_name = $lastname;
     $card->signup_last = $user_payment_data->lastname;
     $card->phone = $user_payment_data->phone1;
     $card->pwd = $user_payment_data->purepwd;
     $card->addr = $user_payment_data->address;
     $card->city = $user_payment_data->city;
     //$card->state = $user_payment_data->state;
     $card->zip = $user_payment_data->zip;
     $card->country = "US";
     $card->payment_amount = $card->sum;
     $installment_status = $invoice->is_installment_user($card->userid, $card->courseid);
     if ($installment_status == 0) {
         // Personal online payment
         if ($user_group == '' && $userid > 0) {
             $state_code = $this->get_state_code($card->state);
             $user_payment_data = $this->get_user_payment_credentials($userid);
             $order = new stdClass();
             $order->cds_name = "{$firstname}/{$lastname}";
             $order->cds_address_1 = $card->bill_addr;
             $order->cds_city = $card->bill_city;
             $order->cds_state = $state_code;
             $order->cds_zip = $card->bill_zip;
             $order->cds_email = $card->email;
             $order->phone = $user_payment_data->phone1;
             $order->cds_pay_type = $cart_type_num;
             $order->cds_cc_number = $card->card_no;
             $order->cds_cc_exp_month = $card->card_month;
             $order->cds_cc_exp_year = $card->card_year;
             $order->sum = $card->sum;
             $order->cvv = $card->cvv;
             // add card cvv code to processor
             $order->item = $item;
             $order->group = 0;
             $pr = new ProcessPayment();
             $status = $pr->make_transaction($order);
             if ($status === false) {
                 $list .= "<div class='panel panel-default' id='personal_payment_details'>";
                 $list .= "<div class='panel-heading'style='text-align:left;'><h5 class='panel-title'>Payment Details</h5></div>";
                 $list .= "<div class='panel-body'>";
                 $list .= "<div class='container-fluid' style='text-align:left;'>";
                 $list .= "<span class='span8'>Transaction failed, please contact your bank for details.</span>";
                 $list .= "</div>";
                 $list .= "</div>";
                 $list .= "</div>";
             } else {
                 $card->transid = $status['trans_id'];
                 $card->auth_code = $status['auth_code'];
                 $this->confirm_user($card->email);
                 $this->add_payment_to_db($card);
                 // adds payment result to DB
                 $mailer->send_payment_confirmation_message($card);
                 $list .= "<div class='panel panel-default' id='personal_payment_details'>";
                 $list .= "<div class='panel-heading'style='text-align:left;'><h5 class='panel-title'>Payment Details</h5></div>";
                 $list .= "<div class='panel-body'>";
                 $list .= "<div class='container-fluid' style='text-align:center;'>";
                 if ($card->renew > 0) {
                     $cert = new Certificates2();
                     $res = $cert->renew_certificate($card->courseid, $card->userid, $card->renew);
                     if ($res != '') {
                         $list .= "<span class='span8'>Payment is successful. Thank you! Your certificate has been renewed.</span>";
                     } else {
                         $list .= "<span class='span8'>Payment is successful, please contact us to get your updated certificate.</span>";
                     }
                     // end else
                 } else {
                     $list .= "<span class='span8'>Payment is successful. Thank you! You can print your registration data <a href='https://" . $_SERVER['SERVER_NAME'] . "/lms/custom/invoices/registrations/{$user_payment_data->email}.pdf' target='_blank'>here.</a></span>";
                 }
                 // end else
                 $list .= "</div>";
                 $list .= "</div>";
                 $list .= "</div>";
                 $this->enroll->add_user_to_course_schedule($card->userid, $card);
             }
         }
         // end if $user_group==''
         // Installment online payment?
         if ($user_group != '' && $userid > 0) {
             //$user_payment_data = $this->get_user_payment_credentials($userid);
             $order = new stdClass();
             $names = explode(" ", $card->card_holder);
             //print_r($names);
             //echo "<br>";
             //die ();
             $order->cds_name = "{$names['0']} {$names['1']}";
             $order->cds_address_1 = $card->bill_addr;
             $order->cds_city = $card->bill_city;
             $order->cds_state = $card->bill_state;
             $order->cds_zip = $card->bill_zip;
             $order->cds_email = $card->email;
             $order->cds_pay_type = $cart_type_num;
             $order->cds_cc_number = $card->card_no;
             $order->cvv = $card->cvv;
             // add card cvv code to processor
             $order->cds_cc_exp_month = $card->card_month;
             $order->cds_cc_exp_year = $card->card_year;
             $order->sum = $card->sum;
             $order->item = $item;
             $order->group = 0;
             $pr = new ProcessPayment();
             $status = $pr->make_transaction($order);
             if ($status === false) {
                 $list .= "<div class='panel panel-default' id='personal_payment_details'>";
                 $list .= "<div class='panel-heading'style='text-align:left;'><h5 class='panel-title'>Payment Details</h5></div>";
                 $list .= "<div class='panel-body'>";
                 $list .= "<div class='container-fluid' style='text-align:left;'>";
                 $list .= "<span class='span8'>Transaction failed, please contact your bank for details.</span>";
                 $list .= "</div>";
                 $list .= "</div>";
                 $list .= "</div>";
             } else {
                 $card->transid = $status['trans_id'];
                 $card->auth_code = $status['auth_code'];
                 $this->confirm_user($card->email);
                 $this->add_payment_to_db($card);
                 // adds payment result to DB
                 $mailer->send_payment_confirmation_message($card);
                 $list .= "<div class='panel panel-default' id='personal_payment_details'>";
                 $list .= "<div class='panel-heading'style='text-align:left;'><h5 class='panel-title'>Payment Details</h5></div>";
                 $list .= "<div class='panel-body'>";
                 $list .= "<div class='container-fluid' style='text-align:left;'>";
                 $list .= "<span class='span8'>Payment is successful. Thank you!</span>";
                 $list .= "</div>";
                 $list .= "</div>";
                 $list .= "</div>";
                 $this->enroll->add_user_to_course_schedule($card->userid, $card);
             }
             // end else
         }
         // end if $user_group!='' && $userid!=''
         // Group online payment
         if ($user_group != '' && $userid == '') {
             $group_users = $this->get_group_users($user_group);
             $group_sum = $card->sum;
             $state_code = $this->get_state_code($card->state);
             $order = new stdClass();
             $order->cds_name = $card->card_holder;
             $order->cds_address_1 = $card->bill_addr;
             $order->cds_city = $card->bill_city;
             $order->cds_state = $state_code;
             $order->cds_zip = $card->bill_zip;
             $order->cds_email = $card->email;
             $order->cds_pay_type = $cart_type_num;
             $order->cds_cc_number = $card->card_no;
             $order->cvv = $card->cvv;
             // add card cvv code to processor
             $order->cds_cc_exp_month = $card->card_month;
             $order->cds_cc_exp_year = $card->card_year;
             $order->sum = $card->sum;
             $order->item = $item;
             $order->group = 1;
             $pr = new ProcessPayment();
             $status = $pr->make_transaction($order);
             if ($status === false) {
                 $list .= "<div class='panel panel-default' id='personal_payment_details'>";
                 $list .= "<div class='panel-heading'style='text-align:left;'><h5 class='panel-title'>Payment Details</h5></div>";
                 $list .= "<div class='panel-body'>";
                 $list .= "<div class='container-fluid' style='text-align:left;'>";
                 $list .= "<span class='span8'>Transaction failed, please contact your bank for details.</span>";
                 $list .= "</div>";
                 $list .= "</div>";
                 $list .= "</div>";
             } else {
                 $card->transid = $status['trans_id'];
                 $card->auth_code = $status['auth_code'];
                 $list .= "<div class='panel panel-default' id='personal_payment_details'>";
                 $list .= "<div class='panel-heading'style='text-align:left;'><h5 class='panel-title'>Payment Details</h5></div>";
                 $list .= "<div class='panel-body'>";
                 $list .= "<div class='container-fluid' style='text-align:left;'>";
                 $list .= "<span class='span8'>Payment is successful. Thank you!</span>";
                 $list .= "</div>";
                 $list .= "</div>";
                 $list .= "</div>";
                 /*
                  echo "<br>-----Group users:----------------<br>";
                  print_r($group_users);
                  echo "<br>---------------------------------<br>";
                 */
                 if (count($group_users > 0)) {
                     foreach ($group_users as $userid) {
                         $slotid = $this->get_group_users_slot($userid);
                         $card->slotid = $slotid;
                         $user = $this->get_user_detailes($userid);
                         $card->userid = $userid;
                         $this->enroll->add_user_to_course_schedule($userid, $card);
                         $card->sum = round($group_sum / count($group_users), 2);
                         // Sum for every group participant
                         $this->add_payment_to_db($card);
                         // adds payment result to DB
                         $this->confirm_user($user->username);
                         $mailer->send_group_payment_confirmation_message($user);
                     }
                     // end foreach
                 }
                 // end if count($group_users > 0)
             }
             // end else
         }
         // end if $user_group!='' && $userid==''
     } else {
         // It is installment user - create subscription
         $user_payment_data = $this->get_user_payment_credentials($card->userid);
         $installmentobj = $invoice->get_user_installment_payments($card->userid, $card->courseid);
         $order = new stdClass();
         $order->cds_name = "{$firstname}/{$lastname}";
         $order->cds_address_1 = $card->bill_addr;
         $order->cds_city = $card->bill_city;
         $order->cds_state = "{$user_payment_data->state_code}";
         $order->cds_zip = $card->bill_zip;
         $order->cds_email = $card->email;
         $order->cds_pay_type = $cart_type_num;
         $order->cds_cc_number = $card->card_no;
         $order->cvv = $card->cvv;
         // add card cvv code to processor
         $order->cd_cc_month = $card->card_month;
         $order->cds_cc_year = $card->card_year;
         $order->sum = $card->sum;
         $order->item = $item;
         $order->group = 0;
         $order->userid = $card->userid;
         $order->courseid = $card->courseid;
         $order->payments_num = $installmentobj->num;
         $pr = new ProcessPayment();
         $subscriptionID = $pr->createSubscription($order);
         //echo "Subscription  ID: ".$subscriptionID."<br>";
         //die ('Stopped ...');
         if (is_numeric($subscriptionID)) {
             $this->add_subscription($card->userid, $card->courseid, $subscriptionID);
             $card->transid = $status['trans_id'];
             $card->auth_code = $status['auth_code'];
             $this->confirm_user($card->email);
             $this->add_payment_to_db($card);
             // adds payment result to DB
             $mailer->send_payment_confirmation_message($card);
             $list .= "<div class='panel panel-default' id='personal_payment_details'>";
             $list .= "<div class='panel-heading'style='text-align:left;'><h5 class='panel-title'>Payment Details</h5></div>";
             $list .= "<div class='panel-body'>";
             $list .= "<div class='container-fluid' style='text-align:left;'>";
             $list .= "<span class='span8'>Installment payment is successful. Thank you!.</span>";
             $list .= "</div>";
             $list .= "</div>";
             $list .= "</div>";
             $this->enroll->add_user_to_course_schedule($card->userid, $card);
         } else {
             $list .= "<div class='panel panel-default' id='personal_payment_details'>";
             $list .= "<div class='panel-heading'style='text-align:left;'><h5 class='panel-title'>Payment Details</h5></div>";
             $list .= "<div class='panel-body'>";
             $list .= "<div class='container-fluid' style='text-align:left;'>";
             $list .= "<span class='span8'>Installment payment failed, please contact your bank for details.</span>";
             $list .= "</div>";
             $list .= "</div>";
             $list .= "</div>";
         }
         // end else
     }
     // end else
     return $list;
 }