37 function iPayV3EnrollXML($MIR, $IPAYcred, $HCUcred) {
38 # move ipay settings and config into IPAYcred array 39 # from cutrusted detail [ipay_instid, ipay_iv, ipay_key, enrollmicr] and connection dependencies [ipay_token, random] 40 # move HomeCU settings into HCUcred array 41 # from selected user and account settings [ml, billpayid, micr] 43 #$ipay_instid, $ipay_iv, $ipay_key, $ipay_token, $random, $billpayid, $ml, $enrollmicr = null, $micr = 0 44 $reqParms = [
'ipay_instid' => 1,
51 'enrollmicr' => 1, #(
default null)
52 'micr' => 1 #(
default 0)
54 $missing = array_diff_key($reqParms, $IPAYcred, $HCUcred);
55 if (
sizeof($missing)) {
56 throw new Exception(
"Missing Settings ");
59 # call FormatMIR to make sure data is valid 60 # identify the required elements expected in the MIR 72 $parsedMIR = FormatMIR($MIR[
'data'], $HCUcred[
'ml'], $reqMIR,
'Y-m-d',
'flat',
false,
'');
74 if (!$parsedMIR[
'status'][
'response']) {
75 throw new Exception($parsedMIR[
'status'][
'message']);
78 # build enrollment XML string 80 if (!empty($parsedMIR[
"data"][
"ssn"])) {
81 list($EncryptedSSN, $iv) = EncryptCredentials(
"{$parsedMIR["data
"]["ssn
"]}", $IPAYcred[
'ipay_key'], $IPAYcred[
'ipay_iv']);
84 $enroll =
"<Message>\n";
85 $enroll .=
"<InstitutionID>{$IPAYcred['ipay_instid']}</InstitutionID>\n";
86 $enroll .=
"<Security>\n";
87 $enroll .=
"<IV>{$IPAYcred['ipay_iv']}</IV>\n";
88 $enroll .=
"<AuthToken>{$IPAYcred['ipay_token']}</AuthToken>\n";
89 $enroll .=
"</Security>\n";
90 $enroll .=
"<MessageRequest>\n";
91 $enroll .=
"<RequestID>{$IPAYcred['random']}</RequestID>\n";
92 $enroll .=
"<SubscriberCreate>\n";
93 $enroll .=
"<Info>\n";
94 $enroll .=
"<UserID>{$HCUcred['billpayid']}</UserID>\n";
95 $enroll .=
"<UserType>2</UserType>\n";
96 $enroll .=
"</Info>\n";
97 $enroll .=
"<Data>\n";
98 $enroll .=
"<Subscriber>\n";
99 $enroll .=
"<FIAdminApproval>0</FIAdminApproval>\n";
100 $enroll .=
"<LoginID>{$HCUcred['billpayid']}</LoginID>\n";
101 # values from the MIR packet 102 # note that legacy code sends tags w/o data for empty MiddleName & Address2 103 # using HCU_array_key_exists for those to mimic legacy 104 # using HCU_array_key_value for others to skip empties 105 $enroll .=
"<FirstName>{$parsedMIR["data
"]["firstname
"]}</FirstName>\n";
106 if (HCU_array_key_exists(
'middlename', $parsedMIR[
'data'])) {
107 $enroll .=
"<MiddleName>{$parsedMIR["data
"]["middlename
"]}</MiddleName>\n";
109 $enroll .=
"<LastName>{$parsedMIR["data
"]["lastname
"]}</LastName>\n";
110 $enroll .=
"<Email>{$parsedMIR['data']['email']}</Email>\n";
111 if (HCU_array_key_value(
'homephone', $parsedMIR[
'data'])) {
112 $enroll .=
"<HomePhone>" . Format_Phone_Dashes($parsedMIR[
"data"][
"homephone"]) .
"</HomePhone>\n";
114 if (HCU_array_key_value(
'workphone', $parsedMIR[
'data'])) {
115 $enroll .=
"<WorkPhone>" . Format_Phone_Dashes($parsedMIR[
"data"][
"workphone"]) .
"</WorkPhone>\n";
117 if (HCU_array_key_value(
'fax', $parsedMIR[
'data'])) {
118 $enroll .=
"<Fax>" . Format_Phone_Dashes($parsedMIR[
"data"][
"fax"]) .
"</Fax>\n";
120 $enroll .=
"<SSN>$EncryptedSSN</SSN>\n";
122 if ($IPAYcred[
'enrollmicr']) {
123 $enroll .=
"<AccountNumber>{$HCUcred['micr']}</AccountNumber>\n";
125 $enroll .=
"<AccountNumber>{$parsedMIR['data']['accountnumber']}</AccountNumber>\n";
129 $enroll .=
"<AccountType>1</AccountType>\n";
130 $enroll .=
"<Address1>{$parsedMIR["data
"]["address1
"]}</Address1>\n";
131 if (HCU_array_key_exists(
'address2', $parsedMIR[
'data'])) {
132 $enroll .=
"<Address2>{$parsedMIR["data
"]["address2
"]}</Address2>\n";
134 $enroll .=
"<City>{$parsedMIR["data
"]["city
"]}</City>\n";
135 $enroll .=
"<State>{$parsedMIR["data
"]["state
"]}</State>\n";
136 $enroll .=
"<Zip>{$parsedMIR["data
"]["zip
"]}</Zip>\n";
137 if (HCU_array_key_value(
'dob', $parsedMIR[
'data'])) {
138 $enroll .=
"<DateOfBirth>{$parsedMIR['data']['dob']}</DateOfBirth>\n";
141 $enroll .=
"</Subscriber>\n";
142 $enroll .=
"</Data>\n";
143 $enroll .=
"</SubscriberCreate>\n";
144 $enroll .=
"</MessageRequest>\n";
145 $enroll .=
"</Message>\n";
147 $return[
'status'] =
true;
148 $return[
'message'] =
'Success';
149 $return[
'data'] = $enroll;
151 }
catch (Exception $ex) {
152 $return[
'status'] =
false;
153 $return[
'message'] = $ex->getMessage();
154 $return[
'data'] = [];