File: /var/www/html/kipu-v7/index-us.php
<?php
header("Content-Type: text/xml\r\n");
ob_start();
function respond($tf) {
print '<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<notifications xmlns="http://soap.sforce.com/2005/09/outbound">
<Ack>' . $tf . '</Ack>
</notifications>
</soapenv:Body>
</soapenv:Envelope>';
}
//Get raw post data
$data = fopen('php://input', 'rb');
$content = fread($data,5000);
ob_end_clean();
respond('true');
$rcXML = simplexml_load_string($content);
$opportunityId = trim($rcXML->children('http://schemas.xmlsoap.org/soap/envelope/')->Body->children('http://soap.sforce.com/2005/09/outbound')->notifications->Notification->sObject->children('urn:sobject.enterprise.soap.sforce.com')->Id.PHP_EOL);
//$opportunityId = '0061U00000OIO5bQAH';
//$opportunityId = '0067i00000NEV71AAH';
my_log($opportunityId);
$BASE_URL = 'https://kipuapi.kipuworks.com';
$ACCESS_ID = '4bKm8x-ACsrhS7dydgz1kPcPKFu_EJ_yznJF7sdB2nM';
$KIPU_RECIPIENT_ID = 'JyrdYNdKv5nLgJPoACwY6GHbyyxZ25YT6r-ndIY-IjM';
$SECRET_KEY = 'hupTtcrI1EyRjQh95Ve+8XB9OqkuwbfAjbDfvwsdy0YcHEz8yLvZXx9by36OFgibggSftlBr+cpfHpEgTrLyNw==';
$APP_IDENTIFIER = 'Bridge Connector';
$EXT_SYSTEM_NAME = 'Salesforce';
$ACCEPT_HEADER = 'Accept';
$CONTENT_TYPE_HEADER = 'Content-type';
$CONTENT_MD5_HEADER = 'Content-MD5';
$DATE_HEADER = 'Date';
if(isset($opportunityId) && !empty($opportunityId)){
$accessData = getAccessData($opportunityId);
$instance_url = (isset($accessData[ 'instance_url' ]))?$accessData[ 'instance_url' ]:'';
$access_token = (isset($accessData[ 'access_token' ]))?$accessData[ 'access_token' ]:'';
if(!empty($instance_url) && !empty($access_token) && !empty($opportunityId)){
//Opportunity Data
$oppActualData = (array)opportunityData($instance_url, $access_token, $opportunityId);
$oppData = array();
if(count($oppActualData) > 0)
{
foreach($oppActualData as $key=>$value)
{
if (!is_object($value))
{
if($value)
{
$value = str_replace(array("<br />", "<br/>", "\r", "\n"), ' ', $value);
}
}
$oppData[$key] = $value;
}
}
$AccountId = (isset($oppData['AccountId'])) ? $oppData['AccountId']:'';
$stageName = (isset($oppData['StageName']))?$oppData['StageName']:'';
$Subscriber_Gender__c = (isset($oppData['Subscriber_Gender__c']))?$oppData['Subscriber_Gender__c']:'';
$Client_First_Name__c = (isset($oppData['Client_First_Name__c']))?$oppData['Client_First_Name__c']:'';
$Client_Middle_Name__c = (isset($oppData['Client_Middle_Name__c']))?$oppData['Client_Middle_Name__c']:'';
$Client_Last_Name__c = (isset($oppData['Client_Last_Name__c']))?$oppData['Client_Last_Name__c']:'';
$Preferred_Name__c = (isset($oppData['Preferred_Name__c']))?$oppData['Preferred_Name__c']:'';
$Client_DOB__c = (isset($oppData['Client_DOB__c']))?$oppData['Client_DOB__c']:'';
$Marital_Status__c = (isset($oppData['Marital_Status__c']))?$oppData['Marital_Status__c']:'';
$MR__c = (isset($oppData['MR__c']))?$oppData['MR__c']:'';
$Client_Phone__c = (isset($oppData['Client_Phone__c']))?$oppData['Client_Phone__c']:'';
$Client_Alternate_Phone__c = (isset($oppData['Client_Alternate_Phone__c']))?$oppData['Client_Alternate_Phone__c']:'';
$Ethnicity__c = (isset($oppData['Ethnicity__c']))?$oppData['Ethnicity__c']:'';
$Pre_Admission_Status__c = (isset($oppData['Pre_Admission_Status__c']))?$oppData['Pre_Admission_Status__c']:'';
$Admission_Date__c = (isset($oppData['Admission_Date__c']))?$oppData['Admission_Date__c']:'';
$Discharge_Date__c = (isset($oppData['Discharge_Date__c']))?$oppData['Discharge_Date__c']:'';
$Anticipated_Discharge_Date__c = (isset($oppData['Anticipated_Discharge_Date__c']))?$oppData['Anticipated_Discharge_Date__c']:'';
$Sobriety_Date__c = (isset($oppData['Sobriety_Date__c']))?$oppData['Sobriety_Date__c']:'';
$SSN__c = (isset($oppData['SSN__c']))?$oppData['SSN__c']:'';
$Address_1__c = (isset($oppData['Address_1__c']))?$oppData['Address_1__c']:'';
$Address_2__c = (isset($oppData['Address_2__c']))?$oppData['Address_2__c']:'';
$City__c = (isset($oppData['City__c']))?$oppData['City__c']:'';
$Zip__c = (isset($oppData['Zip__c']))?$oppData['Zip__c']:'';
$state_kipu__c = (isset($oppData['state_kipu__c']))?$oppData['state_kipu__c']:'';
$Country__c = (isset($oppData['Country__c']))?$oppData['Country__c']:'';
$Gender__c = (isset($oppData['Gender__c']))?$oppData['Gender__c']:'';
$Client_Email__c = (isset($oppData['Client_Email__c']))?$oppData['Client_Email__c']:'';
$First_Contact_Date__c = (isset($oppData['First_Contact_Date__c']))?$oppData['First_Contact_Date__c']:'';
$First_Contact_Rep_On_Call__c = (isset($oppData['First_Contact_Rep_On_Call__c']))?$oppData['First_Contact_Rep_On_Call__c']:'';
$First_Contact_Name__c = (isset($oppData['First_Contact_Name__c']))?$oppData['First_Contact_Name__c']:'';
$First_Contact_Information__c = (isset($oppData['First_Contact_Information__c']))?$oppData['First_Contact_Information__c']:'';
$First_Contact_Relationship__c = (isset($oppData['First_Contact_Relationship__c']))?$oppData['First_Contact_Relationship__c']:'';
$Referral_Source__c = (isset($oppData['Referral_Source__c']))?$oppData['Referral_Source__c']:'';
$Referral_Source_Name__c = (isset($oppData['Referral_Source_Name__c']))?$oppData['Referral_Source_Name__c']:'';
$Discharge_To_Name__c = (isset($oppData['Discharge_To_Name__c']))?$oppData['Discharge_To_Name__c']:'';
$KIPU_Bed__c = (isset($oppData['KIPU_Bed__c']))?$oppData['KIPU_Bed__c']:'';
$Payment_Method__c = (isset($oppData['Payment_Method__c']))?$oppData['Payment_Method__c']:'';
$Insurance_Provider__c = (isset($oppData['Insurance_Provider__c']))?$oppData['Insurance_Provider__c']:'';
$Insurance_Phone__c = (isset($oppData['Insurance_Phone__c']))?$oppData['Insurance_Phone__c']:'';
$Subscriber_First_Name__c = (isset($oppData['Subscriber_First_Name__c']))?$oppData['Subscriber_First_Name__c']:'';
$Subscriber_Middle_Name__c = (isset($oppData['Subscriber_Middle_Name__c']))?$oppData['Subscriber_Middle_Name__c']:'';
$Subscriber_Last_Name__c = (isset($oppData['Subscriber_Last_Name__c']))?$oppData['Subscriber_Last_Name__c']:'';
$Subscriber_SSN__c = (isset($oppData['Subscriber_SSN__c']))?$oppData['Subscriber_SSN__c']:'';
$Subscriber_DOB__c = (isset($oppData['Subscriber_DOB__c']))?$oppData['Subscriber_DOB__c']:'';
$Insurance_Primary_Notes__c = (isset($oppData['Insurance_Primary_Notes__c']))?$oppData['Insurance_Primary_Notes__c']:'';
$Group__c = (isset($oppData['Group__c']))?$oppData['Group__c']:'';
$Subscriber_Address_1__c = (isset($oppData['Subscriber_Address_1__c']))?$oppData['Subscriber_Address_1__c']:'';
$Subscriber_Address_2__c = (isset($oppData['Subscriber_Address_2__c']))?$oppData['Subscriber_Address_2__c']:'';
$Subscriber_City__c = (isset($oppData['Subscriber_City__c']))?$oppData['Subscriber_City__c']:'';
$Subscriber_Zip__c = (isset($oppData['Subscriber_Zip__c']))?$oppData['Subscriber_Zip__c']:'';
$Subscriber_State__c = (isset($oppData['Subscriber_State__c']))?$oppData['Subscriber_State__c']:'';
$Policy_Number__c = (isset($oppData['Policy_Number__c']))?$oppData['Policy_Number__c']:'';
$Subscriber_Relationship_to_Client__c = (isset($oppData['Subscriber_Relationship_to_Client__c']))?$oppData['Subscriber_Relationship_to_Client__c']:'';
$Insurance_Plan_Type__c = (isset($oppData['Insurance_Plan_Type__c']))?$oppData['Insurance_Plan_Type__c']:'';
$Subscriber_Employer__c = (isset($oppData['Subscriber_Employer__c']))?$oppData['Subscriber_Employer__c']:'';
$Subscriber_Employer__c = (isset($oppData['Subscriber_Employer__c']))?$oppData['Subscriber_Employer__c']:'';
$fileDataArray = array();
$preAssessData = (array)preAssessmentData($instance_url, $access_token, $opportunityId);
$vobFileLimit = 12;
if(count($preAssessData)>0){
$preAssessDataId = (isset($preAssessData['Id']))?$preAssessData['Id']:'';
$preAssessAttachData = (array)getContentDocumentLink($instance_url, $access_token, $preAssessDataId,1);
$contentDocumentId = (isset($preAssessAttachData['ContentDocumentId']))?$preAssessAttachData['ContentDocumentId']:'';
if(!empty($contentDocumentId)){
$contentDocumentData = (array)getContentDocument($instance_url, $access_token, $contentDocumentId);
$latestPublishedVersionId = (isset($contentDocumentData['LatestPublishedVersionId']))?$contentDocumentData['LatestPublishedVersionId']:'';
$latestPublishedVersionData=(array)getContentVersion($instance_url, $access_token,$latestPublishedVersionId);
$attachId = (isset($latestPublishedVersionData['Id']))?$latestPublishedVersionData['Id']:'';
$attachName = (isset($latestPublishedVersionData['Title']))?$latestPublishedVersionData['Title']:'';
$fileExtension = (isset($latestPublishedVersionData['FileExtension']))?$latestPublishedVersionData['FileExtension']:'';
if(strtolower($fileExtension)=='pdf'){
$attachBodyData = getContentVersionData($instance_url, $access_token, $attachId);
$fileDataArray[$attachName.'.'.$fileExtension]=$attachBodyData;
}
}
}
$oppAttachmentData = (array)getContentDocumentLink($instance_url, $access_token, $opportunityId,$vobFileLimit);
$counter=1;
foreach ($oppAttachmentData as $key => $singleValue) {
$singleValue = (array)$singleValue;
$counter++;
$contentDocumentId = (isset($singleValue['ContentDocumentId']))?$singleValue['ContentDocumentId']:'';
$contentDocumentData = (array)getContentDocument($instance_url, $access_token, $contentDocumentId);
$latestPublishedVersionId = (isset($contentDocumentData['LatestPublishedVersionId']))?$contentDocumentData['LatestPublishedVersionId']:'';
$latestPublishedVersionData=(array)getContentVersion($instance_url, $access_token,$latestPublishedVersionId);
$attachId = (isset($latestPublishedVersionData['Id']))?$latestPublishedVersionData['Id']:'';
$attachName = (isset($latestPublishedVersionData['Title']))?$latestPublishedVersionData['Title']:'';
$fileExtension = (isset($latestPublishedVersionData['FileExtension']))?$latestPublishedVersionData['FileExtension']:'';
if(strtolower($fileExtension)=='pdf'){
$attachBodyData = getContentVersionData($instance_url, $access_token, $attachId);
$fileDataArray[$attachName.$counter.'.'.$fileExtension]=$attachBodyData;
}
}
$attachmentParts = '';
if(count($fileDataArray)>0){
$attachmentParts = ',"attachments_attributes":[';
for($i=1;$i<=count($fileDataArray);$i++){
if($i>1){
$attachmentParts .=',';
}
$attachmentParts .='{
"attachment_patient_process_id":"61"
}';
}
$attachmentParts .=']';
}
$requestbody='{
"document": {
"recipient_id": "'.$KIPU_RECIPIENT_ID.'",
"sending_app_name": "'.$APP_IDENTIFIER.'",
"data": {
"sending_app_patient_id": "'.$AccountId.'",
"first_name": "'.$Client_First_Name__c.'",
"middle_name": "'.$Client_Middle_Name__c.'",
"last_name": "'.$Client_Last_Name__c.'",
"preferred_name": "'.$Preferred_Name__c.'",
"dob": "'.$Client_DOB__c.'",
"marital_status": "'.$Marital_Status__c.'",
"mr": "'.$MR__c.'",
"phone": "'.$Client_Phone__c.'",
"alternate_phone": "'.$Client_Alternate_Phone__c.'",
"ethnicity": "'.$Ethnicity__c.'",
"pre_admission_status": "'.$Pre_Admission_Status__c.'",
"admission_date": "'.$Admission_Date__c.'",
"anticipated_discharge_date": "'.$Anticipated_Discharge_Date__c.'",
"sobriety_date": "'.$Sobriety_Date__c.'",
"ssn": "'.$SSN__c.'",
"address_street": "'.$Address_1__c.'",
"address_street2": "'.$Address_2__c.'",
"address_city": "'.$City__c.'",
"address_zip": "'.$Zip__c.'",
"address_state": "'.$state_kipu__c.'",
"address_country": "'.$Country__c.'",
"gender": "'.strtolower($Gender__c).'",
"email": "'.$Client_Email__c.'",
"first_contact_date": "'.$First_Contact_Date__c.'",
"first_contact_rep_on_call": "'.$First_Contact_Rep_On_Call__c.'",
"first_contact_name": "'.$First_Contact_Name__c.'",
"first_contact_information": "'.$First_Contact_Information__c.'",
"first_contact_relationship": "'.$First_Contact_Relationship__c.'",
"referrer_id": "'.$Referral_Source__c.'",
"payment_method": "'.$Payment_Method__c.'",
"referrer_name": "'.$Referral_Source_Name__c.'",
"discharge_to_name": "'.$Discharge_To_Name__c.'",
"bed_name": "'.$KIPU_Bed__c.'",
"ext_id_mappings_attributes": [
{
"ext_system_name": "Salesforce",
"ext_id": "'.$opportunityId.'"
}
],
"insurances_attributes": [
{
"insurance_company": "'.$Insurance_Provider__c.'",
"insurance_phone": "'.$Insurance_Phone__c.'",
"subscriber_first_name": "'.$Subscriber_First_Name__c.'",
"subscriber_middle_name": "'.$Subscriber_Middle_Name__c.'",
"subscriber_last_name": "'.$Subscriber_Last_Name__c.'",
"subscriber_SSN": "'.$Subscriber_SSN__c.'",
"subscriber_DOB": "'.$Subscriber_DOB__c.'",
"subscriber_address_street": "'.$Subscriber_Address_1__c.'",
"subscriber_address_street2": "'.$Subscriber_Address_2__c.'",
"subscriber_address_city": "'.$Subscriber_City__c.'",
"subscriber_address_zip": "'.$Subscriber_Zip__c.'",
"subscriber_address_state": "'.$Subscriber_State__c.'",
"subscriber_address_country": "",
"notes": "'.$Insurance_Primary_Notes__c.'",
"policy_no": "'.$Policy_Number__c.'",
"group_ID": "'.$Group__c.'",
"subscriber_relationship": "'.$Subscriber_Relationship_to_Client__c.'",
"insurance_plan_type": "'.$Insurance_Plan_Type__c.'",
"subscriber_employer":"'.$Subscriber_Employer__c.'",
"subscriber_gender":"'.$Subscriber_Gender__c.'"
}
]
}'.$attachmentParts.'
}
}';
my_log($requestbody);
$requestbody= json_decode($requestbody,true);
$finalBody = buildMultipartFormData($requestbody,$fileDataArray);
if(!empty($stageName)){
$ACCEPT_HEADER = 'Accept';
$CONTENT_TYPE_HEADER = 'Content-type';
$CONTENT_MD5_HEADER = 'Content-MD5';
$DATE_HEADER = 'Date';
$accept_header_value = 'application/vnd.kipusystems+json; version=1';
$content_type = 'multipart/form-data; boundary=MultipartBoundary';
$currDate = gmdate('D, d M Y H:i:s T',time());
$request_uri = '/api/patients';
$content_md5 = base64_encode(hex2bin(MD5($finalBody)));
$canonical_string = $content_type.','.$content_md5.','.$request_uri.','.$currDate;
$encoded_signature = base64_encode(hash_hmac('sha1',$canonical_string,$SECRET_KEY, true));
$authorization_header = 'APIAuth '. $ACCESS_ID . ':' . $encoded_signature;
$endpoint = $BASE_URL.$request_uri;
$headers = [
$ACCEPT_HEADER.': '.$accept_header_value,
'Authorization: '.$authorization_header,
$CONTENT_TYPE_HEADER.': '.$content_type,
$CONTENT_MD5_HEADER.': '.$content_md5,
$DATE_HEADER.': '.$currDate
];
//exit;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$endpoint);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$finalBody); //Post Fields
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$server_output = curl_exec ($ch);
//echo "server_output = ".$server_output;
my_log(print_r($server_output, true));
$server_output_arr = json_decode($server_output,true);
if(count($server_output_arr) > 0)
{
$server_output_status = isset($server_output_arr['status']) ? $server_output_arr['status'] : '';
$status_code = isset($server_output_arr['status_code']) ? $server_output_arr['status_code'] : 'FAILED';
if(strtoupper($server_output_status) != strtoupper('Delivered'))
{
$Requestbody = json_encode(json_encode($requestbody));
$APIErrorMessage = json_encode($server_output);
sendErrorLogsToCRM($endpoint, $Requestbody, $opportunityId, $APIErrorMessage, $status_code);
}
}
}
}
}
function pre($data){
echo "<pre>";
print_r($data);
echo "</pre>";
}
function getAccessData($opportunityId = ''){
$isProduction=0;
if($isProduction==1){
$url_demo = "https://login.salesforce.com/services/oauth2/token";
$client_id = '3MVG9KsVczVNcM8xnq8coQuucXlxi45TbaWu4sUIKAS_biifcSH2fdtVMSZGm7Cw.yo1ZT8DMOi_N7RyrFnnQ';
$client_secret = 'E748E6718E553C693BCE05DBB40AF081FF9A2320D977C0B1A1090A018C722235';
$username = 'apnsf@journeysthroughsearch.com';
$password = 'h^85B0gcf3TRss2us2';
$security_token = 'dDrbAGhZWk55oDByoOuLnGC2';
}
else{
$url_demo = "https://test.salesforce.com/services/oauth2/token";
$client_id = '3MVG9PE4xB9wtoY_i29RD53K7wSEBnIlLjrwxkQcRyAlRUO6Ft8hyRNYdBjwDWMIs.oJGTIOrPPFfkWDQ0P9X';
$client_secret = 'ABBDF63BE57945CBFB188535D109509A53C2CBA3AC684583712B5218A8AF5663';
$username = 'bridgeconnector@apnlodge.com.partial';
$password = 'JslHkln9&900-JnL:;';
$security_token = 'dDrbAGhZWk55oDByoOuLnGC2';
}
$finalPassword = $password.$security_token;
$postData = array('grant_type' => 'password','client_id' => $client_id,'client_secret' => $client_secret,'username' => $username,'password' => $finalPassword);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $url_demo,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $postData,
CURLOPT_HTTPHEADER => array(
'Cookie: CookieConsentPolicy=0:0; LSKey-c$CookieConsentPolicy=0:0; BrowserId=f1VAC4ELEe2lbLP40wibfA'
),
));
$response = curl_exec($curl);
$responseArr = json_decode($response,true);
if(count($responseArr) > 0)
{
$error = isset($responseArr['error']) ? $responseArr['error'] : ''; //invalid_grant
$access_token = isset($responseArr['access_token']) ? $responseArr['access_token'] : ''; //invalid_grant
if(!$access_token)
{
$Requestbody = json_encode(json_encode($postData));
$APIErrorMessage = json_encode($response);
sendErrorLogsToCRM($url_demo, $Requestbody, $opportunityId, $APIErrorMessage, 'FAILED');
exit;
}
}
return $responseArr;
}
function opportunityData($instance_url, $access_token, $oppId) {
$query = "SELECT Id,stageName,Client_First_Name__c,Client_Middle_Name__c,Client_Last_Name__c,Preferred_Name__c,Client_DOB__c,Marital_Status__c,MR__c,Client_Phone__c,Client_Alternate_Phone__c,Ethnicity__c,Pre_Admission_Status__c,Admission_Date__c,Discharge_Date__c,Anticipated_Discharge_Date__c,Sobriety_Date__c,SSN__c,Address_1__c,Address_2__c,City__c,Zip__c,state_kipu__c,Country__c,Gender__c,Client_Email__c,First_Contact_Date__c,First_Contact_Rep_On_Call__c,First_Contact_Name__c,First_Contact_Information__c,First_Contact_Relationship__c,Referral_Source__c,Referral_Source_Name__c,Discharge_To_Name__c,KIPU_Bed__c,Payment_Method__c,Insurance_Provider__c,Insurance_Phone__c,Subscriber_First_Name__c,Subscriber_Middle_Name__c,Subscriber_Last_Name__c,Subscriber_SSN__c,Subscriber_DOB__c,Insurance_Primary_Notes__c,Group__c,Subscriber_Address_1__c,Subscriber_Address_2__c,Subscriber_City__c,Subscriber_Zip__c,Subscriber_State__c,Policy_Number__c,Subscriber_Relationship_to_Client__c,Insurance_Plan_Type__c,Subscriber_Employer__c,AccountId FROM Opportunity where Id = '".$oppId."' LIMIT 1";
$url = "$instance_url/services/data/v48.0/query?q=" . urlencode($query);
//Curl code start here
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER,
array("Authorization: OAuth $access_token","Accept-Language: en-US"));
$json_response = curl_exec($curl);
curl_close($curl);
$array_res = json_decode($json_response);
return (isset($array_res->records[0]))?$array_res->records[0]:'';
}
function preAssessmentData($instance_url, $access_token, $oppId) {
$query = "SELECT Id FROM Pre_Assessment__c where Opportunity__c = '".$oppId."' order by createddate desc LIMIT 1 ";
$url = "$instance_url/services/data/v48.0/query?q=" . urlencode($query);
//Curl code start here
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER,
array("Authorization: OAuth $access_token","Accept-Language: en-US"));
$json_response = curl_exec($curl);
curl_close($curl);
//Curl code end here
$array_res = json_decode($json_response);
return (isset($array_res->records[0]))?$array_res->records[0]:'';
}
function attachmentData($instance_url, $access_token, $parentId, $limit=1) {
$query = "SELECT Id, Name, Body, ContentType, ParentId From Attachment WHERE ParentId ='".$parentId."' AND Name like '%.pdf' order by lastmodifieddate desc LIMIT ".$limit;
$url = "$instance_url/services/data/v48.0/query?q=" . urlencode($query);
//Curl code start here
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER,
array("Authorization: OAuth $access_token","Accept-Language: en-US"));
$json_response = curl_exec($curl);
curl_close($curl);
//Curl code end here
$array_res = json_decode($json_response);
if($limit==1){
return (isset($array_res->records[0]))?$array_res->records[0]:'';
}else{
return (isset($array_res->records))?$array_res->records:'';
}
}
function attachmentBodyData($instance_url, $access_token, $attachId) {
$url = $instance_url.'/services/data/v51.0/sobjects/Attachment/'.$attachId.'/body';
//Curl code start here
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER,
array("Authorization: Bearer $access_token","Accept-Language: en-US"));
$json_response = curl_exec($curl);
curl_close($curl);
return $json_response;
}
function getContentDocumentLink($instance_url, $access_token, $attachId, $limit=1){
$query = "SELECT Id, ContentDocumentId FROM ContentDocumentLink WHERE LinkedEntityId = '".$attachId."' ORDER BY SystemModstamp DESC LIMIT ".$limit;
$url = "$instance_url/services/data/v48.0/query?q=" . urlencode($query);
//Curl code start here
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER,
array("Authorization: OAuth $access_token","Accept-Language: en-US"));
$json_response = curl_exec($curl);
curl_close($curl);
//Curl code end here
$array_res = json_decode($json_response);
if($limit==1){
return (isset($array_res->records[0]))?$array_res->records[0]:'';
}else{
return (isset($array_res->records))?$array_res->records:'';
}
}
function getContentDocument($instance_url, $access_token, $contentDocumentId){
$query = "SELECT Id, LatestPublishedVersionId FROM ContentDocument WHERE Id ='".$contentDocumentId."' ORDER BY LastModifiedDate DESC LIMIT 1";
$url = "$instance_url/services/data/v48.0/query?q=" . urlencode($query);
//Curl code start here
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER,
array("Authorization: OAuth $access_token","Accept-Language: en-US"));
$json_response = curl_exec($curl);
curl_close($curl);
//Curl code end here
$array_res = json_decode($json_response);
return (isset($array_res->records[0]))?$array_res->records[0]:'';
}
function getContentVersion($instance_url, $access_token, $latestPublishedVersionId){
$query = "SELECT Id, Title,FileExtension, VersionData FROM ContentVersion WHERE Id = '".$latestPublishedVersionId."' ORDER BY LastModifiedDate DESC LIMIT 1";
$url = "$instance_url/services/data/v48.0/query?q=" . urlencode($query);
//Curl code start here
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER,
array("Authorization: OAuth $access_token","Accept-Language: en-US"));
$json_response = curl_exec($curl);
curl_close($curl);
//Curl code end here
$array_res = json_decode($json_response);
return (isset($array_res->records[0]))?$array_res->records[0]:'';
}
function getContentVersionData($instance_url, $access_token, $attachId){
$url = $instance_url.'/services/data/v48.0/sobjects/ContentVersion/'.$attachId.'/VersionData';
//Curl code start here
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER,
array("Authorization: Bearer $access_token","Accept-Language: en-US"));
$json_response = curl_exec($curl);
curl_close($curl);
return $json_response;
}
function curlResquest( $url, $hdr, $content ) {
$c = curl_init( $url );
curl_setopt( $c, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $c, CURLOPT_HTTPHEADER, $hdr );
curl_setopt( $c, CURLOPT_POST, true );
curl_setopt( $c, CURLOPT_POSTFIELDS, $content );
$json_response = curl_exec( $c );
$response = json_decode( $json_response, true );
$status = curl_getinfo( $c, CURLINFO_HTTP_CODE );
curl_close( $c );
return array('status'=>$status,'response'=>$response);
}
function buildMultipartFormData($data = array(), $fileDataArray)
{
$eol = "\r\n";
// Build test string
$testStr = '';
array_walk_recursive($data, function($item, $key) use (&$testStr, &$eol) {
$testStr .= $key . $eol . $item . $eol;
});
$boundary = 'MultipartBoundary';
// Build data
$rtn = '';
$func = function($data, $baseKey = null) use (&$func, &$boundary, &$eol)
{
$rtn = '';
foreach ($data as $key=>&$value)
{
// Get key
$key = $baseKey === null ? $key : ($baseKey . '[' . $key . ']');
// Add data
if (is_array($value))
$rtn .= $func($value, $key);
else
$rtn .= '--' . $boundary . $eol . 'Content-Disposition: form-data; name="'.$key.'"' . $eol . $eol . $value . $eol;
}
return $rtn;
};
$rtn = $func($data);
$count=0;
foreach ($fileDataArray as $fileName => $fileContent) {
$rtn .= '--' . $boundary . $eol . 'Content-Disposition: form-data; name="document[attachments_attributes]['.$count.'][attachment]"; filename="'.$fileName.'"' . $eol
. 'Content-Type: application/pdf' . $eol . $eol
. $fileContent . $eol;
$count++;
}
return $rtn . '--' . $boundary . '--' . $eol;
}
function my_log($data){
$message = "Date: " .date("Y-m-d H:i:s P T").PHP_EOL.
$data.PHP_EOL.
"-------------------------".PHP_EOL;
file_put_contents(__DIR__ . '/webhook-kipu-sf-lead.log', $message, FILE_APPEND);
}
function sendErrorLogsToCRM($APIURL='', $Requestbody = '', $OpportunityId='', $APIErrorMessage = '', $APIErrorCode = '')
{
$postData = '{
"Origin": "API",
"APIURL": "'.$APIURL.'",
"Requestbody": '.$Requestbody.',
"OpportunityId": "'.$OpportunityId.'",
"APIErrorMessage": '.$APIErrorMessage.',
"APIErrorCode": "'.$APIErrorCode.'"
}';
my_log('------------ErrorLogPayloadSendToCRM------------');
my_log($postData);
if($Requestbody)
{
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://apncapital--partial.sandbox.my.salesforce-sites.com/ErrorLogAPI/services/apexrest/ErrorLog', //sandbox URL
//CURLOPT_URL => 'https://apncapital.my.salesforce-sites.com/ErrorLogAPI/services/apexrest/ErrorLog', //production URL
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>$postData,
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Cookie: CookieConsentPolicy=0:1; LSKey-c$CookieConsentPolicy=0:1; BrowserId=5N_Acr8-Ee2LZP2hCWFcxA'
),
));
$response = curl_exec($curl);
curl_close($curl);
my_log('------------ErrorRespomseLogSendToCRM------------');
my_log($response);
}
}