<?php
include 'dbFunctions.php';
//include 'generate_refid.php';

//////////======= BELOW INCLUDE IS TO CHECK THE LOGIN Authentication ======= ////////
include 'mob_check_api_login.php';

//RECEIVE DATA ////////
$headers2 = getRequestLoginHeaders();
$devId = $headers2['Developerid'];
$devPass = $headers2['Developerpassword'];
$login = $headers2['X-Method-Override'];
//echo "<br>Header:" .json_decode($headers2,true);
//echo "<br>DevId:" . $devId;
//echo "<br>DeveloperPassword:" . $devPass;
//echo "<br>login:" . $login;

//CHECK THE LOGIN Authentication from database  ////////
$auth_result = checklogin($devId,$devPass, $content);

/////////// ======== LOGIN Authentication = END ======== /////////////////////////////

//$auth_result ="SUCCESS";

if ($auth_result =="FAIL") {
///// LOGIN FAIL

}
else
{
///// LOGIN SUCESS & PROCEED


//Make sure that the content type of the POST request has been set to application/json
$contentType = isset($_SERVER["CONTENT_TYPE"]) ? trim($_SERVER["CONTENT_TYPE"]) : '';

//if(strcasecmp($contentType, 'application/json') != 0){
//   throw new Exception('Content type must be: application/json');
//}

////////////////////////////////////////// 
//Receive the RAW post data.
$content = trim(file_get_contents("php://input"));

//echo "<br>Content:" . $content;
//Attempt to decode the incoming RAW post data from JSON.
$decoded_resp = json_decode($content, true);

$sourceTxnId = $externalReferenceId;



$api_name ='ue_sendmsg.php';

/*
 "name" => "Sarah Ang",
     "merchant_account" => "WMP-PBGL-B979-7KPR-3TZQQ",
     "merchant_pp" => "built freeze illusion hundred suspend follow minute fought strain pity distance gas",
     "ibma_account" => "WMP-8YR9-FS4L-RP7F-FYXUY",
     "bill_date" => "23 Oct 2019",
     "due_date" => "21 Nov 2019",
     "amount" => "$10.00",
     "path_pdf" => "http://bill.pws.sg/Singtel-June_19.pdf"
 */    
     

  
 
$merchant_ibma_ac = $decoded_resp['merchant_ac']; 
$merchant_pp = $decoded_resp['merchant_pp']; 
$rcp_ibma_ac = $decoded_resp['cust_ibma_ac']; 
$rcp_name = $decoded_resp['cust_name']; 
$rcp_ac_no = $decoded_resp['cust_ac_no']; 
$rcp_bill_date = $decoded_resp['cust_bill_date']; 
$rcp_due_date = $decoded_resp['cust_due_date']; 
$rcp_amount = $decoded_resp['cust_amount']; 
$rcp_path_pdf = $decoded_resp['cust_path_pdf']; 

//////////////////// merchant_ibma_ac

if ($merchant_ibma_ac ==="" or is_null($merchant_ibma_ac)) {

              $response_result = array(   
              "errorDetails" =>  array(
              "errorCode" => "3001",
              "errorDescription" => "Merchant Account - cannot be empty."
              ),
              "merchant_ac" => "$merchant_ac"
              
              );
        
         $endcode_error= json_encode($response_result);
               
       
        
        $sql_insert = "INSERT INTO mob_api_received (develop_id, develop_pass, merchant_ibma_ac, rcp_ibma_ac, api_name,data_received, sqlerror,data_response_mob) VALUES ('$devId','$devPass', '$merchant_ibma_ac','$rcp_ibma_ac', '$api_name','$content', '$sqlError2','$endcode_error')";
        //echo "<br>memberid:" . $sql_insert;
         
       
       $insert_data = mysql_query($sql_insert);
     
       echo $endcode_error;
       
       exit();

}


/////////////////////////////

//////////////////// merchant_pp
if ($merchant_pp ==="" or is_null($merchant_pp)) {

              $response_result = array(   
              "errorDetails" =>  array(
              "errorCode" => "3002",
              "errorDescription" => "Merchant Password - cannot be empty."
              ),
              "merchant_ac" => "$merchant_ac"
              
              );
        
         $endcode_error= json_encode($response_result);
               
       
        
        $sql_insert = "INSERT INTO mob_api_received (develop_id, develop_pass, merchant_ibma_ac, rcp_ibma_ac, api_name,data_received, sqlerror,data_response_mob) VALUES ('$devId','$devPass', '$merchant_ibma_ac','$rcp_ibma_ac', '$api_name','$content', '$sqlError2','$endcode_error')";
        //echo "<br>memberid:" . $sql_insert;
         
       
       $insert_data = mysql_query($sql_insert);
     
       echo $endcode_error;
       
       exit();

}

///////////////////


//////////////////// rcp_ibma_ac
if ($rcp_ibma_ac ==="" or is_null($rcp_ibma_ac)) {

              $response_result = array(   
              "errorDetails" =>  array(
              "errorCode" => "3003",
              "errorDescription" => "Customer IBMA Account - cannot be empty."
              ),
              "merchant_ac" => "$merchant_ac"
              
              );
        
         $endcode_error= json_encode($response_result);
               
       
        
        $sql_insert = "INSERT INTO mob_api_received (develop_id, develop_pass, merchant_ibma_ac, rcp_ibma_ac, api_name,data_received, sqlerror,data_response_mob) VALUES ('$devId','$devPass', '$merchant_ibma_ac','$rcp_ibma_ac', '$api_name','$content', '$sqlError2','$endcode_error')";
        //echo "<br>memberid:" . $sql_insert;
         
       
       $insert_data = mysql_query($sql_insert);
     
       echo $endcode_error;
       
       exit();

}

///////////////////////////////////

//////////////////// rcp_name
if ($rcp_name ==="" or is_null($rcp_name)) {

              $response_result = array(   
              "errorDetails" =>  array(
              "errorCode" => "3004",
              "errorDescription" => "Customer Name - cannot be empty."
              ),
              "merchant_ac" => "$merchant_ac"
              
              );
        
         $endcode_error= json_encode($response_result);
               
       
        
        $sql_insert = "INSERT INTO mob_api_received (develop_id, develop_pass, merchant_ibma_ac,rcp_ibma_ac, api_name,data_received, sqlerror,data_response_mob) VALUES ('$devId','$devPass', '$merchant_ibma_ac','$rcp_ibma_ac', '$api_name','$content', '$sqlError2','$endcode_error')";
        //echo "<br>memberid:" . $sql_insert;
         
       
       $insert_data = mysql_query($sql_insert);
     
       echo $endcode_error;
       
       exit();

}





/////////////////////////////////

$strSQL2 = "Select * from ue_merchant_account WHERE merchant_ibma_ac ='$merchant_ibma_ac' and enable = '1'";

//echo "<br>SEL2:" . $strSQL2;

$result_merchant = mysql_query($strSQL2);

if (mysql_num_rows($result_merchant) > 0)
       
       {
       
       $row_merchant = mysql_fetch_array($result_merchant);
       
       $id = $row_merchant['id'];
       $company_name = $row_merchant['company_name'];
       $merchant_ibma_ac = $row_merchant['merchant_ibma_ac'];
       $ac_type = $row_merchant['ac_type'];
       $username = $row_merchant['username'];
       
       
       }
       
       else
       
       {
       
       $response_result = array(   
              "errorDetails" =>  array(
              "errorCode" => "2002",
              "errorDescription" => "Invalid Merchant IBMA account."
              ),
              "merchant_ibma_ac" => "$merchant_ibma_ac"
              
              );
        
         $endcode_error= json_encode($response_result);
               
       
        
        $sql_insert = "INSERT INTO mob_api_received (develop_id, develop_pass, merchant_ibma_ac, rcp_ibma_ac, api_name,data_received, sqlerror,data_response_mob) VALUES ('$devId','$devPass', '$merchant_ibma_ac','$rcp_ibma_ac', '$api_name','$content', '$sqlError2','$endcode_error')";
        //echo "<br>memberid:" . $sql_insert;
         
       
       $insert_data = mysql_query($sql_insert);
     
       echo $endcode_error;
       
       exit();
       
       
       
       }
       

//echo "<br>Account type: " . $ac_type;

///$url = "https://bill.ebma.io/api_dc.php?refid="; - comment 20250915

$url = "https://bill.ebma.ws/api_dc.php?refid=";


switch ($ac_type) {
   
    case "NOTICE":
               
                
       // $messageToEncrypt = 'Date: ' . $rcp_bill_date . '<br>Name: ' . $rcp_name . '<br>Account: ' . $rcp_ac_no . '<br>Due: ' .  $rcp_due_date . '<br>Amt: ' . $rcp_amount . '<br>Link: ' . $url. $rcp_path_pdf . '<br>From :' .$company_name;
        
        // $messageToEncrypt = 'Date:' . $rcp_bill_date . '<br>Name:' . $rcp_name . '<br>Acc:' . $rcp_ac_no . '<br>Due:' .  $rcp_due_date . '<br>Amt:' . $rcp_amount . '<br>Link:' . $url. $rcp_path_pdf . '<br>Frm:' .$company_name;
        
         $messageToEncrypt = 'Date:' . $rcp_bill_date . '<br>Name:' . $rcp_name . '<br>Acc:' . $rcp_ac_no . '<br>Here is your contract:' . '<br>Link:' . $url. $rcp_path_pdf . '<br>Frm:' .$company_name;
        
        break;
        
   case "TELEPHONE":
               
                
       // $messageToEncrypt = 'Date: ' . $rcp_bill_date . '<br>Name: ' . $rcp_name . '<br>Account: ' . $rcp_ac_no . '<br>Due: ' .  $rcp_due_date . '<br>Amt: ' . $rcp_amount . '<br>Link: ' . $url. $rcp_path_pdf . '<br>From :' .$company_name;
        
         $messageToEncrypt = 'Date:' . $rcp_bill_date . '<br>Name:' . $rcp_name . '<br>Acc:' . $rcp_ac_no . '<br>Due:' .  $rcp_due_date . '<br>Amt:' . $rcp_amount . '<br>Link:' . $url. $rcp_path_pdf . '<br>Frm:' .$company_name;
        
        
        break;
        
  
  
   case "ELECTRICITY":
              
       
       //$messageToEncrypt = 'Date: ' . $rcp_bill_date . '<br>Name: ' . $rcp_name . '<br>Account: ' . $rcp_ac_no . '<br>Due: ' .  $rcp_due_date . '<br>Amt: ' . $rcp_amount . '<br>Link: ' . $url. $rcp_path_pdf . '<br>From :' .$company_name;
        $messageToEncrypt = 'Date:' . $rcp_bill_date . '<br>Name:' . $rcp_name . '<br>Acc:' . $rcp_ac_no . '<br>Due:' .  $rcp_due_date . '<br>Amt:' . $rcp_amount . '<br>Link:' . $url. $rcp_path_pdf . '<br>Frm:' .$company_name;
        
        
        break;
         
   case "CREDITCARD":
        
       
        
        //$messageToEncrypt = 'Date: ' . $rcp_bill_date . '<br>Name: ' . $rcp_name . '<br>Account: ' . $rcp_ac_no . '<br>Due: ' .  $rcp_due_date . '<br>Amt: ' . $rcp_amount . '<br>Link: ' . $url. $rcp_path_pdf . '<br>From :' .$company_name;
         $messageToEncrypt = 'Date: ' . $rcp_bill_date . '<br>Name:' . $rcp_name . '<br>Acc:' . $rcp_ac_no . '<br>Due:' .  $rcp_due_date . '<br>Amt:' . $rcp_amount . '<br>Link:' . $url. $rcp_path_pdf . '<br>Frm:' .$company_name;
        
        
        break;
        
  
  
  case "MEDICAL":
        
        //$messageToEncrypt = 'Date: ' . $rcp_bill_date . '<br>Name: ' . $rcp_name . '<br>Account: ' . $rcp_ac_no . '<br>Due: ' .  $rcp_due_date . '<br>Amt: ' . $rcp_amount . '<br>Link: ' . $rcp_path_pdf . '<br>From :' .$company_name;
       
        $messageToEncrypt = 'Date: ' . $rcp_bill_date . '<br>Name: ' . $rcp_name . '<br>Link: ' . $url. $rcp_path_pdf . '<br>From :' .$company_name;
        
               
        break;
   
         
  
}    

////////////////////////////////////////
 
   





///////////////////////////////////////////////


 
//requestType=getAccountId&secretPhrase="
//requestType=getAccount&account="
//http://13.251.39.123:8789/wmp?requestType=getAccount&account=WMP-8YR9-FS4L-RP7F-FYXUY
$data = array(
              'requestType' => 'sendMessage',   
              'chain' => '6',
              'deadline' => '1440',      
              'feeNQT' => '0',
              'recipient' => $rcp_ibma_ac, 
              'messageToEncrypt'=> $messageToEncrypt,  
              //'messageToEncrypt' =>$messageToEncrypt,
              'secretPhrase' => $merchant_pp
               //'secretPhrase' => 'flat aunt trouble excuse easily illuminate ghost upset there consider bird nice'
          );
          
          $postdata = json_encode($data);
          # Create a connection
           
           ///echo "<br>postdata:" . $postdata;
           ///echo "<br>data:" . $data;
           
          
           
          //$url = 'http://18.136.11.63:26876/nxt'; // ardor testnet
          //$url = 'http://52.220.110.100:8286/wic';
          //$url = 'http://18.136.232.117:8384/qtn';
          
          // COMMENT ON 8/3/2021
          
          //$url = 'http://52.77.6.206:26876/nxt'; // coal testnet - comment 20250915
          
          
          // CHANGED OB 8/3/2021
          $url = 'https://testcoal.coalculus.com/nxt'; // coal testnet
          
          
          $ch = curl_init($url);
          # Form data string
          $postString = http_build_query($data, '', '&');
          # Setting our options
          curl_setopt($ch, CURLOPT_POST, 1);
          curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
          # Get the response
          $response = curl_exec($ch);
          $result = json_decode($response,true);
          
          curl_close($ch);
          
          
          //$bc_transactionid = $result['transactionJSON']['transaction'];
          $errDesc = $result['errorDescription'];
          $errCode = $result['errorCode'];
          
          //echo "<br>response:" . $response;
          
          //echo "<br><br>";


////// SAMPLE RESPONSE - SUCCESS          
//response:{"signatureHash":"45de39e7c340993b07df19fc36d35cdb7b4b77b19ccc1d9f6dda6e19bf6a2c53","transactionJSON":{"senderPublicKey":"5e63b38a0e30a264badd259a796cd631ae486414144c7f8f89bc193e5c27a020","signature":"8bf0b3ea714e601b8cfce0f407fc0cbac42342e68cd5cbc13f1716364339730a6d69e295c104c38306a32e0c86b324a6ec73ccff33a8ac33ce661dd97713e29f","feeNQT":"0","type":1,"fullHash":"360d27cf0cfe5a4b558d1f0a5e8a63ece22baba96a9a1b20c0e1c95ebd7efb8f","version":1,"phased":false,"ecBlockId":"7188239972499513376","signatureHash":"45de39e7c340993b07df19fc36d35cdb7b4b77b19ccc1d9f6dda6e19bf6a2c53","attachment":{"encryptedMessage":{"data":"3e4f19a41e9f3327120816d8ce8a4bb7146d8beb362bd2790bdc03ba7a687df058c7f386f47695c8cc9afe01ed783d3f7a4b3e8608d9f561e84289c43ea5a9af47358419d4b1eb7e613578de0ab25d23a7d797a94c1162280b7f069d010930f4e674edb36aec47da115449f0eed212c31869cba5362e2af96a8f369326e4d6c9550d6b939258faaaea6fa22f6d6751cf68c7089fa44742869fd04671e57b2168f2a1ab17a1f00fedc6dfb41118883957","nonce":"bbce808726145c6da27639b564c403f9a0512482abde058de73aa66abcfa8b37","isText":true,"isCompressed":true},"version.ArbitraryMessage":0,"version.EncryptedMessage":1},"senderRS":"WMP-PBGL-B979-7KPR-3TZQQ","subtype":0,"amountNQT":"0","sender":"1971443357229688274","recipientRS":"WMP-8YR9-FS4L-RP7F-FYXUY","recipient":"16099170672707861223","ecBlockHeight":928311,"deadline":1440,"transaction":"5429931631717059894","timestamp":54530400,"height":2147483647},"unsignedTransactionBytes":"011060114003a0055e63b38a0e30a264badd259a796cd631ae486414144c7f8f89bc193e5c27a020e77a23056ebe6bdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000372a0e0020e018892bc2c16301b00000803e4f19a41e9f3327120816d8ce8a4bb7146d8beb362bd2790bdc03ba7a687df058c7f386f47695c8cc9afe01ed783d3f7a4b3e8608d9f561e84289c43ea5a9af47358419d4b1eb7e613578de0ab25d23a7d797a94c1162280b7f069d010930f4e674edb36aec47da115449f0eed212c31869cba5362e2af96a8f369326e4d6c9550d6b939258faaaea6fa22f6d6751cf68c7089fa44742869fd04671e57b2168f2a1ab17a1f00fedc6dfb41118883957bbce808726145c6da27639b564c403f9a0512482abde058de73aa66abcfa8b37","broadcasted":true,"requestProcessingTime":3,"transactionBytes":"011060114003a0055e63b38a0e30a264badd259a796cd631ae486414144c7f8f89bc193e5c27a020e77a23056ebe6bdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008bf0b3ea714e601b8cfce0f407fc0cbac42342e68cd5cbc13f1716364339730a6d69e295c104c38306a32e0c86b324a6ec73ccff33a8ac33ce661dd97713e29f02000000372a0e0020e018892bc2c16301b00000803e4f19a41e9f3327120816d8ce8a4bb7146d8beb362bd2790bdc03ba7a687df058c7f386f47695c8cc9afe01ed783d3f7a4b3e8608d9f561e84289c43ea5a9af47358419d4b1eb7e613578de0ab25d23a7d797a94c1162280b7f069d010930f4e674edb36aec47da115449f0eed212c31869cba5362e2af96a8f369326e4d6c9550d6b939258faaaea6fa22f6d6751cf68c7089fa44742869fd04671e57b2168f2a1ab17a1f00fedc6dfb41118883957bbce808726145c6da27639b564c403f9a0512482abde058de73aa66abcfa8b37","fullHash":"360d27cf0cfe5a4b558d1f0a5e8a63ece22baba96a9a1b20c0e1c95ebd7efb8f","transaction":"5429931631717059894"}
       




         ////response:{"errorDescription":"Max encrypted message length exceeded","errorCode":4,"broadcasted":false,"requestProcessingTime":1,"error":"wmp.WmpException$NotValidException: Max encrypted message length exceeded"}


       ///////////////////////////////////////////////////////
       //response:{"errorDescription":"Incorrect \"recipient\"","errorCode":4}
       ///////////////////////////////////////////////////////
       
      if ($errCode == 4){
   
   //{"errorDescription":"Max encrypted message length exceeded","errorCode":4,"broadcasted":false,"requestProcessingTime":6,"error":"wmp.WmpException$NotValidException: Max encrypted message length exceeded"}
   
        $response_result = array(   
              "errorDetails" =>  array(
              "errorCode" => "5001",
              "errorDescription" => "Max encrypted message length exceeded - BC."
              ),
              
               "merchant_ac" => "$merchant_ac",
               "merchant_pp" => "$merchant_pp",
               "cust_ibma_ac" => "$rcp_ibma_ac",
               "cust_name" => "$rcp_name",
               "cust_ac_no" => "$rcp_ac_no",
               "cust_bill_date" => "$rcp_bill_date",
               "cust_due_date" => "$rcp_due_date",
               "cust_amount" => "$rcp_amount",
               "cust_path_pdf" => "$rcp_path_pdf"
               
              );
        
         $en_response_result= json_encode($response_result);
               
         $sql_insert = "INSERT INTO mob_api_received (develop_id, develop_pass, merchant_ibma_ac, rcp_ibma_ac, type, data_response_mob, api_name,data_received,data_response_server,msg,data_request_server) VALUES ('$devId','$devPass', '$merchant_ibma_ac', '$rcp_ibma_ac', '$ac_type', '$en_response_result','$api_name','$content','$response','$messageToEncrypt','$postdata')";
                  
        // echo "<br>SQL:" . $sql_insert;
       
       $insert_data = mysql_query($sql_insert);
     
       echo $en_response_result;
      
       exit();
       
   }
       
       ///////////////////////////////////////////////////////
       //{"errorDescription":"Unknown account","errorCode":5}
       ///////////////////////////////////////////////////////
       if ($errCode == 5){
   
        $response_result = array(   
              "errorDetails" =>  array(
              "errorCode" => "5002",
              "errorDescription" => "Invalid Merchant IBMA account - Unknown account - BC"
              ),
              
               
               "merchant_ac" => "$merchant_ac",
               "merchant_pp" => "$merchant_pp",
               "cust_ibma_ac" => "$rcp_ibma_ac",
               "cust_name" => "$rcp_name",
               "cust_ac_no" => "$rcp_ac_no",
               "cust_bill_date" => "$rcp_bill_date",
               "cust_due_date" => "$rcp_due_date",
               "cust_amount" => "$rcp_amount",
               "cust_path_pdf" => "$rcp_path_pdf"
              );
        
         $en_response_result= json_encode($response_result);
               
           $sql_insert = "INSERT INTO mob_api_received (develop_id, develop_pass, merchant_ibma_ac, rcp_ibma_ac, type, data_response_mob, api_name,data_received,data_response_server,msg,data_request_server) VALUES ('$devId','$devPass', '$merchant_ibma_ac', '$rcp_ibma_ac', '$ac_type', '$en_response_result','$api_name','$content','$response','$messageToEncrypt','$postdata')";
                  
                  
         
       $insert_data = mysql_query($sql_insert);
     
       echo $en_response_result;
      
       exit();
       
      }
          
      
           
      $response_result = array(   
                                  "errorDetails" =>  array(
                                  "errorCode" => "0",
                                  "errorDescription" => "Success"
                                  ),
                                                      
                                 "merchant_ac" => "$merchant_ac",
                                 "merchant_pp" => "$merchant_pp",
                                 "cust_ibma_ac" => "$rcp_ibma_ac",
                                 "cust_name" => "$rcp_name",
                                 "cust_ac_no" => "$rcp_ac_no",
                                 "cust_bill_date" => "$rcp_bill_date",
                                 "cust_due_date" => "$rcp_due_date",
                                 "cust_amount" => "$rcp_amount",
                                 "cust_path_pdf" => "$rcp_path_pdf"
                                    
                                    );
                  
                   
                                  
                  $en_response_result= json_encode($response_result);
                         
                    $sql_insert = "INSERT INTO mob_api_received (develop_id, develop_pass, merchant_ibma_ac, rcp_ibma_ac, type, data_response_mob, api_name,data_received,data_response_server,msg,data_request_server) VALUES ('$devId','$devPass', '$merchant_ibma_ac', '$rcp_ibma_ac', '$ac_type', '$en_response_result','$api_name','$content','$response','$messageToEncrypt','$postdata')";
                  
                  
                   
                   //echo "<br>sql_insert123:" . $sql_insert;
                   
                   $insert_data = mysql_query($sql_insert);
               
                   echo $en_response_result;     

   

    
}

?>