Example #1
0
 function register_service_exten()
 {
     if (!User::is_login()) {
         echo "not_login";
         exit;
     }
     if (User::is_block()) {
         echo "no_permission";
         exit;
     }
     //get user
     $user = User::$current->data;
     $user_name = $user['user_name'];
     //Kieu thanh toan
     $payment_types = (int) Url::get('payment_types');
     //Thong tin gia han
     $order_service_id = (int) Url::get('order_service_id', 0);
     //id order service
     $time_exten = (int) Url::get('time_exten', 0);
     //thoi gian gia han (thang)
     $aryOrderService = array();
     if ($order_service_id) {
         $aryOrderService = DB::select("order_services", "id={$order_service_id}");
     }
     if ($aryOrderService) {
         //kiểm tra thông tin đầu vào
         if ($aryOrderService['user_use'] != $user_name) {
             echo "error";
             exit;
         }
         if ($aryOrderService['active'] != 1) {
             echo "error";
             exit;
         }
         $price = $aryOrderService['price'] / $aryOrderService['time_use'] * $time_exten;
     } else {
         echo "error";
         exit;
     }
     if ($payment_types == 1) {
         $full_name = Url::get("full_name");
         $mobile = Url::get("mobile");
         if (!$full_name || !$mobile) {
             echo "error";
             exit;
         }
         $price = $aryOrderService['price'] / $aryOrderService['time_use'] * $time_exten;
         $orderInfo = array("user_use" => $user_name, "type_scs" => $aryOrderService['type_scs'], "date_reg" => TIME_NOW, "up_count" => $aryOrderService['up_count'], "cpc_count" => $aryOrderService['cpc_count'], "item_count" => $aryOrderService['item_count'], "take_care" => $aryOrderService['take_care'], "price" => $price, "payment_types" => $payment_types, "time_use" => $time_exten, "active" => -4, "reg_exten_stt" => 1);
         //insert
         $id = DB::insert('order_services', $orderInfo);
         if ($id) {
             $order_code = "GH_{$order_service_id}_{$id}";
             $return_url = WEB_ROOT . "payment_scs.html?cmd=complete_exten&exten_order_id={$id}&payment_types=1&order_service_id={$order_service_id}&time_exten={$time_exten}";
             $transaction_info = "Thanh toán DV gia hạn Siêu Chăm Sóc {$aryOrderService['type_scs']} cho {$full_name} [ {$user['user_name']} ], số ĐT liên hệ: {$mobile}";
             $order_email = $user['email'];
             //insert payment_scs exten
             $pay_info = $full_name . "," . $user['email'] . "," . $mobile . "," . $aryOrderService['type_scs'];
             $paymentInfo = array("order_service_id" => $id, "user_id" => $user['id'], "user_name" => $user['user_name'], "payment_types" => $payment_types, "payment_type_soha" => 0, "payment_info" => $pay_info, "order_code" => $order_code, "price" => $price, "time" => time(), "error_text" => "Đang chờ thanh toán", "payment_status" => -1, "reg_exten_stt" => 1);
             //insert
             DB::insert('payment_scs', $paymentInfo);
             //Tạo link thanh toán đến Soha Payment
             $url = SohaPay::buildCheckoutUrl($return_url, $transaction_info, $order_code, $price, $order_email, SCS_MERCHANT_SITE_CODE, SCS_SECURE_CODE);
             echo $url;
             exit;
         } else {
             echo "error_connect";
             exit;
         }
     } else {
         if ($payment_types == 2) {
             global $display;
             if ($aryOrderService) {
                 $orderInfo = array("user_use" => $user_name, "type_scs" => $aryOrderService['type_scs'], "date_reg" => TIME_NOW, "up_count" => $aryOrderService['up_count'], "cpc_count" => $aryOrderService['cpc_count'], "item_count" => $aryOrderService['item_count'], "take_care" => $aryOrderService['take_care'], "price" => $price, "payment_types" => $payment_types, "time_use" => $time_exten, "active" => -3, "reg_exten_stt" => 1);
                 //insert
                 $id = DB::insert('order_services', $orderInfo);
             }
             if ($id) {
                 $payment_info = "";
                 $full_name = AZLib::getParam('ho_ten');
                 $dienthoai = AZLib::getParam('dien_thoai');
                 $dia_chi = AZLib::getParam('dia_chi');
                 $thanh_pho = AZLib::getParam('thanh_pho');
                 $ngay = AZLib::getParam('ngay');
                 $time = AZLib::getParam('time');
                 $payment_info .= $full_name . "," . $dienthoai . "," . $dia_chi . "," . $thanh_pho . "," . $ngay . "," . $time;
                 //Send email here;
                 $display->add('eb_url', WEB_ROOT);
                 $display->add('user_id', $user['id']);
                 $display->add('user_name', $user['user_name']);
                 $display->add('full_name', $full_name);
                 $display->add('dia_chi', $dia_chi);
                 $display->add('thanh_pho', SohaPay::infoForUser($thanh_pho, 'tp'));
                 $display->add('ngay', $ngay);
                 $display->add('time', SohaPay::infoForUser($time, 'time'));
                 $display->add('service_name', $aryOrderService['type_scs']);
                 $display->add('price', number_format($price));
                 $display->add('time_exten', $time_exten);
                 $content_email = $display->output('payment_online_exten_2', 1, 'PaymentScs');
                 $send_mail_stt = "-1";
                 if (System::sendEBEmail($user['email'], '[AzNetGroup] Gia hạn thành công dịch vụ Siêu Chăm Sóc!', $content_email)) {
                     $send_mail_stt = "1";
                 }
                 //tao mang du lieu cho bang payment scs
                 $paymentInfo = array("order_service_id" => $id, "user_id" => $user['id'], "user_name" => $user['user_name'], "payment_types" => $payment_types, "payment_info" => $payment_info, "price" => $price, "payment_status" => 0, "send_mail_stt" => $send_mail_stt, "reg_exten_stt" => 1);
                 //insert
                 DB::insert('payment_scs', $paymentInfo);
                 $url = WEB_ROOT . "payment_scs.html?cmd=payment_finish&id={$id}&exten=1";
                 echo $url;
                 exit;
             }
         } else {
             if ($payment_types == 3) {
                 global $display;
                 if ($aryOrderService) {
                     $orderInfo = array("user_use" => $user_name, "type_scs" => $aryOrderService['type_scs'], "date_reg" => TIME_NOW, "up_count" => $aryOrderService['up_count'], "cpc_count" => $aryOrderService['cpc_count'], "item_count" => $aryOrderService['item_count'], "take_care" => $aryOrderService['take_care'], "price" => $price, "payment_types" => $payment_types, "time_use" => $time_exten, "active" => -3, "reg_exten_stt" => 1);
                     //insert
                     $id = DB::insert('order_services', $orderInfo);
                 }
                 if ($id) {
                     $payment_info = "";
                     if ($user['mobile_phone'] == "") {
                         $phone = $user['home_phone'];
                     } else {
                         $phone = $user['mobile_phone'];
                     }
                     $payment_info .= $user['email'] . "," . $phone;
                     //Send email here;
                     $display->add('eb_url', WEB_ROOT);
                     $display->add('user_id', $user['id']);
                     $display->add('user_name', $user['user_name']);
                     $display->add('service_name', $aryOrderService['type_scs']);
                     $display->add('price', number_format($price));
                     $display->add('time_exten', $time_exten);
                     $content_email = $display->output('payment_online_reg_3', 1, 'PaymentScs');
                     $send_mail_stt = "-1";
                     if (System::sendEBEmail($user['email'], '[AzNetGroup] Gia hạn thành công dịch vụ Siêu Chăm Sóc!', $content_email)) {
                         $send_mail_stt = "1";
                     }
                     //tao mang du lieu cho bang payment scs
                     $paymentInfo = array("order_service_id" => $id, "user_id" => $user['id'], "user_name" => $user['user_name'], "payment_types" => $payment_types, "payment_info" => $payment_info, "price" => $price, "payment_status" => 0, "send_mail_stt" => $send_mail_stt, "reg_exten_stt" => 1);
                     //insert
                     DB::insert('payment_scs', $paymentInfo);
                     $url = WEB_ROOT . "payment_scs.html?cmd=payment_finish&id={$id}&exten=1";
                     echo $url;
                     exit;
                 }
             } else {
                 if ($payment_types == 4) {
                     global $display;
                     if ($aryOrderService) {
                         $orderInfo = array("user_use" => $user_name, "type_scs" => $aryOrderService['type_scs'], "date_reg" => TIME_NOW, "up_count" => $aryOrderService['up_count'], "cpc_count" => $aryOrderService['cpc_count'], "item_count" => $aryOrderService['item_count'], "take_care" => $aryOrderService['take_care'], "price" => $price, "payment_types" => $payment_types, "time_use" => $time_exten, "active" => -3, "reg_exten_stt" => 1);
                         //insert
                         $id = DB::insert('order_services', $orderInfo);
                     }
                     if ($id) {
                         $banking_type = Url::get('banking_type');
                         $banking_code = SohaPay::listBankCode($banking_type);
                         $payment_info = "";
                         if ($user['mobile_phone'] == "") {
                             $phone = $user['home_phone'];
                         } else {
                             $phone = $user['mobile_phone'];
                         }
                         $payment_info .= $user['email'] . "," . $phone . "," . $banking_code;
                         //Send email here;
                         $display->add('eb_url', WEB_ROOT);
                         $display->add('user_id', $user['id']);
                         $display->add('user_name', $user['user_name']);
                         $display->add('service_name', $aryOrderService['type_scs']);
                         $display->add('price', number_format($price));
                         $display->add('banking_type', $banking_type);
                         $display->add('accNumber', SohaPay::listAccountNumber($banking_code));
                         $display->add('banking_name', SohaPay::listBanking($banking_code));
                         $display->add('banking_note', SohaPay::listBanking($banking_code, true));
                         $display->add('time_exten', $time_exten);
                         $content_email = $display->output('payment_online_reg_4', 1, 'PaymentScs');
                         $send_mail_stt = "-1";
                         if (System::sendEBEmail($user['email'], '[AzNetGroup] Gia hạn thành công dịch vụ Siêu Chăm Sóc!', $content_email)) {
                             $send_mail_stt = "1";
                         }
                         //tao mang du lieu cho ban payment scs
                         $paymentInfo = array("order_service_id" => $id, "user_id" => $user['id'], "user_name" => $user['user_name'], "payment_types" => $payment_types, "payment_info" => $payment_info, "price" => $price, "payment_status" => 0, "send_mail_stt" => $send_mail_stt, "reg_exten_stt" => 1);
                         //insert
                         DB::insert('payment_scs', $paymentInfo);
                         $url = WEB_ROOT . "payment_scs.html?cmd=payment_finish&id={$id}&exten=1";
                         echo $url;
                         exit;
                     }
                 }
             }
         }
     }
 }
