DigiflazzModel
unknown
php
4 years ago
69 kB
10
Indexable
<?php //'tes' => number_format(200 / 100, 2, ",", "."), defined('BASEPATH') or exit('No direct script access allowed'); require APPPATH . '/libraries/REST_Controller.php'; class Pelanggan extends REST_Controller { public function __construct() { parent::__construct(); $this->load->model('ci_ext_model', 'ci_ext'); $ci_ext = $this->ci_ext->ciext(); if (!$ci_ext) { redirect(gagal); } $this->load->helper("url"); $this->load->database(); $this->load->model('Pelanggan_model'); $this->load->model('Driver_model'); $this->load->model('Digiflazz_model', 'digiflazz'); $this->load->model('appsettings_model', 'app'); date_default_timezone_set('Asia/Jakarta'); if ($this->uri->segment(3) == "login" || $this->uri->segment(3) == "privacy" || $this->uri->segment(3) == "wallet" || $this->uri->segment(3) == "list_payment" || $this->uri->segment(3) == "check_trx" || $this->uri->segment(3) == "req_trx" || $this->uri->segment(3) == "forget" || $this->uri->segment(3) == "register_user") { $this->config->set_item("rest_enable_keys", FALSE); } } function index_get() { $this->response("Api for ouride!", 200); } function privacy_post() { $app_settings = $this->Pelanggan_model->get_settings(); $message = array( 'code' => '200', 'message' => 'found', 'data' => $app_settings ); $this->response($message, 200); } function forgot_post() { $data = file_get_contents("php://input"); $decoded_data = json_decode($data); $condition = array( 'email' => $decoded_data->email, 'status' => '1' ); $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition); $app_settings = $this->Pelanggan_model->get_settings(); $token = sha1(rand(0, 999999) . time()); if ($cek_login->num_rows() > 0) { $cheker = array('msg' => $cek_login->result()); foreach ($app_settings as $item) { foreach ($cheker['msg'] as $item2 => $val) { $dataforgot = array( 'userid' => $val->id, 'token' => $token, 'idKey' => '1' ); } $forgot = $this->Pelanggan_model->dataforgot($dataforgot); $linkbtn = base_url() . 'resetpass/rest/' . $token . '/1'; $template = $this->Pelanggan_model->template1($item['email_subject'], $item['email_text1'], $item['email_text2'], $item['app_website'], $item['app_name'], $linkbtn, $item['app_linkgoogle'], $item['app_address']); $sendmail = $this->Pelanggan_model->emailsend($item['email_subject'] . " [ticket-" . rand(0, 999999) . "]", $decoded_data->email, $template, $item['smtp_host'], $item['smtp_port'], $item['smtp_username'], $item['smtp_password'], $item['smtp_from'], $item['app_name'], $item['smtp_secure']); } if ($forgot && $sendmail) { $message = array( 'code' => '200', 'message' => 'found', 'data' => [] ); $this->response($message, 200); } else { $message = array( 'code' => '401', 'message' => 'email not registered', 'data' => [] ); $this->response($message, 200); } } else { $message = array( 'code' => '404', 'message' => 'email not registered', 'data' => [] ); $this->response($message, 200); } } function verif_ktp_post() { $apikey = $this->input->request_headers()['x-api-key']; $userid = $this->Pelanggan_model->get_userid($apikey); $data = file_get_contents("php://input"); $dec_data = json_decode($data); $noktp = $dec_data->noktp; $nama = $dec_data->nama; $ktp = $dec_data->ktp; $wajah = $dec_data->wajah; if (!$noktp || !$nama || !$ktp || !$wajah) { $message = array( 'message' => 'Masih terdapat data yang kosong!', 'status' => 0 ); $this->response($message, 200); } else { $image_ktp = time() . '-' . rand(0, 99999) . ".jpg"; $image_wajah = time() . '-' . rand(0, 99999) . ".jpg"; $path = "images/verif/ktp/" . $image_ktp; file_put_contents($path, base64_decode($ktp)); $path = "images/verif/wajah/" . $image_wajah; file_put_contents($path, base64_decode($wajah)); $data = array( 'userid' => $userid, 'nik' => $noktp, 'nama' => $nama, 'image_ktp' => $image_ktp, 'image_wajah' => $image_wajah ); $this->Pelanggan_model->insert_verif($data); $message = array( 'message' => 'Data diterima, silahkan tunggu verifikasi admin', 'status' => 1 ); $this->response($message, 200); } } function login_post() { $data = file_get_contents("php://input"); $decoded_data = json_decode($data); $reg_id = array( 'token' => $decoded_data->token ); $condition = array( 'password' => sha1($decoded_data->password), 'no_telepon' => $decoded_data->no_telepon, //'token' => $decoded_data->token ); $check_banned = $this->Pelanggan_model->check_banned($decoded_data->no_telepon); if ($check_banned) { $message = array( 'message' => 'banned', 'data' => [] ); $this->response($message, 200); } else { $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition); $message = array(); if ($cek_login->num_rows() > 0) { $apikey = $decoded_data->token ? password_hash($decoded_data->token, PASSWORD_BCRYPT) : password_hash(md5("sukses2020" + md5(time())), PASSWORD_BCRYPT); $upd_regid = $this->Pelanggan_model->edit_profile($reg_id, $decoded_data->no_telepon); $get_pelanggan = $this->Pelanggan_model->get_data_pelanggan($condition); $data = $get_pelanggan->result_array(); $data[0]['apikey'] = $apikey; $userid = $data[0]["id"]; $this->Pelanggan_model->insert_apikey($apikey, $userid); $message = array( 'code' => '200', 'message' => 'found', 'data' => $data ); $this->response($message, 200); } else { $message = array( 'code' => '404', 'message' => 'wrong phone or password', 'data' => [] ); $this->response($message, 200); } } } function register_user_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $email = $dec_data->email; $phone = $dec_data->no_telepon; $check_exist = $this->Pelanggan_model->check_exist($email, $phone); $check_exist_phone = $this->Pelanggan_model->check_exist_phone($phone); $check_exist_email = $this->Pelanggan_model->check_exist_email($email); if ($check_exist) { $message = array( 'code' => '201', 'message' => 'email and phone number already exist', 'data' => [] ); $this->response($message, 201); } else if ($check_exist_phone) { $message = array( 'code' => '201', 'message' => 'phone already exist', 'data' => [] ); $this->response($message, 201); } else if ($check_exist_email) { $message = array( 'code' => '201', 'message' => 'email already exist', 'data' => [] ); $this->response($message, 201); } else { if ($dec_data->checked == "true") { $message = array( 'code' => '200', 'message' => 'next', 'data' => [] ); $this->response($message, 200); } else { $apikey = $dec_data->token ? password_hash($dec_data->token, PASSWORD_BCRYPT) : password_hash(md5("sukses2020" + md5(time())), PASSWORD_BCRYPT); $image = $dec_data->fotopelanggan; $namafoto = time() . '-' . rand(0, 99999) . ".jpg"; $path = "images/pelanggan/" . $namafoto; file_put_contents($path, base64_decode($image)); $userid = 'P' . time(); $data_signup = array( 'id' => $userid, 'fullnama' => $dec_data->fullnama, 'email' => $dec_data->email, 'no_telepon' => $dec_data->no_telepon, 'phone' => $dec_data->phone, 'password' => sha1($dec_data->password), 'tgl_lahir' => $dec_data->tgl_lahir, 'countrycode' => $dec_data->countrycode, 'fotopelanggan' => $namafoto, 'token' => $dec_data->token, ); $signup = $this->Pelanggan_model->signup($data_signup); $this->Pelanggan_model->insert_apikey($apikey, $userid); if ($signup) { $condition = array( 'password' => sha1($dec_data->password), 'email' => $dec_data->email ); $datauser1 = $this->Pelanggan_model->get_data_pelanggan($condition)->result_array(); $datauser1[0]["apikey"] = $apikey; $message = array( 'code' => '200', 'message' => 'success', 'data' => $datauser1 ); $this->response($message, 200); } else { $message = array( 'code' => '201', 'message' => 'failed', 'data' => [] ); $this->response($message, 201); } } } } function food_post() { //sleep(2); $data = file_get_contents("php://input"); $dec_data = json_decode($data); $long = $dec_data->longitude; $lat = $dec_data->latitude; $merchantnearby = $this->Pelanggan_model->merchantnearby($long, $lat); $kategorymerchant = $this->Pelanggan_model->allfoodcategory()->result(); $merchantpromo = $this->Pelanggan_model->merchantpromo($long, $lat)->result(); $slider = $this->Pelanggan_model->sliderfood(); $condition = array( 'no_telepon' => $dec_data->no_telepon, 'status' => '1' ); $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition); if ($cek_login) { $message = array( 'code' => '200', 'message' => 'success', 'foodkategori' => $kategorymerchant, 'merchantpromo' => $merchantpromo, 'merchantnearby' => $merchantnearby, 'slider' => $slider ); $this->response($message, 200); } else { $message = array( 'code' => '201', 'message' => 'failed', 'data' => [] ); $this->response($message, 201); } } function is_verif_ktp_post() { $apikey = $this->input->request_headers()['x-api-key']; $verif = $this->Pelanggan_model->check_verif_by_apikey($apikey); $this->response(['status_verif' => $verif], 200); } function pembayaran_slider_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $slider = $this->Pelanggan_model->sliderPembayaran(); $berita = $this->Pelanggan_model->beritahome(); $condition = array( 'no_telepon' => $dec_data->no_telepon, 'status' => '1' ); $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition); if ($cek_login) { $message = array( 'slider' => $slider, 'berita' => $berita ); $this->response($message, 200); } else { $message = array( 'code' => '201', 'message' => 'failed', 'data' => [] ); $this->response($message, 201); } } function list_pulsa_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $pulsa = $this->Pelanggan_model->listPulsa($dec_data->jenis, $dec_data->category); $saldo = $this->Pelanggan_model->saldouser($dec_data->id); $condition = array( 'no_telepon' => $dec_data->no_telepon, 'status' => '1' ); $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition); if ($cek_login) { $message = array( 'produk' => $pulsa, 'saldo' => $saldo->row('saldo') ); $this->response($message, 200); } else { $message = array( 'code' => '201', 'message' => 'failed', 'data' => [] ); $this->response($message, 201); } } function prabayar_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $prabayar = $this->Pelanggan_model->listPrabayar($dec_data->jenis, strtoupper($dec_data->brand)); $saldo = $this->Pelanggan_model->saldouser($dec_data->id); $condition = array( 'no_telepon' => $dec_data->no_telepon, 'status' => '1' ); $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition); if ($cek_login) { $message = array( 'produk' => $prabayar, 'saldo' => $saldo->row('saldo') ); $this->response($message, 200); } else { $message = array( 'code' => '201', 'message' => 'failed', 'data' => [] ); $this->response($message, 201); } } function list_emoney_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $emoney = $this->Pelanggan_model->listEmoney(); $condition = array( 'no_telepon' => $dec_data->no_telepon, 'status' => '1' ); $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition); if ($cek_login) { $message = array( 'emoney' => $emoney, ); $this->response($message, 200); } else { $message = array( 'code' => '201', 'message' => 'failed', 'data' => [] ); $this->response($message, 201); } } function list_prabayar_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $emoney = $this->Pelanggan_model->listPrabayarByJenis($dec_data->jenis, strtoupper($dec_data->brand)); $condition = array( 'no_telepon' => $dec_data->no_telepon, 'status' => '1' ); $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition); if ($cek_login) { $message = array( 'list' => $emoney, ); $this->response($message, 200); } else { $message = array( 'code' => '201', 'message' => 'failed', 'data' => [] ); $this->response($message, 201); } } function pabayarbyjenis() { } function home_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $slider = $this->Pelanggan_model->sliderhome(); $fitur = $this->Pelanggan_model->fiturhome(); $allfitur = $this->Pelanggan_model->fiturhomeall(); $rating = $this->Pelanggan_model->ratinghome(); $saldo = $this->Pelanggan_model->saldouser($dec_data->id); $app_settings = $this->Pelanggan_model->get_settings(); $berita = $this->Pelanggan_model->beritahome(); $kategorymerchant = $this->Pelanggan_model->kategorymerchant()->result(); $long = $dec_data->longitude; $lat = $dec_data->latitude; $merchantpromo = $this->Pelanggan_model->merchantpromo($long, $lat)->result(); $merchantnearby = $this->Pelanggan_model->merchantnearby($long, $lat); $condition = array( 'no_telepon' => $dec_data->no_telepon, 'status' => '1' ); $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition); foreach ($app_settings as $item) { if ($cek_login->num_rows() > 0) { $message = array( 'code' => '200', 'message' => 'success', 'saldo' => $saldo->row('saldo'), 'currency' => $item['app_currency'], 'currency_text' => $item['app_currency_text'], 'app_aboutus' => $item['app_aboutus'], 'app_contact' => $item['app_contact'], 'app_website' => $item['app_website'], 'stripe_active' => $item['stripe_active'], 'paypal_key' => $item['paypal_key'], 'paypal_mode' => $item['paypal_mode'], 'paypal_active' => $item['paypal_active'], 'app_email' => $item['app_email'], 'slider' => $slider, 'fitur' => $fitur, 'allfitur' => $allfitur, 'ratinghome' => $rating, 'beritahome' => $berita, 'kategorymerchanthome' => $kategorymerchant, 'merchantnearby' => $merchantnearby, 'merchantpromo' => $merchantpromo, 'data' => $cek_login->result() ); $this->response($message, 200); } else { $message = array( 'code' => '201', 'message' => 'failed', 'data' => [] ); $this->response($message, 201); } } } public function merchantbykategori_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $kategori = $dec_data->kategori; $fitur = $dec_data->fitur; $long = $dec_data->longitude; $lat = $dec_data->latitude; $merchantbykategori = $this->Pelanggan_model->merchantbykategori($kategori, $long, $lat, $fitur)->result(); $condition = array( 'no_telepon' => $dec_data->no_telepon, 'status' => '1' ); $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition); if ($cek_login->num_rows() > 0) { $message = array( 'code' => '200', 'message' => 'success', 'merchantbykategori' => $merchantbykategori ); $this->response($message, 200); } else { $message = array( 'code' => '201', 'message' => 'failed', 'data' => [] ); $this->response($message, 201); } } public function merchantbykategoripromo_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $kategori = $dec_data->kategori; $long = $dec_data->longitude; $lat = $dec_data->latitude; $merchantbykategori = $this->Pelanggan_model->merchantbykategoripromo($kategori, $long, $lat)->result(); $condition = array( 'no_telepon' => $dec_data->no_telepon, 'status' => '1' ); $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition); if ($cek_login->num_rows() > 0) { $message = array( 'code' => '200', 'message' => 'success', 'merchantbykategori' => $merchantbykategori ); $this->response($message, 200); } else { $message = array( 'code' => '201', 'message' => 'failed', 'data' => [] ); $this->response($message, 201); } } public function allmerchant_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $fitur = $dec_data->fitur; $kategorymerchant = $this->Pelanggan_model->kategorymerchantbyfitur($fitur)->result(); $long = $dec_data->longitude; $lat = $dec_data->latitude; $allmerchantnearby = $this->Pelanggan_model->allmerchantnearby($long, $lat, $fitur)->result(); $condition = array( 'status' => '1' ); $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition); if ($cek_login->num_rows() > 0) { $message = array( 'code' => '200', 'message' => 'success', 'kategorymerchant' => $kategorymerchant, 'allmerchantnearby' => $allmerchantnearby ); $this->response($message, 200); } else { $message = array( 'code' => '201', 'message' => 'failed', 'data' => [] ); $this->response($message, 201); } } public function allmerchantbykategori_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $fitur = $dec_data->fitur; $long = $dec_data->longitude; $lat = $dec_data->latitude; $kategori = $dec_data->kategori; $allmerchantnearbybykategori = $this->Pelanggan_model->allmerchantnearbybykategori($long, $lat, $fitur, $kategori)->result(); $condition = array( 'no_telepon' => $dec_data->no_telepon, 'status' => '1' ); $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition); if ($cek_login->num_rows() > 0) { $message = array( 'code' => '200', 'message' => 'success', 'allmerchantnearby' => $allmerchantnearbybykategori ); $this->response($message, 200); } else { $message = array( 'code' => '201', 'message' => 'failed', 'data' => [] ); $this->response($message, 201); } } public function searchmerchant_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $like = $dec_data->like; $long = $dec_data->longitude; $lat = $dec_data->latitude; $fitur = $dec_data->fitur; $kategori = $dec_data->kategori; $searchmerchantnearby = $this->Pelanggan_model->searchmerchantnearby($like, $long, $lat, $fitur, $kategori); $condition = array( 'no_telepon' => $dec_data->no_telepon, 'status' => '1' ); $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition); if ($cek_login->num_rows() > 0) { $message = array( 'code' => '200', 'message' => 'success', 'allmerchantnearby' => $searchmerchantnearby ); $this->response($message, 200); } else { $message = array( 'code' => '201', 'message' => 'failed', 'data' => [] ); $this->response($message, 201); } } public function merchantbyid_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $idmerchant = $dec_data->idmerchant; $long = $dec_data->longitude; $lat = $dec_data->latitude; $merchantbyid = $this->Pelanggan_model->merchantbyid($idmerchant, $long, $lat)->row(); $itemstatus = $this->Pelanggan_model->itemstatus($idmerchant)->row(); if (empty($itemstatus->status_promo)) { $itempromo = '0'; } else { $itempromo = $itemstatus->status_promo; } $itembyid = $this->Pelanggan_model->itembyid($idmerchant)->Result(); $kategoriitem = $this->Pelanggan_model->kategoriitem($idmerchant)->Result(); $condition = array( 'no_telepon' => $dec_data->no_telepon, 'status' => '1' ); $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition); if ($cek_login->num_rows() > 0) { $message = array( 'code' => '200', 'message' => 'success', 'idfitur' => $merchantbyid->id_fitur, 'idmerchant' => $merchantbyid->id_merchant, 'namamerchant' => $merchantbyid->nama_merchant, 'alamatmerchant' => $merchantbyid->alamat_merchant, 'latmerchant' => $merchantbyid->latitude_merchant, 'longmerchant' => $merchantbyid->longitude_merchant, 'is_24h' => $merchantbyid->is_24h, 'bukamerchant' => $merchantbyid->jam_buka, 'tutupmerchant' => $merchantbyid->jam_tutup, 'descmerchant' => $merchantbyid->deskripsi_merchant, 'fotomerchant' => $merchantbyid->foto_merchant, 'telpcmerchant' => $merchantbyid->telepon_merchant, 'distance' => $merchantbyid->distance, 'partner' => $merchantbyid->partner, 'kategori' => $merchantbyid->nama_kategori, 'promo' => $itempromo, 'itembyid' => $itembyid, 'kategoriitem' => $kategoriitem ); $this->response($message, 200); } else { $message = array( 'code' => '201', 'message' => 'failed', 'data' => [] ); $this->response($message, 201); } } public function itembykategori_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $idmerchant = $dec_data->id; $itemk = $dec_data->kategori; $itembykategori = $this->Pelanggan_model->itembykategori($idmerchant, $itemk)->result(); $condition = array( 'no_telepon' => $dec_data->no_telepon, 'status' => '1' ); $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition); if ($cek_login->num_rows() > 0) { $message = array( 'code' => '200', 'message' => 'success', 'itembyid' => $itembykategori ); $this->response($message, 200); } else { $message = array( 'code' => '201', 'message' => 'failed', 'data' => [] ); $this->response($message, 201); } } function rate_driver_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $data_rate = array(); if ($dec_data->catatan == "") { $data_rate = array( 'id_pelanggan' => $dec_data->id_pelanggan, 'id_driver' => $dec_data->id_driver, 'rating' => $dec_data->rating, 'id_transaksi' => $dec_data->id_transaksi ); } else { $data_rate = array( 'id_pelanggan' => $dec_data->id_pelanggan, 'id_driver' => $dec_data->id_driver, 'rating' => $dec_data->rating, 'id_transaksi' => $dec_data->id_transaksi, 'catatan' => $dec_data->catatan ); } $finish_transaksi = $this->Pelanggan_model->rate_driver($data_rate); if ($finish_transaksi) { $message = array( 'message' => 'success', 'data' => [] ); $this->response($message, 200); } else { $message = array( 'message' => 'fail', 'data' => [] ); $this->response($message, 200); } } public function upload_tf_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $condition = array( 'no_telepon' => $dec_data->no_telepon, 'status' => '1' ); $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition); if ($cek_login->num_rows() > 0) { $image = $dec_data->image; if ($image) { $namafoto = time() . '-' . rand(0, 99999) . ".jpg"; $path = "images/trx/" . $namafoto; file_put_contents($path, base64_decode($image)); $this->Pelanggan_model->upload_tf($namafoto, $dec_data->id); $message = array( 'code' => '200', 'message' => 'success', ); $this->response($message, 200); } else { $message = array( 'code' => '201', 'message' => 'failed', ); $this->response($message, 201); } } else { $message = array( 'code' => '201', 'message' => 'failed', ); $this->response($message, 201); } } public function pending_topup_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $condition = array( 'no_telepon' => $dec_data->no_telepon, 'status' => '1' ); $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition); if ($cek_login->num_rows() > 0) { $list_topup = $this->Pelanggan_model->listPendingTopup($dec_data->id); $count = $this->Pelanggan_model->countPendingTopup($dec_data->id); $message = array( 'code' => '200', 'message' => 'success', 'jumlah' => $count, 'topup' => $list_topup ); $this->response($message, 200); } else { $message = array( 'code' => '201', 'message' => 'failed', 'data' => [] ); $this->response($message, 201); } } public function topupstripe_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $name = $dec_data->name; $email = $dec_data->email; $card_num = $dec_data->card_num; $card_cvc = $dec_data->cvc; $card_exp = explode("/", $dec_data->expired); $product = $dec_data->product; $number = $dec_data->number; $price = $dec_data->price; $iduser = $dec_data->id; //include Stripe PHP library require_once APPPATH . "third_party/stripe/init.php"; //set api key $app_settings = $this->Pelanggan_model->get_settings(); foreach ($app_settings as $item) { $stripe = array( "secret_key" => $item['stripe_secret_key'], "publishable_key" => $item['stripe_published_key'] ); if ($item['stripe_status'] == '1') { \Stripe\Stripe::setApiKey($stripe['secret_key']); } else if ($item['stripe_status'] == '2') { \Stripe\Stripe::setApiKey($stripe['publishable_key']); } else { \Stripe\Stripe::setApiKey(""); } } $tokenstripe = \Stripe\Token::create([ 'card' => [ 'number' => $card_num, 'exp_month' => $card_exp[0], 'exp_year' => $card_exp[1], 'cvc' => $card_cvc, ], ]); if (!empty($tokenstripe['id'])) { //add customer to stripe $customer = \Stripe\Customer::create(array( 'email' => $email, 'source' => $tokenstripe['id'] )); //item information $itemName = $product; $itemNumber = $number; $itemPrice = $price; $currency = "usd"; $orderID = "INV-" . time(); //charge a credit or a debit card $charge = \Stripe\Charge::create(array( 'customer' => $customer->id, 'amount' => $itemPrice, 'currency' => $currency, 'description' => $itemNumber, 'metadata' => array( 'item_id' => $itemNumber ) )); //retrieve charge details $chargeJson = $charge->jsonSerialize(); //check whether the charge is successful if ($chargeJson['amount_refunded'] == 0 && empty($chargeJson['failure_code']) && $chargeJson['paid'] == 1 && $chargeJson['captured'] == 1) { //order details $amount = $chargeJson['amount']; $balance_transaction = $chargeJson['balance_transaction']; $currency = $chargeJson['currency']; $status = $chargeJson['status']; $date = date("Y-m-d H:i:s"); $datatopup = array( 'id_user' => $iduser, 'rekening' => $card_num, 'bank' => 'stripe', 'nama_pemilik' => $name, 'type' => 'topup', 'jumlah' => $chargeJson['amount'], 'status' => 1 ); if ($status == 'succeeded') { $topupdata = $this->Pelanggan_model->insertwallet($datatopup); $saldolama = $this->Pelanggan_model->saldouser($iduser); $saldobaru = $saldolama->row('saldo') + $itemPrice; $saldo = array('saldo' => $saldobaru); $this->Pelanggan_model->tambahsaldo($iduser, $saldo); $message = array( 'code' => '200', 'message' => 'success', 'data' => [] ); $this->response($message, 200); } else { $message = array( 'code' => '201', 'message' => 'error', 'data' => [] ); $this->response($message, 200); } } else { $message = array( 'code' => '202', 'message' => 'error', 'data' => [] ); $this->response($message, 200); } } else { echo "Invalid Token"; $statusMsg = ""; } } public function topuppaypal_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $iduser = $dec_data->id; $bank = $dec_data->bank; $nama = $dec_data->nama; $amount = $dec_data->amount; $card = $dec_data->card; $email = $dec_data->email; $phone = $dec_data->no_telepon; $datatopup = array( 'id_user' => $iduser, 'rekening' => $card, 'bank' => $bank, 'nama_pemilik' => $nama, 'type' => 'topup', 'jumlah' => $amount, 'status' => 1 ); $check_exist = $this->Pelanggan_model->check_exist($email, $phone); if ($check_exist) { $this->Pelanggan_model->insertwallet($datatopup); $saldolama = $this->Pelanggan_model->saldouser($iduser); $saldobaru = $saldolama->row('saldo') + $amount; $saldo = array('saldo' => $saldobaru); $this->Pelanggan_model->tambahsaldo($iduser, $saldo); $message = array( 'code' => '200', 'message' => 'success', 'data' => [] ); $this->response($message, 200); } else { $message = array( 'code' => '201', 'message' => 'You have insufficient balance', 'data' => [] ); $this->response($message, 200); } } public function withdraw_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $iduser = $dec_data->id; $bank = $dec_data->bank; $nama = $dec_data->nama; $amount = $dec_data->amount; $card = $dec_data->card; $email = $dec_data->email; $phone = $dec_data->no_telepon; $saldolama = $this->Pelanggan_model->saldouser($iduser); $datawithdraw = array( 'id_user' => $iduser, 'rekening' => $card, 'bank' => $bank, 'nama_pemilik' => $nama, 'type' => $dec_data->type, 'jumlah' => $amount, 'status' => 0 ); $check_exist = $this->Pelanggan_model->check_exist($email, $phone); $apikey = $this->input->request_headers()['x-api-key']; $verif = $this->Pelanggan_model->check_verif_by_apikey($apikey); if ($verif == 0) { $message = array( 'code' => '401', 'message' => 'Akun kamu belum di verifikasi', 'data' => [] ); $this->response($message, 200); } else if ($dec_data->type == "topup") { $withdrawdata = $this->Pelanggan_model->insertwallet($datawithdraw); $message = array( 'code' => '200', 'message' => 'success', 'data' => [] ); $this->response($message, 200); } else { if ($saldolama->row('saldo') >= $amount && $check_exist) { $withdrawdata = $this->Pelanggan_model->insertwallet($datawithdraw); $message = array( 'code' => '200', 'message' => 'success', 'data' => [] ); $this->response($message, 200); } else { $message = array( 'code' => '201', 'message' => 'You have insufficient balance', 'data' => [] ); $this->response($message, 200); } } } function list_ride_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $near = $this->Pelanggan_model->get_driver_ride($dec_data->latitude, $dec_data->longitude, $dec_data->fitur); $message = array( 'data' => $near->result() ); $this->response($message, 200); } function list_bank_post() { $near = $this->Pelanggan_model->listbank(); $message = array( 'data' => $near->result() ); $this->response($message, 200); } function list_car_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $near = $this->Pelanggan_model->get_driver_car($dec_data->latitude, $dec_data->longitude, $dec_data->fitur); $message = array( 'data' => $near->result() ); $this->response($message, 200); } function detail_fitur_get() { $app_settings = $this->Pelanggan_model->get_settings(); $biaya = $this->Pelanggan_model->get_biaya(); foreach ($app_settings as $item) { $message = array( 'data' => $biaya['fitur'], 'diskon_wallet' => $biaya['diskon'], 'currency' => $item['app_currency'], ); $this->response($message, 200); } } function request_transaksi_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $data_req = array( 'id_pelanggan' => $dec_data->id_pelanggan, 'order_fitur' => $dec_data->order_fitur, 'start_latitude' => $dec_data->start_latitude, 'start_longitude' => $dec_data->start_longitude, 'end_latitude' => $dec_data->end_latitude, 'end_longitude' => $dec_data->end_longitude, 'jarak' => $dec_data->jarak, 'harga' => $dec_data->harga, 'estimasi_time' => $dec_data->estimasi, 'waktu_order' => date('Y-m-d H:i:s'), 'alamat_asal' => $dec_data->alamat_asal, 'alamat_tujuan' => $dec_data->alamat_tujuan, 'biaya_akhir' => $dec_data->harga, 'kredit_promo' => $dec_data->kredit_promo, 'pakai_wallet' => $dec_data->pakai_wallet ); $request = $this->Pelanggan_model->insert_transaksi($data_req); if ($request['status']) { $message = array( 'message' => 'success', 'data' => $request['data'] ); $this->response($message, 200); } else { $message = array( 'message' => 'fail', 'data' => $request['data'] ); $this->response($message, 200); } } function check_status_transaksi_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $dataTrans = array( 'id_transaksi' => $dec_data->id_transaksi ); $getStatus = $this->Pelanggan_model->check_status($dataTrans); $this->response($getStatus, 200); } function user_cancel_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $data_req = array( 'id_transaksi' => $dec_data->id_transaksi ); $cancel_req = $this->Pelanggan_model->user_cancel_request($data_req); if ($cancel_req['status']) { $this->Driver_model->delete_chat($cancel_req['iddriver'], $cancel_req['idpelanggan']); $message = array( 'message' => 'canceled', 'data' => [] ); $this->response($message, 200); } else { $message = array( 'message' => 'cancel fail', 'data' => [] ); $this->response($message, 200); } } function liat_lokasi_driver_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $getLoc = $this->Pelanggan_model->get_driver_location($dec_data->id); $message = array( 'status' => true, 'data' => $getLoc->result() ); $this->response($message, 200); } function detail_transaksi_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $gettrans = $this->Pelanggan_model->transaksi($dec_data->id); $getdriver = $this->Pelanggan_model->detail_driver($dec_data->id_driver); $getitem = $this->Pelanggan_model->detail_item($dec_data->id); $message = array( 'status' => true, 'data' => $gettrans->result(), 'driver' => $getdriver->result(), 'item' => $getitem->result(), ); $this->response($message, 200); } function detail_berita_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $getberita = $this->Pelanggan_model->beritadetail($dec_data->id); $message = array( 'status' => true, 'data' => $getberita->result() ); $this->response($message, 200); } function add_komentar_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data, true); $id_berita = $dec_data["id_berita"]; $uid = $dec_data["userid"]; $parent_id = $dec_data["parent_id"]; $komentar = $dec_data["komentar"]; if (!$id_berita || !$uid || !$komentar) { $message = array( 'status' => false, 'message' => "Terdapat data yang kosong!" ); } else { $insert = $this->Pelanggan_model->insertKomentar($id_berita, $parent_id, $uid, $komentar); if ($insert) { $message = array( 'status' => true, 'message' => "Berhasil menambah komentar" ); } else { $message = array( 'status' => true, 'message' => "Gagal menyimpan ke database!" ); } } $this->response($message, 200); } function all_berita_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data, true); $getberita = $this->Pelanggan_model->allberita($dec_data['cabang']); $data = array(); foreach ($getberita as $berita) { $berita['count'] = $this->Pelanggan_model->countKomentar($berita['id_berita']); array_push($data, $berita); } $message = array( 'status' => true, 'data' => $data ); $this->response($message, 200); } function get_komentar_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data, true); $getkomen = $this->Pelanggan_model->getkomentar($dec_data['berita_id']); $count = $this->Pelanggan_model->countKomentar($dec_data['berita_id']); $message = array( 'status' => true, 'count' => $count, 'data' => $getkomen ); $this->response($message, 200); } function list_cabang_get() { $cabang = $this->Pelanggan_model->getCabang(); $message = array( 'status' => true, 'data' => $cabang ); $this->response($message, 200); } function edit_profile_post() { $data = file_get_contents("php://input"); $decoded_data = json_decode($data); $check_exist_phone = $this->Pelanggan_model->check_exist_phone_edit($decoded_data->id, $decoded_data->no_telepon); $check_exist_email = $this->Pelanggan_model->check_exist_email_edit($decoded_data->id, $decoded_data->email); if ($check_exist_phone) { $message = array( 'code' => '201', 'message' => 'phone already exist', 'data' => [] ); $this->response($message, 201); } else if ($check_exist_email) { $message = array( 'code' => '201', 'message' => 'email already exist', 'data' => [] ); $this->response($message, 201); } else { $condition = array( 'no_telepon' => $decoded_data->no_telepon ); $condition2 = array( 'no_telepon' => $decoded_data->no_telepon_lama ); if ($decoded_data->fotopelanggan == null && $decoded_data->fotopelanggan_lama == null) { $datauser = array( 'fullnama' => $decoded_data->fullnama, 'no_telepon' => $decoded_data->no_telepon, 'phone' => $decoded_data->phone, 'email' => $decoded_data->email, 'countrycode' => $decoded_data->countrycode, 'tgl_lahir' => $decoded_data->tgl_lahir ); } else { $image = $decoded_data->fotopelanggan; $namafoto = time() . '-' . rand(0, 99999) . ".jpg"; $path = "images/pelanggan/" . $namafoto; file_put_contents($path, base64_decode($image)); $foto = $decoded_data->fotopelanggan_lama; $path = "./images/pelanggan/$foto"; unlink("$path"); $datauser = array( 'fullnama' => $decoded_data->fullnama, 'no_telepon' => $decoded_data->no_telepon, 'phone' => $decoded_data->phone, 'email' => $decoded_data->email, 'fotopelanggan' => $namafoto, 'countrycode' => $decoded_data->countrycode, 'tgl_lahir' => $decoded_data->tgl_lahir ); } $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition2); if ($cek_login->num_rows() > 0) { $upd_user = $this->Pelanggan_model->edit_profile($datauser, $decoded_data->no_telepon_lama); $getdata = $this->Pelanggan_model->get_data_pelanggan($condition); $message = array( 'code' => '200', 'message' => 'success', 'data' => $getdata->result() ); $this->response($message, 200); } else { $message = array( 'code' => '404', 'message' => 'error data', 'data' => [] ); $this->response($message, 200); } } } function wallet_post() { $data = file_get_contents("php://input"); $decoded_data = json_decode($data); $getWallet = $this->Pelanggan_model->getwallet($decoded_data->id); $message = array( 'status' => true, 'data' => $getWallet->result() ); $this->response($message, 200); } function history_progress_post() { $data = file_get_contents("php://input"); $decoded_data = json_decode($data); $getWallet = $this->Pelanggan_model->all_transaksi($decoded_data->id); $message = array( 'status' => true, 'data' => $getWallet->result() ); $this->response($message, 200); } function request_transaksi_send_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $data_req = array( 'id_pelanggan' => $dec_data->id_pelanggan, 'order_fitur' => $dec_data->order_fitur, 'start_latitude' => $dec_data->start_latitude, 'start_longitude' => $dec_data->start_longitude, 'end_latitude' => $dec_data->end_latitude, 'end_longitude' => $dec_data->end_longitude, 'jarak' => $dec_data->jarak, 'harga' => $dec_data->harga, 'estimasi_time' => $dec_data->estimasi, 'waktu_order' => date('Y-m-d H:i:s'), 'alamat_asal' => $dec_data->alamat_asal, 'alamat_tujuan' => $dec_data->alamat_tujuan, 'biaya_akhir' => $dec_data->harga, 'kredit_promo' => $dec_data->kredit_promo, 'pakai_wallet' => $dec_data->pakai_wallet ); $dataDetail = array( 'nama_pengirim' => $dec_data->nama_pengirim, 'telepon_pengirim' => $dec_data->telepon_pengirim, 'nama_penerima' => $dec_data->nama_penerima, 'telepon_penerima' => $dec_data->telepon_penerima, 'nama_barang' => $dec_data->nama_barang ); $request = $this->Pelanggan_model->insert_transaksi_send($data_req, $dataDetail); if ($request['status']) { $message = array( 'message' => 'success', 'data' => $request['data']->result() ); $this->response($message, 200); } else { $message = array( 'message' => 'fail', 'data' => [] ); $this->response($message, 200); } } function changepass_post() { $data = file_get_contents("php://input"); $decoded_data = json_decode($data); $reg_id = array( 'password' => sha1($decoded_data->new_password) ); $condition = array( 'password' => sha1($decoded_data->password), 'no_telepon' => $decoded_data->no_telepon ); $condition2 = array( 'password' => sha1($decoded_data->new_password), 'no_telepon' => $decoded_data->no_telepon ); $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition); $message = array(); if ($cek_login->num_rows() > 0) { $upd_regid = $this->Pelanggan_model->edit_profile($reg_id, $decoded_data->no_telepon); $get_pelanggan = $this->Pelanggan_model->get_data_pelanggan($condition2); $message = array( 'code' => '200', 'message' => 'found', 'data' => $get_pelanggan->result() ); $this->response($message, 200); } else { $message = array( 'code' => '404', 'message' => 'wrong password', 'data' => [] ); $this->response($message, 200); } } function alldriver_get($id) { $near = $this->Pelanggan_model->get_driver_location_admin($this->session->userdata('level'), $this->session->userdata('cabang')); $message = array( 'data' => $near->result() ); $this->response($message, 200); } function alltransactionpickup_get() { $near = $this->Pelanggan_model->getAlltransaksipickup(); $message = array( 'data' => $near->result() ); $this->response($message, 200); } function alltransactiondestination_get() { $near = $this->Pelanggan_model->getAlltransaksidestination(); $message = array( 'data' => $near->result() ); $this->response($message, 200); } function inserttransaksimerchant_post() { $data = file_get_contents("php://input"); $dec_data = json_decode($data); $data_transaksi = array( 'id_pelanggan' => $dec_data->id_pelanggan, 'order_fitur' => $dec_data->order_fitur, 'start_latitude' => $dec_data->start_latitude, 'start_longitude' => $dec_data->start_longitude, 'end_latitude' => $dec_data->end_latitude, 'end_longitude' => $dec_data->end_longitude, 'jarak' => $dec_data->jarak, 'harga' => $dec_data->harga, 'waktu_order' => date('Y-m-d H:i:s'), 'estimasi_time' => $dec_data->estimasi, 'alamat_asal' => $dec_data->alamat_asal, 'alamat_tujuan' => $dec_data->alamat_tujuan, 'kredit_promo' => $dec_data->kredit_promo, 'pakai_wallet' => $dec_data->pakai_wallet, ); $total_belanja = [ 'total_belanja' => $dec_data->total_biaya_belanja, ]; $dataDetail = [ 'id_merchant' => $dec_data->id_resto, 'total_biaya' => $dec_data->total_biaya_belanja, 'struk' => rand(0, 9999), ]; $result = $this->Pelanggan_model->insert_data_transaksi_merchant($data_transaksi, $dataDetail, $total_belanja); if ($result['status'] == true) { $pesanan = $dec_data->pesanan; foreach ($pesanan as $pes) { $item[] = [ 'catatan_item' => $pes->catatan, 'id_item' => $pes->id_item, 'id_merchant' => $dec_data->id_resto, 'id_transaksi' => $result['id_transaksi'], 'jumlah_item' => $pes->qty, 'total_harga' => $pes->total_harga, ]; } $request = $this->Pelanggan_model->insert_data_item($item); if ($request['status']) { $message = array( 'message' => 'success', 'data' => $result['data'], ); $this->response($message, 200); } else { $message = array( 'message' => 'fail', 'data' => [] ); $this->response($message, 200); } } else { $message = array( 'message' => 'fail', 'data' => [] ); $this->response($message, 200); } } function req_trx_post() { //error_reporting(0); $json = file_get_contents('php://input'); $result = json_decode($json); // Set your merchant code (Note: Server key for sandbox and production mode are different) $merchantCode = $this->config->item("code_duitku"); // Set your merchant key (Note: Server key for sandbox and production mode are different) $merchantKey = $this->config->item("key_duitku"); $paymentAmount = $result->{'paymentAmount'}; $iduser = $result->{'merchantUserInfo'}; $result->{'merchantOrderId'} = time() . substr($iduser, 1, 5) . rand(111, 999); $paymentMethod = $result->{'paymentMethod'}; $orderid = $result->{'merchantOrderId'}; $result->{'additionalParam'} = $orderid; $name = $result->{'customerVaName'}; $exp = $result->{'expiryPeriod'}; $merchantOrderId = time(); $signature = md5($merchantCode . $merchantOrderId . $paymentAmount . $merchantKey); $itemsParam = array( 'merchantCode' => $merchantCode, 'merchantKey' => $merchantKey, 'merchantOrderId' => $merchantOrderId, 'signature' => $signature ); $data_duitku = array( 'id_user' => $iduser, 'jumlah' => $paymentAmount, 'method' => $paymentMethod, 'name' => $name, 'expiry_period' => $exp, 'signature' => $signature, 'orderid' => $orderid, 'status' => 0 ); $data = array( 'id_user' => $iduser, 'rekening' => $orderid, 'bank' => "duitku", 'nama_pemilik' => $name, 'type' => 'topup', 'jumlah' => $paymentAmount, 'status' => 0 ); $params = array_merge((array) $result, $itemsParam); $params_string = json_encode($params); $url = 'https://passport.duitku.com/webapi/api/merchant/v2/inquiry'; // Sandbox //$url = 'https://passport.duitku.com/webapi/api/merchant/v2/inquiry'; // Production $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $params_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($params_string) )); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //execute post $request = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($httpCode == 200) { $this->Pelanggan_model->insertDuitku($data_duitku); $result = $this->Pelanggan_model->insertwallet($data); if ($result) { $this->response(json_decode($request, true), 200); } else { $this->response(['statusMessage' => "Server Error !!", "error" => 400], 400); } } else { $response['statusMessage'] = "Server Error . $httpCode "; $response['error'] = $httpCode; $this->response($response, $httpCode); } } function check_trx_post() { $json = file_get_contents('php://input'); $result = json_decode($json); // Set your merchant code (Note: Server key for sandbox and production mode are different) $merchantCode = $this->config->item("code_duitku"); // Set your merchant key (Note: Server key for sandbox and production mode are different) $merchantKey = $this->config->item("key_duitku"); $reference = $result->{'reference'}; $signature = md5($merchantCode . $reference . $merchantKey); $itemsParam = array( 'merchantCode' => $merchantCode, 'signature' => $signature ); $params = array_merge((array) $result, $itemsParam); $params_string = json_encode($params); //if sandbox $url = 'https://passport.duitku.com/webapi/api/merchant/transactionStatus'; //if production //$url = 'https://passport.duitku.com/webapi/api/merchant/transactionStatus'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $params_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($params_string) )); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //execute post $request = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($httpCode == 200) { echo $request; } else echo $httpCode; } function list_payment_post() { $json = file_get_contents('php://input'); date_default_timezone_set('Asia/Jakarta'); $result = json_decode($json); // Set your merchant code (Note: Server key for sandbox and production mode are different) $merchantCode = $this->config->item("code_duitku"); // Set your merchant key (Note: Server key for sandbox and production mode are different) $merchantKey = $this->config->item("key_duitku"); $datetime = date('Y-m-d H:i:s'); $paymentAmount = $result->{'paymentAmount'}; $signature = hash('sha256', $merchantCode . $paymentAmount . $datetime . $merchantKey); $itemsParam = array( 'merchantcode' => $merchantCode, 'amount' => $paymentAmount, 'datetime' => $datetime, 'signature' => $signature ); $params = array_merge((array) $result, $itemsParam); $params_string = json_encode($params); $url = 'https://passport.duitku.com/webapi/api/merchant/paymentmethod/getpaymentmethod'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $params_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($params_string) )); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //execute post $request = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($httpCode == 200) { $this->response(json_decode($request, true), 200); } else { $response['statusMessage'] = "Server Error . $httpCode "; $response['error'] = $httpCode; die(json_encode($response)); } } function order_ppob_post() { $data = file_get_contents("php://input"); $decoded_data = json_decode($data); $apikey = $this->input->request_headers()['x-api-key']; $verif = $this->Pelanggan_model->check_verif_by_apikey($apikey); $condition = array( 'password' => sha1($decoded_data->password), 'no_telepon' => $decoded_data->no_telepon, //'token' => $decoded_data->token ); $check_banned = $this->Pelanggan_model->check_banned($decoded_data->no_telepon); if ($check_banned) { $message = array( 'message' => 'banned', 'data' => [] ); $this->response($message, 200); } else if ($verif == 0) { $message = array( 'code' => '400', 'message' => 'Akun belum di verifikasi!' ); $this->response($message, 200); } else { $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition); $data = $cek_login->row_array(); $type = $decoded_data->type; $message = array(); if ($cek_login->num_rows() > 0 && $decoded_data->no_pelanggan) { $cek_barang = $this->digiflazz->cek_barang($decoded_data->orderid, $type); $pelanggan = $data['id']; $saldo = $data['saldo']; if ($cek_barang->num_rows() > 0) { $data_ppob = $cek_barang->row_array(); if ($type == "prabayar") { $harga = $data_ppob['price'] + $data_ppob['fee']; } else { $harga = $this->digiflazz->cek_tagihan($decoded_data->orderid, $decoded_data->no_pelanggan)['selling_price']; } $limit = $harga * $this->app->get_limit() / 100; if ($saldo - $limit >= $harga) { $ref = time() . rand(00000, 99999); if ($type == "prabayar") { $order = $this->digiflazz->order($decoded_data->orderid, $decoded_data->no_pelanggan, $pelanggan, $decoded_data->detailpesanan, $decoded_data->brand, $ref); } else { $order = $this->digiflazz->order_pasca($decoded_data->orderid, $decoded_data->no_pelanggan, $pelanggan, $decoded_data->price, $decoded_data->detailpesanan, $decoded_data->brand, $ref); } $potongan = $saldo - $harga; $insert = array( 'id_user' => $pelanggan, 'jumlah' => $harga, 'bank' => "ppob", 'nama_pemilik' => $data['fullnama'], 'rekening' => "wallet", 'type' => "Order-", 'ppob_id' => $order['id_ppob'], 'status' => 1 ); $this->digiflazz->potongSaldo($pelanggan, $potongan); $this->digiflazz->insertWallet($insert); $chek = $this->db->get_where("wallet", ['ppob_id' => $order['id_ppob']]); if ($order["id_ppob"] != null && $chek->num_rows() > 0) { if ($type == "prabayar") { $senderdata = array( 'username' => $this->config->item('digiflazz_username'), 'buyer_sku_code' => $decoded_data->orderid, 'customer_no' => $decoded_data->no_pelanggan, 'ref_id' => $ref, 'sign' => md5($this->config->item('digiflazz_username') . $this->config->item('digiflazz_apikey') . $ref), 'msg' => "testing" ); $headers = array( "Content-Type: application/json" ); $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://api.digiflazz.com/v1/transaction", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => json_encode($senderdata), CURLOPT_HTTPHEADER => $headers, )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); $dec_data = json_decode($response, true); $data = $dec_data['data']; if ($data['status'] == "Sukses") { $sn = $data['sn']; $this->db->update("history_digiflazz", ['sn' => $sn, 'status' => 1], ['id' => $order['id_ppob']]); $message = array( 'code' => '200', 'message' => "Transaksi sedang di proses :)" ); } else if ($data['status'] == "Gagal") { $this->db->update("history_digiflazz", ['status' => 2, 'failed_reason' => $data['message']], ['id' => $order['id_ppob']]); $reason[] = $data['message']; $message = array( 'code' => '400', 'message' => "Gagal transaksi, hubungi admin!" ); } else { $this->db->update("history_digiflazz", ['status' => 0, 'failed_reason' => $data['message']], ['id' => $order['id_ppob']]); $reason[] = $data['message']; $message = array( 'code' => '200', 'message' => "Pesanan Sedang diproses!" ); } } else { $id_bayar = $this->digiflazz->id_bayar_tripay($decoded_data->orderid, $decoded_data->no_pelanggan, $ref); $url = 'https://tripay.co.id/api/v2/transaksi/pembayaran'; $header = array( 'Accept: application/json', 'Authorization: Bearer ' . $this->config->item('tripay_apikey'), // Ganti [apikey] dengan API KEY Anda ); $data = array( 'order_id' => $id_bayar, // Masukkan ID yang didapat setelah melakukan pengecekan pembayaran 'api_trxid' => $ref, // Atau Anda bisa menggunakan ID transaksi dari server Anda (pilih salah satu) 'pin' => $this->config->item('tripay_pin'), // Masukkan PIN user (anda) ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); $result = curl_exec($ch); $json = json_decode($result, true); if ($json['success']) { if ($json['data']['status'] != 2) { $this->db->update("history_digiflazz", ['tripay_bayar' => $id_bayar, 'status' => $json['status']], ['id' => $order['id_ppob']]); $message = array( 'code' => '200', 'message' => "Transaksi sedang di proses :)" ); } else { $this->db->update("history_digiflazz", ['status' => 2, 'failed_reason' => "From Tripay : " . $json['message']], ['id' => $order['id_ppob']]); $reason[] = $json['message']; $message = array( 'code' => '400', 'message' => "Transaksi failed, hubungi admin!" ); } } else { $this->db->update("history_digiflazz", ['tripay_bayar', 'status' => 2, 'failed_reason' => "From Tripay : " . $json['message']], ['id' => $order['id_ppob']]); $reason[] = $json['message']; $message = array( 'code' => '400', 'message' => "Transaksi failed, hubungi admin!" ); } } } else { $message = array( 'code' => '400', 'message' => "Transaksi failed, hubungi admin!" ); } $this->response($message, 200); } else { $message = array( 'code' => '400', 'message' => 'Saldo tidak cukup, setiap transaksi minimal memiliki saldo 10% dari saldo awal' ); $this->response($message, 200); } } else { $message = array( 'code' => '404', 'message' => 'Produk tidak ditemukan!' ); $this->response($message, 200); } } else { $message = array( 'code' => '404', 'message' => 'wrong phone or password', 'data' => [] ); $this->response($message, 200); } } } function cek_tagian_post() { $data = file_get_contents("php://input"); $decoded_data = json_decode($data); $condition = array( 'status' => 'gagal', 'no_telepon' => $decoded_data->no_telepon, 'status' => '1' ); $check_banned = $this->Pelanggan_model->check_banned($decoded_data->no_telepon); if ($check_banned) { $message = array( 'status' => 'gagal', 'message' => 'banned', 'data' => [] ); $this->response($message, 200); } else { $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition); $data = $cek_login->row_array(); $saldo = $data['saldo']; $message = array(); if ($cek_login->num_rows() > 0 && $decoded_data->no_pelanggan) { $cek_barang = $this->digiflazz->cek_barang_pascabayar($decoded_data->orderid); $cek_tripay = $this->digiflazz->cek_tripay($decoded_data->orderid); if ($cek_barang->num_rows() > 0 && $cek_tripay) { $cek_tagihan = $this->digiflazz->cek_tagihan($decoded_data->orderid, $decoded_data->no_pelanggan); $cek_tagihan['saldo'] = $saldo; $this->response($cek_tagihan, 200); } else { $message = array( 'status' => 'gagal', 'message' => 'Produk tidak tersedia atau sedang gangguan!', 'data' => [] ); $this->response($message, 200); } } else { $message = array( 'status' => 'gagal', 'message' => 'wrong phone or password', 'data' => [] ); $this->response($message, 200); } } } function list_pascabayar_post() { $data = file_get_contents("php://input"); $decoded_data = json_decode($data); $condition = array( 'no_telepon' => $decoded_data->no_telepon, 'status' => '1' ); $check_banned = $this->Pelanggan_model->check_banned($decoded_data->no_telepon); if ($check_banned) { $message = array( 'message' => 'banned', 'data' => [] ); $this->response($message, 200); } else { $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition); $data = $cek_login->row_array(); $saldo = $data['saldo']; $message = array(); if ($cek_login->num_rows() > 0) { $list_layanan = $this->digiflazz->list_layanan($decoded_data->brand); $message = array( 'code' => '200', 'message' => 'ok', 'data' => $list_layanan ); $this->response($message, 200); } else { $message = array( 'code' => '404', 'message' => 'wrong phone or password', 'data' => [] ); $this->response($message, 200); } } } function history_ppob_post() { $data = file_get_contents("php://input"); $decoded_data = json_decode($data); $condition = array( 'no_telepon' => $decoded_data->no_telepon, 'status' => '1' ); $check_banned = $this->Pelanggan_model->check_banned($decoded_data->no_telepon); $data = file_get_contents("php://input"); $decoded_data = json_decode($data); $condition = array( 'no_telepon' => $decoded_data->no_telepon, 'status' => '1' ); $check_banned = $this->Pelanggan_model->check_banned($decoded_data->no_telepon); if ($check_banned) { $message = array( 'status' => 'gagal', 'message' => 'banned', 'data' => [] ); $this->response($message, 200); } else { $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition); if ($cek_login->num_rows() > 0) { $data = $cek_login->row_array(); $pelanggan = $data['id']; $message = array( 'status' => 'sukses', 'message' => 'OK', 'data' => $this->digiflazz->history($pelanggan) ); $this->response($message, 200); } else { $message = array( 'status' => 'gagal', 'message' => 'wrong phone or password', 'data' => [] ); $this->response($message, 200); } } } function detail_history_post() { $data = file_get_contents("php://input"); $decoded_data = json_decode($data); $condition = array( 'no_telepon' => $decoded_data->no_telepon, 'status' => '1' ); $check_banned = $this->Pelanggan_model->check_banned($decoded_data->no_telepon); $data = file_get_contents("php://input"); $decoded_data = json_decode($data); $condition = array( 'no_telepon' => $decoded_data->no_telepon, 'status' => '1' ); $check_banned = $this->Pelanggan_model->check_banned($decoded_data->no_telepon); if ($check_banned) { $message = array( 'status' => 'gagal', 'message' => 'banned', 'data' => [] ); $this->response($message, 200); } else { $cek_login = $this->Pelanggan_model->get_data_pelanggan($condition); if ($cek_login->num_rows() > 0) { $data = $cek_login->row_array(); $pelanggan = $data['id']; $this->response($this->digiflazz->detailHistory($pelanggan, $decoded_data->id_ppob), 200); } else { $message = array( 'status' => 'gagal', 'message' => 'wrong phone or password', 'data' => [] ); $this->response($message, 200); } } } /////////////////////////////////////////////////////////////////////////////////////////////////////////// }
Editor is loading...