File: /var/www/vhosts/paiskincare.com/httpdocs/zencart_zendesk_remote_authentication.php
<?php
require('includes/application_top.php');
$sToken = ZENDESK_TOKEN;
$sReturnURL = 'http://' . ZENDESK_DOMAIN . '/access/remote/' ; // http://YOURDOMAIN.zendesk.com/access/remote/
if (!defined('ZENDESK_TOKEN')) {
echo "please install and configure your Zendesk Connector";
exit();
}
if ($session_started == false) {
zen_redirect(zen_href_link(FILENAME_COOKIE_USAGE));
}
if (!isset($_SESSION['customer_id'])) {
zen_redirect(zen_href_link(FILENAME_LOGIN, '', 'SSL'));
}
$error = false;
// parameters to set
// http://www.zendesk.com/api/remote_authentication
$sFullName = '';
$sEmail = '';
$sExternalID = ''; // unique userID
$sOrganization = ''; // optional
// when logged in, following data is in session
// $customer_id
// get user information
$check_customer_query_sql = "SELECT customers_id, customers_firstname, customers_lastname, customers_email_address
FROM " . TABLE_CUSTOMERS . "
WHERE customers_id = :customers_id";
$check_customer_query =$db->bindVars($check_customer_query_sql, ':customers_id', $_SESSION['customer_id'], 'string');
$check_customer = $db->Execute($check_customer_query);
if (!$check_customer->RecordCount()) {
$error = true;
}
$sFullName = $check_customer->fields['customers_firstname'] . ' ' . $check_customer->fields['customers_lastname'];
$sEmail = $check_customer->fields['customers_email_address'];
$sExternalID = $customer_id;
// Request.QueryString("timestamp")
// The timestamp sent to your authentication script by Zendesk
$querytimestamp = $HTTP_GET_VARS['timestamp'];
$sMessage = utf8_encode($sFullName) . $sEmail . $sExternalID . $sOrganization . $sToken . $querytimestamp;
$sDigest = md5($sMessage);
$sURL = $sReturnURL .
"?name=" . utf8_encode(urlencode($sFullName)) .
"&email=" . urlencode($sEmail) .
"&external_id=" . $sExternalID .
"×tamp=" . $querytimestamp .
"&hash=" .$sDigest;
zen_redirect($sURL);
?>