Example #2
0
 function payment_bill()
 {
     if (!User::is_login()) {
         echo "not_login";
         exit;
     }
     if (User::is_block()) {
         echo "no_perm";
         exit;
     }
     $bill_id = Url::get("bill_id");
     $full_name = Url::get('full_name');
     $mobile = Url::get('mobile');
     $user = User::$current->data;
     if ($bill_id) {
         if (!$full_name || !$mobile) {
             echo "error_info";
             exit;
         }
         $arr = explode(",", $bill_id);
         $id_arr = array();
         foreach ($arr as $payid) {
             $id_arr[$payid] = $payid;
         }
         $p_premium = array();
         #################################################################################
         #Lấy ra bản các bản ghi và kiểm tra
         $re = DB::query("SELECT * FROM payment_premium WHERE id IN({$bill_id})");
         $price = 0;
         if ($re) {
             while ($row = mysql_fetch_assoc($re)) {
                 if ($row['user_id'] == User::id() && $row['status'] == 0) {
                     if (isset($id_arr[$row['id']])) {
                         unset($id_arr[$row['id']]);
                     }
                     $price += $row['price'];
                     $p_premium[$row['id']] = $row;
                 }
             }
         }
         if ($id_arr || $price == 0) {
             echo 'error_service';
             exit;
         }
         //$order_code         = "{$service_code}_{$user['user_name']}_".TIME_NOW;
         $return_url = WEB_ROOT . "personal.html?cmd=bill_payment&bill_id={$bill_id}";
         $transaction_info = "Thanh toán hóa đơn trả sau cho các GD trả sau có mã {$bill_id}, trị giá " . number_format($price, 0, '', '.') . " VNĐ) cho {$full_name} ({$user['user_name']}), số ĐT liên hệ: {$mobile}";
         $payment_ebp = array("item_id" => 0, "log_id" => $bill_id, "user_id" => User::id(), "user_name" => User::user_name(), "service_type" => 2, "service_code" => "Bill", "payment_info" => $transaction_info, "order_code" => '', "price" => $price, "time" => TIME_NOW, "payment_time" => 0, "error_text" => '', "payment_status" => 0, "sent_mail" => 0, "mobile" => $this->check_mobile($mobile));
         $payid = DB::insert("payment_ebp", $payment_ebp);
         if ($payid) {
             $order_code = "Bill_{$payid}";
             if (DB::update("payment_ebp", array("order_code" => $order_code), "id={$payid}")) {
                 //Tạo link thanh toán đến Soha Payment
                 $url = SohaPay::buildCheckoutUrl($return_url, $transaction_info, $order_code, $price, $user['email'], EBP_MERCHANT_SITE_CODE, EBP_SECURE_CODE);
                 echo $url;
                 exit;
             }
         }
     }
     echo "error_service";
     exit;
 }
