File: /var/www/html/kipu-api-8/index.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 = '0068Z00001fkrNgQAI';
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;
}
}
$Is_Uk_Owner__c = (isset($oppData['Is_Uk_Owner__c'])) ? $oppData['Is_Uk_Owner__c'] : ''; //Is_Uk_Owner__c
if ($Is_Uk_Owner__c) {
//Credentials for UK KIPU
$ACCESS_ID = 'tze3twBoDhcfnggesum2ZRRSQ17uhDvhDnarg2L90z8';
$SECRET_KEY = 'FGQkG1b2GyaXwRPpgXCeITFuSt0rSBOvCfe6+BKoXwtPskPII/sx1eBnmKJwNB6+8qgSUTf+ccspkiNUA8d/Eg==';
$KIPU_RECIPIENT_ID = 'bfAVCrkqW53eFYcY0Jvye5-CwxZ6v7EPGP_ZBLZDODs';
}
$Discharge_Transition_to__c = (isset($oppData['Discharge_Transition_to__c'])) ? $oppData['Discharge_Transition_to__c'] : '';
$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 . '",
"discharge_to_name": "' . $Discharge_Transition_to__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
];
echo json_encode($headers);
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 = 1;
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^85B0gcf3TRss2us22'; //'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 Discharge_Transition_to__c,Is_Uk_Owner__c,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);
}
}