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; } } } } } }
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; }
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; }