Example #3
0
 static function doChargeCard($card_code, $card_type, $transaction_info, $order_code, $order_email, $order_mobile, $site_code, $secure_code)
 {
     // Mảng các tham số chuyển tới Soha Payment
     $arr_param = array('site_code' => strval($site_code), 'card_code' => strval($card_code), 'card_type' => strval($card_type), 'transaction_info' => strval($transaction_info), 'order_code' => strval($order_code), 'order_email' => strval($order_email), 'order_mobile' => strval($order_mobile), 'command' => 'doChargeMobileCard');
     ksort($arr_param);
     /* Bước 2. Kiểm tra  biến $redirect_url xem có '?' không, nếu không có thì bổ sung vào*/
     if (SOHA_PAYMENT_QUERY_URL != 'https://pay.soha.vn/payment_query.php') {
         $query_url = 'https://pay.soha.vn/payment_query.php';
     } else {
         $query_url = SOHA_PAYMENT_QUERY_URL;
     }
     if (strpos($query_url, '?') === false) {
         $query_url .= '?';
     } else {
         if (substr($query_url, strlen($query_url) - 1, 1) != '?' && strpos($query_url, '&') === false) {
             // Nếu biến $redirect_url có '?' nhưng không kết thúc bằng '?' và có chứa dấu '&' thì bổ sung vào cuối
             $query_url .= '&';
         }
     }
     /* Bước 3. tạo url*/
     $first = true;
     $secure_code = $secure_code;
     foreach ($arr_param as $key => $value) {
         if ($first == true) {
             $query_url .= urlencode($key) . '=' . urlencode($value);
             $first = false;
         } else {
             $query_url .= '&' . urlencode($key) . '=' . urlencode($value);
         }
         $secure_code .= $value;
     }
     if (strlen($secure_code) > 0) {
         $query_url .= "&secure_hash=" . strtoupper(md5($secure_code));
     }
     ob_start();
     // initialise Client URL object
     $ch = curl_init();
     // set the URL of the VPC
     curl_setopt($ch, CURLOPT_URL, $query_url);
     curl_setopt($ch, CURLOPT_POST, 0);
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
     curl_exec($ch);
     // get response
     $response = ob_get_contents();
     // turn output buffering off.
     ob_end_clean();
     // close client URL
     curl_close($ch);
     $map = array();
     $response = substr($response, 1);
     $pairArray = split("&", $response);
     foreach ($pairArray as $pair) {
         $param = split("=", $pair);
         $map[urldecode($param[0])] = urldecode($param[1]);
     }
     $map['shp_payment_response_description'] = SohaPay::getResponseDescriptionMobileCard($map['response_code']);
     return $map;
 }