43 function CuDir_config(&$parms) {
45 $parms[
'devMode'] = (!HCU_array_key_value(
'devMode', $parms)) ? 0 : HCU_array_key_value(
'devMode', $parms);
46 if ($parms[
'devMode']) {
48 $parms[
'CuDirOrg'] = HCU_array_key_value(
'devOrg', $parms);
50 $parms[
'CuDirUser'] = HCU_array_key_value(
'devUser', $parms);
52 $parms[
'CuDirPass'] = HCU_array_key_value(
'devPass', $parms);
54 $parms[
'CuDirURL'] = HCU_array_key_value(
'devURL', $parms);
58 $parms[
'CuDirOrg'] = HCU_array_key_value(
'prdOrg', $parms);
60 $parms[
'CuDirUser'] = HCU_array_key_value(
'prdUser', $parms);
62 $parms[
'CuDirPass'] = HCU_array_key_value(
'prdPass', $parms);
64 $parms[
'CuDirURL'] = HCU_array_key_value(
'prdURL', $parms);
68 empty($parms[
'CuDirOrg']) ||
69 empty($parms[
'CuDirUser']) ||
70 empty($parms[
'CuDirPass']) ||
71 empty($parms[
'CuDirURL']
73 throw new Exception(
"Missing Parameters", 100);
89 function CuDir_buildSSOPayload($CuDirOrg, $CuDirUser, $CuDirPass, $mbrAccount, $mir) {
92 $return[
'status'][
'response'] =
true;
93 $return[
'status'][
'message'] =
'Success';
95 $req_string =
'<?xml version="1.0" encoding="UTF-8"?> 96 <env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 97 xmlns:tns="http://www.cudl.com/CUDLConnect/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" 98 xmlns:ins0="http://www.cudl.com/CUDLConnect"> 100 <tns:ProcessSOAPMessage> 101 <CUDLConnect xmlns="http://www.cudl.com/CUDLConnect" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 102 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="1.0" Direction="Request" TargetAction="Other" OtherAction="GET SSO TOKEN"> 103 <CUDLAuthentication Version="1.0"> 104 <UserID>' . $CuDirUser .
'</UserID> 105 <Password>' . $CuDirPass .
'</Password> 106 <OrganizationCode>' . $CuDirOrg .
'</OrganizationCode> 107 </CUDLAuthentication> 109 <ApplicationID>0</ApplicationID> 111 <Applicant ApplicantType="PrimaryApplicant"> 113 <EmailAddress>' . $mir[
'email'] .
'</EmailAddress> 115 <Name Type="PersonName"> 116 <First>' . $mir[
'firstname'] .
'</First> 119 if (HCU_array_key_value(
'middlename', $mir)) {
120 $req_string .=
'<Middle>' . $mir[
'middlename'] .
'</Middle> 124 $req_string .=
'<Last>' . $mir[
'lastname'] .
'</Last> 128 if (HCU_array_key_value(
'dob', $mir)) {
129 $req_string .=
'<DateOfBirth>' . $mir[
'dob'] .
'</DateOfBirth> 133 $req_string .=
'<SSN>' . $mir[
'ssn'] .
'</SSN> 134 <MemberAccountNumber>' . $mbrAccount .
'</MemberAccountNumber> 135 <IsMember>true</IsMember> 137 <Address AddressType="Home"> 138 <Address1>' . $mir[
'address1'] .
'</Address1> 141 if (HCU_array_key_value(
'address2', $mir)) {
142 $req_string .=
'<Middle>' . $mir[
'address2'] .
'</Middle> 146 $req_string .=
'<City>' . $mir[
'city'] .
'</City> 147 <State>' . $mir[
'state'] .
'</State> 148 <Zip>' . $mir[
'zip'] .
'</Zip> 154 if (HCU_array_key_exists(
'phonenumbers', $mir)) {
155 foreach ($mir[
'phonenumbers'] as $ph => $phoneitm) {
156 $req_string .=
'<PhoneNumber PhoneNumberType="' . $phoneitm[
'name'] .
'"> 157 <Number>' . $phoneitm[
'number'] .
'</Number> 163 $req_string .=
'</PhoneNumbers> 168 <InternetApplication> 169 <SSOUserID>' . $CuDirOrg .
":" . $mbrAccount .
'</SSOUserID> 170 </InternetApplication> 173 </tns:ProcessSOAPMessage> 177 $return[
'data'] = $req_string;
179 }
catch (Exception $e) {
180 $return[
'status'][
'response'] =
false;
181 $return[
'status'][
'message'] = $e->getMessage() .
" (" . $e->getLine() .
")";
182 $return[
'data'] = [];
197 function CuDir_embcurl($parms, $reqURL, $reqMethod, $reqHeaders, $reqData =
'') {
200 CURLOPT_RETURNTRANSFER => 1,
201 CURLOPT_SSL_VERIFYPEER => 0,
202 CURLOPT_SSL_VERIFYHOST => 0,
203 CURLOPT_HEADER => FALSE,
204 CURLOPT_URL => $reqURL
208 curl_setopt_array($ch, $curlopts);
210 if ($reqMethod !=
'GET') {
211 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $reqMethod);
214 if (strlen($reqData) > 0) {
215 curl_setopt($ch, CURLOPT_POSTFIELDS, $reqData);
218 if (count($reqHeaders)) {
219 curl_setopt($ch, CURLOPT_HTTPHEADER, $reqHeaders);
222 $response = curl_exec($ch);
224 if (isset($parms[
"logging"]) && ($parms[
"logging"] ==
"enabled")) {
227 $logParms = $parms[
"environment"];
229 $logParms[
"token"] =
'';
231 $logParms[
"txnId"] = time();
233 $logParms[
"request"] =
"curl ";
235 if ($reqMethod !=
'GET') {
236 $logParms[
"request"] .=
"-X $reqMethod ";
239 if (is_array($reqHeaders)) {
240 foreach ($reqHeaders as $hdr) {
241 $logParms[
"request"] .=
"-H '$hdr' ";
245 if (strlen($reqData) > 0) {
247 $logParms[
"request"] .=
"-d '$reqData' ";
251 $logParms[
'logPoint'] =
'CU Direct SSO';
252 $logParms[
"request"] .=
"'$reqURL' ";
253 $logParms[
"reply"] = print_r(curl_getinfo($ch),
true);
254 $logParms[
"reply"] .=
"\n$response";
255 LogSSOActivity($logParms);
259 $respHTTP = curl_getinfo($ch, CURLINFO_HTTP_CODE);
260 $respCURL = curl_errno($ch);
264 $respERR =
"HCUERROR: Connection Failed cURL $respCURL";
265 } elseif ($respHTTP > 400 && $respHTTP < 600) {
267 $respERR =
"HCUERROR: Connection Failed HTTP $respHTTP";
268 } elseif (!isset($response) || $response ==
'') {
270 $respERR =
"HCUERROR: Empty Response";
273 if ($respERR ==
'') {
275 $xmlerr_setting = libxml_use_internal_errors(
true);
276 $xml = simplexml_load_string($response);
278 $xmlerrors = libxml_get_errors();
280 libxml_clear_errors();
282 libxml_use_internal_errors($xmlerr_setting);
284 if (!is_object($xml)) {
285 $respERR =
"HCUERROR INVALID XML: ";
297 $xml->registerXPathNamespace(
's',
"http://schemas.xmlsoap.org/soap/envelope/");
298 $errorresponse = $xml->xpath(
"//s:Fault");
300 if (is_array($errorresponse) && count($errorresponse)) {
301 $respERR =
"HCUERROR: " . $errorresponse[0]->faultcode .
" " . $errorresponse[0]->faultstring;
305 $xml->registerXPathNamespace(
'cudir',
'http://www.cudl.com/CUDLConnect');
307 $respToken = (string) $xml->xpath(
"//cudir:SSOToken")[0];
308 $respBURL = (string) $xml->xpath(
"//cudir:BaseURL")[0];
310 if (empty($respToken) || empty($respBURL)) {
312 $respAPI = $xml->xpath(
"//cudir:CUDLConfirmation")[0];
313 $respERR =
"HCUERROR: Empty Token or URL" ;
325 'Token' => $respToken,
326 'BaseURL' => $respBURL