ajax()) { $data = OrderBinggo::select('order_binggo.*'); $data = $data->orderBy('id','DESC'); return Datatables::of($data)->make(true); } return view('order_binggo.index'); } public function addToCloudflare(Request $request) { $domain = $request->get('domain'); $order_id = $request->get('order_id'); $order = OrderBinggo::findOrFail($order_id); // GET DOMAIN ID $user_id = $request->get('user_id'); $domain_id = Whmcs::GetClientsDomains([ 'clientid' => $user_id, 'domain' => $domain ])['domains']['domain'][0]['id']; // ACCEPT ORDER & ACTIVATE DOMAIN $accept_order = Whmcs::AcceptOrder([ 'orderid' => $order->whmcs_order_id, 'registrar' => 'liquid', 'sendregistrar' => true, 'autosetup' => true, 'sendmail' => true ]); // dd($accept_order); // GET INVOICE ID $invoice_id = Whmcs::GetOrders([ 'id' => $order->whmcs_order_id ])['orders']['order'][0]['invoiceid']; // PAY INVOICE $update_invoice = Whmcs::UpdateInvoice([ 'invoiceid' => $invoice_id, 'status' => 'Paid', 'datepaid' => date('Y-m-d') ]); $update_client_domain = Whmcs::UpdateClientDomain([ 'domainid' => $domain_id, 'registrar' => 'liquid', ]); $update_name_server = Whmcs::DomainUpdateNameservers([ 'domainid' => $domain_id, 'ns1' => 'anna.ns.cloudflare.com', 'ns2' => 'henry.ns.cloudflare.com' ]); // Register Domain to Registar $register_domain = Whmcs::DomainRegister([ 'domainid' => $domain_id ]); // ADD DOMAIN TO CLOUDFLARE $data_1 = [ 'account' => [ 'id' => '95b4aefc1b159eb30a1e11f6c481b0e7' ], 'name' => $domain, 'jump_start' => true ]; $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://api.cloudflare.com/client/v4/zones", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => json_encode($data_1), CURLOPT_HTTPHEADER => array( "X-Auth-Key: 0b0e252aca941390463df4b4c758ab4b08074", "X-Auth-Email: mybintoroapps@gmail.com", "Content-Type: application/json" ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); // GET DOMAIN ZONE ID $zone_id = json_decode($response, true)['result']['id']; // dump($zone_id); // UPDATE ZONE ID TO ORDER BINGGO DATA if(empty($order->zone_id)){ $order->zone_id = $zone_id; } $order->save(); //queue_activated_domain $activate = $this->activate($order_id); // $makeDatabase = $this->makeDatabase($order); return 'true'; } public function makeDatabase($data){ $curl = curl_init(); $data = [ "order_id" =>$data['id'], "domain" =>$data['domain'], "user_id" =>$data['whmcs_client_id'], "name" =>$data['name'], "template" =>$data['template'], "email" =>$data['email'], "dashboard" =>$data['dashboard'] ]; // dd($data); curl_setopt_array($curl, array( CURLOPT_URL => "https://cserv1.binggo.co.id/api/add-binggo", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => $data )); // CURLOPT_URL => "https://cserv1.binggo.co.id/api/add-binggo", $response = curl_exec($curl); $err = curl_error($curl); // curl_close($curl); // dump($response); return "Berhasil"; // dump($err); // dd($response); } public function activate($order_id) { $order = OrderBinggo::findOrFail($order_id); // $curl = curl_init(); // curl_setopt_array($curl, array( // CURLOPT_URL => "https://api.cloudflare.com/client/v4/zones/".$order->zone_id."/dns_records?type=A&name=".$order->domain."&content=51.79.152.251&match=all", // CURLOPT_RETURNTRANSFER => true, // CURLOPT_ENCODING => "", // CURLOPT_MAXREDIRS => 10, // CURLOPT_TIMEOUT => 0, // CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, // CURLOPT_CUSTOMREQUEST => "GET", // CURLOPT_HTTPHEADER => array( // "X-Auth-Key: 0b0e252aca941390463df4b4c758ab4b08074", // "X-Auth-Email: mybintoroapps@gmail.com", // "Content-Type: application/json" // ), // )); // $response = curl_exec($curl); // $err = curl_error($curl); // dump($order->zone_id); // dump($order->domain); // dump(json_decode($response, true)['result']); //change dns settings $curl_dns = curl_init(); $data_dns = [ "type"=>"A", "name"=>$order->domain, "content"=>"51.79.152.251", "ttl"=>1, "proxied"=>true ]; curl_setopt_array($curl_dns, array( CURLOPT_URL => "https://api.cloudflare.com/client/v4/zones/". $order->zone_id ."/dns_records/", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => json_encode($data_dns), CURLOPT_HTTPHEADER => array( "X-Auth-Key: 0b0e252aca941390463df4b4c758ab4b08074", "X-Auth-Email: mybintoroapps@gmail.com", "Content-Type: application/json" ), )); $response_dns = curl_exec($curl_dns); $err_dns = curl_error($curl_dns); curl_close($curl_dns); //change ssl settings $curl_ssl = curl_init(); $data_ssl = [ "value"=>"full", ]; curl_setopt_array($curl_ssl, array( CURLOPT_URL => "https://api.cloudflare.com/client/v4/zones/". $order->zone_id ."/settings/ssl", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "PATCH", CURLOPT_POSTFIELDS => json_encode($data_ssl), CURLOPT_HTTPHEADER => array( "X-Auth-Key: 0b0e252aca941390463df4b4c758ab4b08074", "X-Auth-Email: mybintoroapps@gmail.com", "Content-Type: application/json" ), )); $response_ssl = curl_exec($curl_ssl); $err_ssl = curl_error($curl_ssl); curl_close($curl_ssl); // $order->status = 'active'; // $order->active_at = date('Y-m-d H:i:s'); // $order->save(); return 'true'; } public static function checkZoneStatus($zone_id) { $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://api.cloudflare.com/client/v4/zones/" . $zone_id, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => array( "X-Auth-Key: 0b0e252aca941390463df4b4c758ab4b08074", "X-Auth-Email: mybintoroapps@gmail.com", "Content-Type: application/json" ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); $status = json_decode($response, true)['result']['status']; return $status; } public function addOrderApi(Request $request) { $template_id = $request->get('template_id'); $template_name = strtolower(str_replace(' ', '_', Template::findOrFail($template_id)->name)); $template_dashboard_type = Template::where('name', $template_name)->first()->dashboard; $order_binggo = new OrderBinggo(); $order_binggo->name = $request->get('name'); $order_binggo->email = $request->get('email'); $order_binggo->template = $template_name; $order_binggo->dashboard = $template_dashboard_type; $order_binggo->service = $request->get('service'); $order_binggo->domain = $request->get('domain'); $order_binggo->status = 'inactive'; $order_binggo->whmcs_order_id = $request->get('whmcs_order_id'); $order_binggo->whmcs_client_id = $request->get('whmcs_client_id'); $order_binggo->created_at = date('Y-m-d H:i:s'); $order_binggo->save(); return 'success'; } public function addOrder(Request $request) { $template_id = $request->get('template_id'); $template_name = strtolower(str_replace(' ', '_', Template::findOrFail($template_id)->name)); $template_dashboard_type = Template::findOrFail($template_id)->dashboard; $order_binggo = new OrderBinggo(); $order_binggo->name = $request->get('name'); $order_binggo->email = $request->get('email'); $order_binggo->template = $template_name; $order_binggo->dashboard = $template_dashboard_type; $order_binggo->service = $request->get('service'); $order_binggo->domain = $request->get('domain'); $order_binggo->status = 'inactive'; $order_binggo->whmcs_order_id = $request->get('whmcs_order_id'); $order_binggo->whmcs_client_id = $request->get('whmcs_client_id'); $order_binggo->created_at = date('Y-m-d H:i:s'); $order_binggo->save(); $request->session()->flash('status-order', 'order finish'); return 'success'; } public function formBuktiPembayaran() { $company = Company::first(); return view('template.upload-bukti-pembayaran', compact('company')); } public function uploadBuktiPembayaran(Request $request) { $invoice_id = $request->get('invoice_id'); $email = $request->get('email'); // CHEC IF ORDER ALREADY PAID $is_paid = Whmcs::GetInvoice([ 'invoiceid' => $invoice_id ])['status']; if($is_paid != 'Unpaid') { return 'failed'; } else { if ($request->hasFile('image')) { $image = $request->file('image'); $ext = $image->getClientOriginalExtension(); if ($request->file('image')->isValid()) { // CHECK IF FILE EXIST $image_name = date('YmdHis') . '.' . $ext; $upload_path = 'binggo_inv'; $request->file('image')->move($upload_path, $image_name); $order_binggo = OrderBinggo::where([['email', $email],['status', 'inactive']])->orderBy('id', 'DESC')->first(); $order_binggo->bukti_pembayaran = $image_name; $order_binggo->save(); Mail::send('template.payment-confirm-mail', ['order_id' => $order_binggo->whmcs_order_id], function ($msg) use ($order_binggo) { $msg->subject('Payment Confirmation #' . $order_binggo->whmcs_order_id)->from('no-reply@binggo.co.id', 'Binggo')->to('marketing@binggo.co.id'); }); return 'success'; } } else { return 'failed'; } } } public function delete(Request $request) { $id = $request->get('order_id'); OrderBinggo::destroy($id); return 'true'; } }