Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- date_default_timezone_set('Asia/Jakarta');
- function grab_image($urlx,$saveto){
- $ch = curl_init ($urlx);
- curl_setopt($ch, CURLOPT_HEADER, 0);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
- $raw=curl_exec($ch);curl_close($ch);
- if(file_exists($saveto)){
- @unlink($saveto);
- }
- $fp = @fopen($saveto,'x');
- @fwrite($fp, $raw);
- @fclose($fp);
- }
- $token = "czozMDoiNjcxNDAyMjAxNDEwMTIwNDIwMTQwMjE0MTAxMjA0Ijs=";
- // $subx = $_POST['token_id'];
- $subx = $token;
- $pass_gen ="|hellobesideyou911.";
- $pass_gens ="|hellobesideyou911.@D013Uy";
- $generate_token = rand(1, 100).date("dmYHis");
- $token_id = substr($generate_token,0,16);
- $token_id_base = $token_id.$pass_gens;
- $token_id_base = md5($token_id_base)."=";
- $tokenID = $_POST['tokenID'];
- $kodedobuy = "12238";
- function download_image1($image_url, $image_file){
- $fp = fopen ($image_file, 'w+'); // open file handle
- $ch = curl_init($image_url);
- // curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // enable if you want
- curl_setopt($ch, CURLOPT_FILE, $fp); // output to file
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
- curl_setopt($ch, CURLOPT_TIMEOUT, 1000); // some large value to allow curl to run for a long time
- curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0');
- // curl_setopt($ch, CURLOPT_VERBOSE, true); // Enable this line to see debug prints
- curl_exec($ch);
- curl_close($ch); // closing curl handle
- fclose($fp); // closing file handle
- }
- function DateToIndomail($date) {
- $BulanIndo = array("Januari", "Februari", "Maret",
- "April", "Mei", "Juni",
- "Juli", "Agustus", "September",
- "Oktober", "November", "Desember");
- $hari=array("","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu","Minggu");
- $exp_tgl = explode("-",$date);
- $tahun = substr($date, 0, 4); // memisahkan format tahun menggunakan substring
- $bulan = substr($date, 5, 2); // memisahkan format bulan menggunakan substring
- $tgl = $exp_tgl[2]; // memisahkan format tanggal menggunakan substring
- $result =$tgl . " " . $BulanIndo[(int)$bulan-1] . " ". $tahun;
- return($result);
- }
- function generate_uuid() {
- return sprintf( '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
- mt_rand( 0, 0xffff ),
- mt_rand( 0, 0xffff ),
- mt_rand( 0, 0xffff ),
- mt_rand( 0, 0x0fff ) | 0x4000,
- mt_rand( 0, 0x3fff ) | 0x8000,
- mt_rand( 0, 0xffff ),
- mt_rand( 0, 0xffff ),
- mt_rand( 0, 0xffff )
- );
- }
- $randomUUID = generate_uuid();
- $data = null;
- header("Content-type: application/json; charset=utf-8");
- $headers = apache_request_headers();
- $grant_type = $_POST['grant_type'];
- $body = file_get_contents('php://input');
- $string =json_encode($body);
- $json_a =json_decode($string,true);
- $data = json_decode($json_a);
- $access_token_send = substr($headers['Authorization'],7);
- $access_token_send = str_replace("{","",$access_token_send);
- $access_token_send = str_replace("}","",$access_token_send);
- $access_time = date('Y-m-d H:i:s');
- $log_created_at = date('Y-m-d H:i:s');
- $check_time = "SELECT * FROM public.log_payment
- WHERE token_id='".$access_token_send."'";
- $hasilTime = pg_query($conn,$check_time);
- $dataTime = pg_fetch_assoc($hasilTime);
- if ($access_time <= $dataTime['log_expired_at']){
- $Result_Expired ="true";
- }else{
- $Result_Expired ="false";
- }
- $CompanyCode = $data->CompanyCode;
- $CustomerNumber = $data->CustomerNumber;
- $RequestID = $data->RequestID;
- $ChannelType = $data->ChannelType;
- $TransactionDate = $data->TransactionDate;
- $AdditionalData = $data->AdditionalData;
- $check_CN = "SELECT a.*,b.account_name FROM public.sales_order a
- INNER JOIN account b on (b.account_id=a.account_id)
- WHERE a.payment_account_number='".$kodedobuy.$CustomerNumber."'
- AND a.sales_order_paid_datetime IS NULL
- AND a.sales_order_deleted_at IS NULL
- AND a.sales_order_status_payment_id='0'";
- $hasilCN = pg_query($conn,$check_CN);
- $dataCN = pg_fetch_assoc($hasilCN);
- $hexa ='{"CompanyCode":"'.$CompanyCode.'","CustomerNumber":"'.$CustomerNumber.'","RequestID":"'.$RequestID.'","ChannelType":"'.$ChannelType.'","TransactionDate":"'.$TransactionDate.'","AdditionalData":"'.$AdditionalData.'"}';
- $hexa= str_replace("\n", '', $hexa);
- $hexa= str_replace(" ", '', $hexa);
- $RequestBody = strtolower(hash('sha256', $hexa));
- $StringToSign = "POST:/api-mobile/pages/va/bills/:".$access_token_send.":".$RequestBody.":".$headers['X-BCA-Timestamp']."";
- $StringToSign = str_replace("\n", '', $StringToSign);
- $StringToSign = str_replace(" ", '', $StringToSign);
- $apiSecret = "c357d776-ce9b-43ba-8153-ed3a42f257bf";
- $signature = hash_hmac('sha256', $StringToSign, $apiSecret);
- $transaksi_date_dobuy = date('d/m/Y H:i:s');
- function validateDateTime($dateStr, $format){
- date_default_timezone_set('UTC');
- $date = DateTime::createFromFormat($format, $dateStr);
- return $date && ($date->format($format) === $dateStr);
- }
- $valid_tanggal= validateDateTime(''.$TransactionDate.'', 'd/m/Y H:i:s');
- if ($valid_tanggal=="" OR empty($string)):
- $rslt ="False";
- else:
- $rslt ="True";
- endif;
- // echo $signature;exit;
- if (!empty($access_token_send) && !empty($headers['X-BCA-Key']) && !empty($headers['X-BCA-Signature']) && !empty($headers['X-BCA-Timestamp'])){
- if ($CompanyCode == $kodedobuy && !empty($dataCN['sales_order_id']) && $Result_Expired=="true" && $signature==$headers['X-BCA-Signature'] && ($RequestID !="" OR !empty($RequestID)) && ($ChannelType !="" OR !empty($ChannelType)) && ($TransactionDate !="" OR !empty($TransactionDate)) && $rslt=="True"):
- $dataku['Indonesian'] ="Sukses";
- $dataku['English'] ="Success";
- $datas = $dataku;
- $result["CompanyCode"] = $CompanyCode;
- $result["CustomerNumber"] = $CustomerNumber;
- $result["InquiryStatus"] = "00";
- $result["InquiryReason"] = $datas;
- $result["RequestID"] = $RequestID;
- $result["CustomerName"] = $dataCN['account_name'];
- $result["CurrencyCode"] = "IDR";
- $result["TotalAmount"] = $dataCN['sales_order_total'].".00";
- $result["SubCompany"] = "00000";
- $result["DetailBills"] = null;
- $result["FreeTexts"] = [];
- $result["AdditionalData"] = "";
- $check_CNS = "SELECT * FROM public.log_inquiry
- WHERE CustomerNumber='".$CustomerNumber."'
- AND RequestID='".$RequestID."'
- AND CustomerName='".$dataCN['account_name']."'
- AND status='0'";
- $hasilCNS = pg_query($conn,$check_CNS);
- $dataCNS = pg_fetch_assoc($hasilCNS);
- $sql_insert_log = "INSERT INTO public.log_inquiry
- (id
- ,token_id
- ,log_created_at
- ,customername
- ,requestid
- ,customernumber
- ,status
- ,total_amount)
- VALUES ('".$randomUUID."',
- '".$access_token_send."',
- '".$log_created_at."',
- '".$dataCN['account_name']."',
- '".$RequestID."',
- '".$CustomerNumber."',
- '0',
- '".$dataCN['sales_order_total']."')";
- $sql_ins_inquiry = pg_query($conn,$sql_insert_log);
- $filename = "log_query_InquiryBCA.log";
- $fh = fopen($filename, "a");
- $content= "\r\n" .date("Y-m-d H:i:s")."\r\n ( ISI QUERY = ".$sql_insert_log." )";
- fwrite($fh, $content);
- fclose($fh);
- elseif ($CompanyCode == $kodedobuy && empty($dataCN['sales_order_id']) && $Result_Expired=="true" && $signature==$headers['X-BCA-Signature']):
- $dataku['Indonesian'] ="Nomor Pelanggan Tidak ditemukan";
- $dataku['English'] ="Customer Number Not Found";
- $datas = $dataku;
- $result["CompanyCode"] = $CompanyCode;
- $result["CustomerNumber"] = $CustomerNumber;
- $result["InquiryStatus"] = "01";
- $result["InquiryReason"] = $datas;
- $result["RequestID"] = $RequestID;
- $result["CustomerName"] = "";
- $result["CurrencyCode"] = "IDR";
- $result["TotalAmount"] = "0.00";
- $result["SubCompany"] = "00000";
- $result["DetailBills"] = null;
- $result["FreeTexts"] = [];
- $result["AdditionalData"] = "";
- elseif (($CompanyCode =="" OR empty($CompanyCode)) && $Result_Expired=="true" && $signature==$headers['X-BCA-Signature']):
- $dataku['Indonesian'] ="CompanyCode Kosong";
- $dataku['English'] ="CompanyCode is Empty";
- $datas = $dataku;
- $result["CompanyCode"] = $CompanyCode;
- $result["CustomerNumber"] = $CustomerNumber;
- $result["InquiryStatus"] = "01";
- $result["InquiryReason"] = $datas;
- $result["RequestID"] = $RequestID;
- $result["CustomerName"] = "";
- $result["CurrencyCode"] = "IDR";
- $result["TotalAmount"] = "0.00";
- $result["SubCompany"] = "00000";
- $result["DetailBills"] = null;
- $result["FreeTexts"] = [];
- $result["AdditionalData"] = "";
- elseif (($RequestID =="" OR empty($RequestID)) && $Result_Expired=="true" && $signature==$headers['X-BCA-Signature']):
- $dataku['Indonesian'] ="RequestID Kosong";
- $dataku['English'] ="RequestID is Empty";
- $datas = $dataku;
- $result["CompanyCode"] = $CompanyCode;
- $result["CustomerNumber"] = $CustomerNumber;
- $result["InquiryStatus"] = "01";
- $result["InquiryReason"] = $datas;
- $result["RequestID"] = $RequestID;
- $result["CustomerName"] = "";
- $result["CurrencyCode"] = "IDR";
- $result["TotalAmount"] = "0.00";
- $result["SubCompany"] = "00000";
- $result["DetailBills"] = null;
- $result["FreeTexts"] = [];
- $result["AdditionalData"] = "";
- elseif (($ChannelType =="" OR empty($ChannelType)) && $Result_Expired=="true" && $signature==$headers['X-BCA-Signature']):
- $dataku['Indonesian'] ="ChannelType Kosong";
- $dataku['English'] ="ChannelType is Empty";
- $datas = $dataku;
- $result["CompanyCode"] = $CompanyCode;
- $result["CustomerNumber"] = $CustomerNumber;
- $result["InquiryStatus"] = "01";
- $result["InquiryReason"] = $datas;
- $result["RequestID"] = $RequestID;
- $result["CustomerName"] = "";
- $result["CurrencyCode"] = "IDR";
- $result["TotalAmount"] = "0.00";
- $result["SubCompany"] = "00000";
- $result["DetailBills"] = null;
- $result["FreeTexts"] = [];
- $result["AdditionalData"] = "";
- elseif (($TransactionDate =="" OR empty($TransactionDate)) && $Result_Expired=="true" && $signature==$headers['X-BCA-Signature']):
- $dataku['Indonesian'] ="TransactionDate Kosong";
- $dataku['English'] ="TransactionDate is Empty";
- $datas = $dataku;
- $result["CompanyCode"] = $CompanyCode;
- $result["CustomerNumber"] = $CustomerNumber;
- $result["InquiryStatus"] = "01";
- $result["InquiryReason"] = $datas;
- $result["RequestID"] = $RequestID;
- $result["CustomerName"] = "";
- $result["CurrencyCode"] = "IDR";
- $result["TotalAmount"] = "0.00";
- $result["SubCompany"] = "00000";
- $result["DetailBills"] = null;
- $result["FreeTexts"] = [];
- $result["AdditionalData"] = "";
- elseif ($rslt=="False" && $Result_Expired=="true" && $signature==$headers['X-BCA-Signature']):
- $dataku['Indonesian'] ="Format TransactionDate Tidak Valid";
- $dataku['English'] ="Invalid date Format for TransactionDate";
- $datas = $dataku;
- $result["CompanyCode"] = $CompanyCode;
- $result["CustomerNumber"] = $CustomerNumber;
- $result["InquiryStatus"] = "01";
- $result["InquiryReason"] = $datas;
- $result["RequestID"] = $RequestID;
- $result["CustomerName"] = "";
- $result["CurrencyCode"] = "IDR";
- $result["TotalAmount"] = "0.00";
- $result["SubCompany"] = "00000";
- $result["DetailBills"] = null;
- $result["FreeTexts"] = [];
- $result["AdditionalData"] = "";
- else:
- $result["ErrorMessage"] = "access_token/CompanyCode/CustomerNumber tidak valid";
- endif;
- }else{
- $result["ErrorMessage"] = "access_token/X-BCA-Key/X-BCA-Timestamp dan X-BCA-Signature kosong";
- }
- echo json_encode($result);
- exit;
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement