26 define(
"MP_JX_ERROR_CODE",
"5013" );
27 define(
"MP_JX_AUTH_ERROR_CODE",
"50131" );
28 define(
"MP_JX_SUB_ERROR_CODE",
"2093" );
29 define(
"SERVICE_NAME",
"IPAYBPS" );
31 define(
"CACHE_KEY_HIST",
"jxHistory" );
32 define(
"CACHE_KEY_PMTS",
"jxPending" );
33 define(
"CACHE_KEY_SUBINQ",
"jxSubInq" );
34 define(
"CACHE_KEY_SUBADD",
"jxSubAdd" );
35 define(
"CACHE_KEY_PAYADD",
"jxPayAdd" );
36 define(
"CACHE_KEY_BILPAYCHANINQ",
"jxBilPayChanInq" );
37 define(
"CACHE_KEY_BILPAYPAYEESRCH",
"jxBilPayPayeeSrch" );
39 function bpAuth($parms) {
41 if ($parms[
'moc'] == 1) {
42 $parms[
'password'] = $parms[
'mocpass'];
43 $parms[
'serviceurl'] = $parms[
'mocservice'];
45 $parms[
'Token'] = time();
46 $reply = jxBilPayChanInq( $parms );
48 if ( $reply[
"status"][
"response"] ==
"false" ) {
49 if ( empty($reply[
"status"][
"message"]) ) {
50 $reply[
"status"][
"message"] =
'Institution Inquiry Failed';
52 throw new Exception($reply[
'status'][
'message'],MP_JX_AUTH_ERROR_CODE);
55 $response = jxBilPaySubConsmCustInq( $parms );
57 # normalize the name for scalability 58 if ( $response[
"status"][
"response"] ==
"false" ) {
60 if ( empty($response[
"status"][
"message"]) ) {
64 $response[
"status"][
"message"] =
"Subscriber Validation Failed.";
65 throw new Exception($response[
'status'][
'message'],
'999');
68 throw new Exception($response[
'status'][
'message'],MP_JX_SUB_ERROR_CODE);
73 $response[
"status"][
"code"] =
"000";
74 $dateModelvalue =$reply[
"data"][
"BilPayChanInfo"][
"BilPayProdTypeInfoArray"][
"BilPayProdTypeInfo"][
"PmtDtModel"];
75 $dateModel =
"payeeprocess";
76 if (strcmp($dateModelvalue,
"ProcDtModel") == 0 ){
77 $dateModel =
"payeeprocess";
80 if (strcmp($dateModelvalue,
"DueDtModel") == 0 ){
84 if (strcmp($dateModel,$parms[
"datemodel"]) != 0 ){
85 $response[
"status"][
"response"] =
"false";
86 throw new Exception(
"Invalid Date Model.", MP_JX_AUTH_ERROR_CODE);
89 $output[
"Token"] = $parms[
'Token'] .
"|" . $response[
'data'][
'SubId'];
90 $output[
"DateModel"] = $dateModel;
91 $output[
'MoblPayName']= (trim($parms[
'MoblPayName']) ==
'' ? htmlentities(
'Pay Bills') : htmlentities($parms[
'MoblPayName']));
92 $output[
'Extras'] = htmlentities($parms[
'ExtraOptions']);
95 if ( isset( $reply[
"data"][
"BilPayChanInfo"][
"BilPayProdTypeInfoArray"][
"BilPayProdTypeInfo"][
"BilPayFeturInfoArray"][
"BilPayFeturInfo"] ) ) {
96 foreach($reply[
"data"][
"BilPayChanInfo"][
"BilPayProdTypeInfoArray"][
"BilPayProdTypeInfo"][
"BilPayFeturInfoArray"][
"BilPayFeturInfo"] as $key => $value) {
98 if($value[
"FeturType"] ==
"Email Payments"){
99 $output[
"AllowP2P"] = $value[
"FeturAct"];
103 $response[
'data']= $output;
106 }
catch (Exception $e) {
107 $return = array(
'status'=>array(
'response'=>
'false',
'message'=>$e->getMessage(),
'code'=>$e->getCode()),
'data'=>array(
'Token'=>
'0'));
114 function BpGetSubReq($parms){
116 if ($parms[
'moc'] == 1) {
117 $parms[
'serviceurl'] = $parms[
'mocservice'];
120 $parms[
'Token'] = time();
121 $reply = jxBilPayChanInq($parms);
123 if ( $reply[
"status"][
"response"] !=
"true" ) {
124 throw new Exception($reply[
'status'][
'message']);
128 $pinreq = $reply[
"data"][
"BilPayChanInfo"][
"BilPayProdTypeInfoArray"][
"BilPayProdTypeInfo"][
"DualSignOnReq"];
132 $pswPattern =
'^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{2,20}$';
136 $minlen = $reply[
"data"][
"BilPayChanInfo"][
"BilPayProdTypeInfoArray"][
"BilPayProdTypeInfo"][
"SubLogInIdRstr"][
"MinLenCharVal"];
137 $maxlen = $reply[
"data"][
"BilPayChanInfo"][
"BilPayProdTypeInfoArray"][
"BilPayProdTypeInfo"][
"SubLogInIdRstr"][
"MaxLenCharVal"];
138 $minalpha = $reply[
"data"][
"BilPayChanInfo"][
"BilPayProdTypeInfoArray"][
"BilPayProdTypeInfo"][
"SubLogInIdRstr"][
"MinAlphaCharVal"];
139 $minnum = $reply[
"data"][
"BilPayChanInfo"][
"BilPayProdTypeInfoArray"][
"BilPayProdTypeInfo"][
"SubLogInIdRstr"][
"MinNumCharVal"];
140 $minspecchar = $reply[
"data"][
"BilPayChanInfo"][
"BilPayProdTypeInfoArray"][
"BilPayProdTypeInfo"][
"SubLogInIdRstr"][
"MinSpecCharVal"];
141 $minlowcase = $reply[
"data"][
"BilPayChanInfo"][
"BilPayProdTypeInfoArray"][
"BilPayProdTypeInfo"][
"SubLogInIdRstr"][
"MinLowCaseVal"];
142 $minupcase = $reply[
"data"][
"BilPayChanInfo"][
"BilPayProdTypeInfoArray"][
"BilPayProdTypeInfo"][
"SubLogInIdRstr"][
"MinUpCaseVal"];
145 $ssnreq = $reply[
"data"][
"BilPayChanInfo"][
"BilPayProdTypeInfoArray"][
"BilPayProdTypeInfo"][
"TaxIdReq"];
148 $pinTip =
"Password must be between 2 and 20 characters in length, containing both letters and numbers.";
149 $pinTip .=
"Your temporary password is required when first accessing the online Bill Pay interface.";
152 $output[
"minlen"] = $minlen;
153 $output[
"maxlen"] = $maxlen;
154 $output[
"minalpha"] = $minalpha;
155 $output[
"minnum"] = $minnum;
156 $output[
"minspecchar"] = $minspecchar;
157 $output[
"minlowcase"] = $minlowcase;
158 $output[
"minupcase"] = $minupcase;
159 $output[
"ssnreq"] = $ssnreq;
160 $output[
"pinreq"] = $pinreq;
161 $output[
"pswPattern"] = $pswPattern;
162 $output[
"pinTip"] = $pinTip;
164 $return[
'status'][
'response'] =
'true';
165 $return[
'status'][
'code'] =
'000';
166 $return[
'data'] = $output;
167 }
catch (Exception $e) {
168 $return[
'status'][
'response'] =
'false';
169 $return[
'status'][
'code'] = $e->getCode();
170 $return[
'status'][
'message'] =
"(" . $e->getLine() .
") " . htmlspecialchars($e->getMessage(), ENT_QUOTES,
'UTF-8', FALSE);
178 function BpGetAccts($dbh, $HB_ENV, $parms){
181 $jxparms[
'Cu'] = $parms[
'environment'][
'Cu'];
182 $jxparms[
'Uid'] = $HB_ENV[
'Uid'];
183 $jxparms[
'MBRACCT'] = $parms[
'passwith'][
'MP_ACCOUNT'];
189 $jxparms[
'accountspecs'] = $parms[
'accountspecs'];
190 $hculist = GetAccts($dbh, $HB_ENV, $jxparms);
193 if ($hculist[
'status'][
'response'] ==
'false') {
194 throw new Exception($hculist[
'status'][
'message'], $hculist[
'status'][
'code']);
200 $return[
"status"][
"code"] =
"000";
201 $return[
"status"][
"response"] =
"true";
202 $return[
'data'] = $hculist[
'data'];
204 }
catch (Exception $e) {
205 $return[
'status'][
'response'] =
'false';
206 $return[
'status'][
'code'] = $e->getCode();
207 $return[
'status'][
'message'] =
"(" . $e->getLine() .
") " . htmlspecialchars($e->getMessage(), ENT_QUOTES,
'UTF-8', FALSE);
214 function bpHist( $parms ) {
216 if ($parms[
'moc'] == 1) {
217 $parms[
'serviceurl'] = $parms[
'mocservice'];
220 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
221 $response = jxGetHistory( $parms );
223 if ( $response[
"status"][
"response"] ==
"false" ) {
224 if ( empty($response[
"status"][
"message"]) ){
225 $response[
"status"][
"message"] =
'Get History Failed';
227 throw new Exception($response[
'status'][
'message']);
229 if ( isset( $response[
"data"] ) && count( $response[
"data"] ) ) {
230 if ( isset( $response[
"data"][
"PayeeName"] ) ) {
232 $value = $response[
"data"];
233 $outputElem = array();
234 $outputElem[
"TxnId"] = $value[
"PmtId"];
235 if (strcmp($value[
"PmtIntentType"],
"PayBill") == 0 ){
236 $payTypeValue =
"Payment";
239 $payTypeValue =
"Transfer";
241 $outputElem[
"Type"] = $payTypeValue;
242 $outputElem[
"ToId"] = $value[
"PayeeId"];
243 $outputElem[
"ToName"] = $value[
"PayeeName"];
244 $outputElem[
"FromId"] = $value[
"PayFromAcctInfo"][
"PayFromId"];
245 $outputElem[
"Amount"] = number_format( $value[
"PmtAmt"], 2 );
246 $outputElem[
"Date"] = date(
"m/d/Y", strtotime( $value[
"PmtProcDt"] ) );
248 $outputElem[
"Frequency"] = $value[
"PmtFreqUnits"];
250 $pmtStatusValue = getJXPaymentStatus ($value[
"PmtStat"]);
251 $pmtMthdValue = getJXPaymentMethod ($value[
"PmtMthd"]);
252 $estimatedArrival = strtotime( $value[
"PmtEstArvDt"] );
253 $Additional = array(
"From" => $value[
"PayFromAcctInfo"][
"PayFromAcctName"],
254 "Estimated_Arrival" => date(
"m/d/Y", $estimatedArrival ),
255 "Status" => $pmtStatusValue,
256 "Method" => $pmtMthdValue );
258 $outputElem[
"AdditionalInfo"] = $Additional;
259 $output[] = $outputElem;
264 foreach( $response[
"data"] as $key => $value ) {
265 $outputElem = array();
267 $outputElem[
"TxnId"] = $value[
"PmtId"];
268 if (strcmp($value[
"PmtIntentType"],
"PayBill") == 0 ){
269 $payTypeValue =
"Payment";
272 $payTypeValue =
"Transfer";
274 $outputElem[
"Type"] = $payTypeValue;
275 $outputElem[
"ToId"] = $value[
"PayeeId"];
276 $outputElem[
"ToName"] = $value[
"PayeeName"];
277 $outputElem[
"FromId"] = $value[
"PayFromAcctInfo"][
"PayFromId"];
278 $outputElem[
"Amount"] = number_format( $value[
"PmtAmt"], 2 );
279 $outputElem[
"Date"] = date(
"m/d/Y", strtotime( $value[
"PmtProcDt"] ) );
281 $outputElem[
"Frequency"] = $value[
"PmtFreqUnits"];
283 $pmtStatusValue = getJXPaymentStatus ($value[
"PmtStat"]);
284 $pmtMthdValue = getJXPaymentMethod ($value[
"PmtMthd"]);
285 $estimatedArrival = strtotime( $value[
"PmtEstArvDt"] );
286 $Additional = array(
"From" => $value[
"PayFromAcctInfo"][
"PayFromAcctName"],
287 "Estimated_Arrival" => date(
"m/d/Y", $estimatedArrival ),
288 "Status" => $pmtStatusValue,
289 "Method" => $pmtMthdValue );
292 $outputElem[
"AdditionalInfo"] = $Additional;
293 $output[] = $outputElem;
295 usort( $output,
"histSort" );
302 $return[
"status"][
"code"] =
"000";
303 $return[
"status"][
"response"] =
"true";
305 $return[
'data'] = $output;
307 }
catch (Exception $e) {
308 $return = array(
'status'=>array(
'response'=>
'false',
'message'=>$e->getMessage(),
'code'=>MP_JX_ERROR_CODE),
'data'=>array(
'Token'=>
'0'));
317 function BpAddPayee($dbh, $HB_ENV, $parms) {
320 if ($parms[
'moc'] == 1) {
321 $parms[
'serviceurl'] = $parms[
'mocservice'];
323 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
325 $reply = JxBilPayPayeeAdd($parms);
327 if ( $reply[
"status"][
"response"] !=
"true" ) {
328 throw new Exception($reply[
'status'][
'message']);
332 $return[
'status'][
'response'] =
'true';
333 $return[
'status'][
'code'] =
"000";
336 }
catch (Exception $e) {
337 $return[
'status'][
'response'] =
'false';
338 $return[
'status'][
'code'] = $e->getCode();
339 $return[
'status'][
'message'] =
"(" . $e->getLine() .
") " . htmlspecialchars($e->getMessage(), ENT_QUOTES,
'UTF-8', FALSE);
348 function BpEditPayee($dbh, $HB_ENV, $parms) {
351 if ($parms[
'moc'] == 1) {
352 $parms[
'serviceurl'] = $parms[
'mocservice'];
354 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
356 $reply = JxBilPayPayeeMod($parms);
358 if ( $reply[
"status"][
"response"] !=
"true" ) {
359 throw new Exception($reply[
'status'][
'message']);
363 $return[
'status'][
'response'] =
'true';
364 $return[
'status'][
'code'] =
"000";
367 }
catch (Exception $e) {
368 $return[
'status'][
'response'] =
'false';
369 $return[
'status'][
'code'] = $e->getCode();
370 $return[
'status'][
'message'] =
"(" . $e->getLine() .
") " . htmlspecialchars($e->getMessage(), ENT_QUOTES,
'UTF-8', FALSE);
379 function BpEnrollSub($dbh, $HB_ENV, $parms) {
383 if ($parms[
'moc'] == 1) {
384 $parms[
'serviceurl'] = $parms[
'mocservice'];
386 $parms[
'Token'] = time();
387 $decryptedAccountId = hcu_decrypturl($parms[
"passwith"][
"accountId"], $HB_ENV[
"historyHash"]);
388 $accountInfo = explode(
"|", $decryptedAccountId);
389 $parms[
'accountId'] = $accountInfo[0];
390 $parms[
'accountType'] = $accountInfo[1];
391 $reply = JxBilPaySubAdd($parms);
393 if ( $reply[
"status"][
"response"] !=
"true" ) {
394 throw new Exception($reply[
'status'][
'message']);
398 $subId = $reply[
'data'][
'SubId'];
401 $return[
'status'][
'response'] =
'true';
402 $return[
'status'][
'code'] =
"000";
405 }
catch (Exception $e) {
406 $return[
'status'][
'response'] =
'false';
407 $return[
'status'][
'code'] = $e->getCode();
408 $return[
'status'][
'message'] =
"(" . $e->getLine() .
") " . htmlspecialchars($e->getMessage(), ENT_QUOTES,
'UTF-8', FALSE);
417 function BpEditSub($dbh, $parms) {
420 if ($parms[
'moc'] == 1) {
421 $parms[
'serviceurl'] = $parms[
'mocservice'];
423 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
424 $reply = JxBilPaySubMod($parms);
426 if ( $reply[
"status"][
"response"] !=
"true" ) {
427 throw new Exception($reply[
'status'][
'message']);
431 $return[
'status'][
'response'] =
'true';
432 $return[
'status'][
'code'] =
"000";
434 }
catch (Exception $e) {
435 $return[
'status'][
'response'] =
'false';
436 $return[
'status'][
'code'] = $e->getCode();
437 $return[
'status'][
'message'] =
"(" . $e->getLine() .
") " . htmlspecialchars($e->getMessage(), ENT_QUOTES,
'UTF-8', FALSE);
443 function bpSched( $parms ) {
445 if ($parms[
'moc'] == 1) {
446 $parms[
'serviceurl'] = $parms[
'mocservice'];
449 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
450 $response = jxGetScheduled( $parms );
452 if ( $response[
"status"][
"response"] ==
"false" ) {
453 if ( empty($response[
"status"][
"message"]) ) {
454 $response[
"status"][
"message"] =
'Get Scheduled Failed';
456 throw new Exception($response[
'status'][
'message']);
459 if ( isset( $response[
"data"] ) && count( $response[
"data"] ) ) {
460 if ( isset( $response[
"data"][
"PayeeName"] ) ) {
462 $value = $response[
"data"];
463 $outputElem = array();
464 $outputElem[
"TxnId"] = $value[
"PmtId"];
465 if (strcmp($value[
"PmtIntentType"],
"PayBill") == 0 ){
466 $payTypeValue =
"Payment";
469 $payTypeValue =
"Transfer";
472 $outputElem[
"Type"] = $payTypeValue;
473 $outputElem[
"ToId"] = $value[
"PayeeId"];
474 $outputElem[
"ToName"] = $value[
"PayeeName"];
475 $outputElem[
"FromId"] = $value[
"PayFromAcctInfo"][
"PayFromId"];
476 $outputElem[
"Amount"] = number_format( $value[
"PmtAmt"], 2 );
477 $outputElem[
"Date"] = date(
"m/d/Y", strtotime( $value[
"PmtProcDt"] ) );
479 $outputElem[
"Frequency"] = $value[
"PmtFreqUnits"];
481 $pmtMthdValue = getJXPaymentMethod($value[
"PmtMthd"]);
482 $estimatedArrival = strtotime( $value[
"PmtEstArvDt"] );
483 $Additional = array(
"From" => $value[
"PayFromAcctInfo"][
"PayFromAcctName"],
484 "Estimated_Arrival" => date(
"m/d/Y", $estimatedArrival ),
485 "Method" => $pmtMthdValue );
488 $outputElem[
"AdditionalInfo"] = $Additional;
490 $output[] = $outputElem;
495 foreach( $response[
"data"] as $key => $value ) {
496 $outputElem = array();
498 $outputElem[
"TxnId"] = $value[
"PmtId"];
499 if (strcmp($value[
"PmtIntentType"],
"PayBill") == 0 ){
500 $payTypeValue =
"Payment";
503 $payTypeValue =
"Transfer";
505 $outputElem[
"Type"] = $payTypeValue;
506 $outputElem[
"ToId"] = $value[
"PayeeId"];
507 $outputElem[
"ToName"] = $value[
"PayeeName"];
508 $outputElem[
"FromId"] = $value[
"PayFromAcctInfo"][
"PayFromId"];
509 $outputElem[
"Amount"] = number_format( $value[
"PmtAmt"], 2 );
510 $outputElem[
"Date"] = date(
"m/d/Y", strtotime( $value[
"PmtProcDt"] ) );
512 $outputElem[
"Frequency"] = $value[
"PmtFreqUnits"];
514 $estimatedArrival = strtotime( $value[
"PmtEstArvDt"] );
515 $pmtMthdValue = getJXPaymentMethod ($value[
"PmtMthd"]);
531 $Additional = array(
"From" => $value[
"PayFromAcctInfo"][
"PayFromAcctName"],
532 "Estimated_Arrival" => date(
"m/d/Y", $estimatedArrival ),
533 "Method" => $pmtMthdValue );
536 $outputElem[
"AdditionalInfo"] = $Additional;
537 $output[] = $outputElem;
540 usort( $output,
"schedSort" );
546 $return[
"status"][
"code"] =
"000";
547 $return[
"status"][
"response"] =
"true";
548 # normalize the name for scalability 549 $return[
'data'] = $output;
551 }
catch (Exception $e) {
552 $return = array(
'status'=>array(
'response'=>
'false',
'message'=>$e->getMessage(),
'code'=>MP_JX_ERROR_CODE),
'data'=>array(
'Token'=>
'0'));
558 function getJXPaymentStatus ( $pmtStatus ){
561 switch ($pmtStatus) {
563 $pmtStatValue =
"Processed";
566 $pmtStatValue =
"Paid";
569 $pmtStatValue =
"Stopped";
572 $pmtStatValue =
"Canceled";
575 $pmtStatValue =
"Returned";
578 $pmtStatValue =
"Settled";
581 $pmtStatValue =
"Resubmitted";
584 $pmtStatValue =
"Refunded";
587 $pmtStatValue =
"Stopped";
590 $pmtStatValue =
"Skipped";
593 $pmtStatValue =
"Scheduled";
596 $pmtStatValue =
"Pending";
599 $PmtApprv =
"Payment Approved";
602 return $pmtStatValue;
605 function getJXPaymentMethod ( $pmtMethod ){
607 $pmtMthdValue =
"Standard";
608 switch ($pmtMethod) {
610 $pmtMthdValue =
"Check";
613 $pmtMthdValue =
"Email";
616 $pmtMthdValue =
"Electronic";
619 $pmtMthdValue =
"Standard";
622 return $pmtMthdValue;
628 function BpSubInq($parms, $HB_ENV){
630 if ($parms[
'moc'] == 1) {
631 $parms[
'serviceurl'] = $parms[
'mocservice'];
633 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
634 $response = jxBilPaySubInq($parms);
635 if ($response[
"status"][
"response"]==
'false'){
636 if (empty($response[
"status"][
"message"]))
637 $response[
"status"][
"message"]=
'Get Accounts Failed';
642 $outputElem = array();
643 $outputElem[
"firstName"] = $response[
"data"][
"BilPaySubInfo"][
"PersonName"][
"FirstName"];
644 $outputElem[
"lastName"] = $response[
"data"][
"BilPaySubInfo"][
"PersonName"][
"LastName"];
645 $outputElem[
"addr1"] = $response[
"data"][
"BilPaySubInfo"][
"Addr"][
"StreetAddr1"];
646 $outputElem[
"addr2"] = $response[
"data"][
"BilPaySubInfo"][
"Addr"][
"StreetAddr2"];
647 $outputElem[
"city"] = $response[
"data"][
"BilPaySubInfo"][
"Addr"][
"City"];
648 $outputElem[
"state"] = $response[
"data"][
"BilPaySubInfo"][
"Addr"][
"StateCode"];
649 $outputElem[
"zip"] = $response[
"data"][
"BilPaySubInfo"][
"Addr"][
"PostalCode"];
650 if ( isset( $response[
"data"][
"BilPaySubInfo"][
"PhoneArray"] ) ) {
651 foreach($response[
"data"][
"BilPaySubInfo"][
"PhoneArray"] as $key => $value){
653 if(count($value) == count($value, COUNT_RECURSIVE)){
655 if($value[
"PhoneType"] ==
"Home"){
656 $outputElem[
"phone"] = $value[
"PhoneNum"];
657 $outputElem[
"phoneType"] = $value[
"PhoneType"];
661 foreach($value as $pkey => $pvalue){
662 if($pvalue[
"PhoneType"] ==
"Home"){
663 $outputElem[
"phone"] = $pvalue[
"PhoneNum"];
664 $outputElem[
"phoneType"] = $pvalue[
"PhoneType"];
671 if ( isset( $response[
"data"][
"BilPaySubInfo"][
"EmailArray"] ) ) {
672 foreach($response[
"data"][
"BilPaySubInfo"][
"EmailArray"] as $key => $value){
674 if(count($value) == count($value, COUNT_RECURSIVE)){
676 if($value[
"EmailType"] ==
"Prim"){
677 $outputElem[
"email"] = $value[
"EmailAddr"];
681 foreach($value as $ekey => $evalue){
682 if($evalue[
"EmailType"] ==
"Prim"){
683 $outputElem[
"email"] = $evalue[
"EmailAddr"];
695 $outputElem[
"subComId"] = $response[
"data"][
"BilPaySubInfo"][
"SubComId"];
697 list($token, $subID) = explode(
"|", $parms[
'Token']);
698 $outputElem[
"subId"] = $subID;
701 foreach($outputElem as $k => $v){
703 $outputElem[$k] =
"";
707 $output[] = $outputElem;
709 if ( !count( $output ) ) {
710 throw new Exception(
"No subscriber information received from vendor.");
714 $response[
"status"][
"code"] =
"000";
716 # normalize the name for scalability 717 $response[
'data']= $output;
719 }
catch (Exception $e) {
720 $response[
"status"][
"response"] =
"false";
721 $response[
"status"][
"message"] = $e->getMessage();
722 $response[
"status"][
"code"] = MP_JX_ERROR_CODE;
723 $response[
"data"] = array();
730 function bpSourceAccts( $parms ) {
732 if ($parms[
'moc'] == 1) {
733 $parms[
'serviceurl'] = $parms[
'mocservice'];
735 $parms[
'Account'][
'types'] =
"PayFrom";
736 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
737 $response=jxBilPaySubInq( $parms );
738 if ($response[
"status"][
"response"]==
'false'){
739 if (empty($response[
"status"][
"message"]))
740 $response[
"status"][
"message"]=
'Get Accounts Failed';
744 foreach( $response[
"data"][
"BilPaySubInfo"][
"PayFromAcctInfoArray"] as $key => $value ) {
746 if(count($value) == count($value, COUNT_RECURSIVE)){
748 $outputElem = array();
749 $outputElem[
"Name"] = $value[
"PayFromAcctName"];
750 $outputElem[
"FromId"] = $value[
"PayFromId"];
752 if ( isset( $value[
"CanRush"]) && (strcmp($value[
"CanRush"],
"True") == 0) ){
753 $outputElem[
"CanRush"] =
"0";
756 $outputElem[
"CanRush"] =
"0";
760 if ( strlen( trim( $outputElem[
"Name"] ) ) == 0 ) {
761 $outputElem[
"Name"] = $value[
"PayFromAcctId"];
763 $output[] = $outputElem;
767 foreach($value as $pkey => $pvalue){
768 $outputElem = array();
769 $outputElem[
"Name"] = $pvalue[
"PayFromAcctName"];
770 $outputElem[
"FromId"] = $pvalue[
"PayFromId"];
772 if ( isset( $pvalue[
"CanRush"]) && (strcmp($pvalue[
"CanRush"],
"True") == 0) ){
773 $outputElem[
"CanRush"] =
"0";
776 $outputElem[
"CanRush"] =
"0";
780 if ( strlen( trim( $outputElem[
"Name"] ) ) == 0 ) {
781 $outputElem[
"Name"] = $pvalue[
"PayFromAcctId"];
783 $output[] = $outputElem;
789 if ( !count( $output ) ) {
790 throw new Exception(
"No source accounts received from vendor.");
794 $response[
"status"][
"code"] =
"000";
796 # normalize the name for scalability 797 $response[
'data']= $output;
799 }
catch (Exception $e) {
800 $response[
"status"][
"response"] =
"false";
801 $response[
"status"][
"message"] = $e->getMessage();
802 $response[
"status"][
"code"] = MP_JX_ERROR_CODE;
803 $response[
"data"] = array();
812 function bpDestAccts( $parms ) {
814 if ($parms[
'moc'] == 1) {
815 $parms[
'serviceurl'] = $parms[
'mocservice'];
817 $parms[
'Account'][
'types'] =
"Outbound";
818 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
820 $response=jxGetPayeeList( $parms );
823 if ($response[
"status"][
"response"]==
'false'){
824 if (empty($response[
"status"][
"message"]))
825 $response[
"status"][
"message"]=
'Get Payee List Failed';
828 if ( isset( $response[
"data"] ) && count( $response[
"data"] ) ) {
829 if ( isset( $response[
"data"][
"PayeeName"] ) ) {
830 $value = $response[
"data"];
831 $outputElem = array();
832 $outputElem[
"Name"] = $value[
"PayeeName"];
833 $payeeType = $value[
"PayeeClsf"];
835 if (strcmp($payeeType,
"FinInst") == 0 ){
836 $payeeType =
"Transfer";
837 if (strlen(trim($value[
"PayeeNickname"])) >0){
838 $outputElem[
"Name"] .=
" ({$value["PayeeNickname
"]})";
842 $payeeType =
"Payment";
844 if (strcmp($payeeType, $parms[
"passwith"][
"AcctType"]) == 0 ){
845 $outputElem[
"Type"] = $payeeType;
846 $outputElem[
"ToId"] = $value[
"PayeeId"];
847 if (strcmp($value[
"CanRush"],
"True") == 0 ){
848 $outputElem[
"CanRush"] =
"0";
851 $outputElem[
"CanRush"] =
"0";
853 $output[] = $outputElem;
857 foreach( $response[
"data"] as $key => $value ) {
859 $outputElem = array();
860 $outputElem[
"Name"] = $value[
"PayeeName"];
861 if (isset($value[
'PayeeNickname']) && ! empty($value[
'PayeeNickname'])) {
862 $outputElem[
"Name"] .=
" ({$value['PayeeNickname']})";
865 $payeeType = $value[
"PayeeClsf"];
866 if (strcmp($payeeType,
"FinInst") == 0 ){
867 $payeeType =
"Transfer";
872 $payeeType =
"Payment";
875 if (strcmp($payeeType, $parms[
"passwith"][
"AcctType"]) == 0 ){
876 $outputElem[
"Type"] = $payeeType;
877 $outputElem[
"ToId"] = $value[
"PayeeId"];
879 if (strcmp($value[
"CanRush"],
"True") == 0 ){
880 $outputElem[
"CanRush"] =
"0";
883 $outputElem[
"CanRush"] =
"0";
885 $output[] = $outputElem;
892 if ( !count( $output ) ) {
893 throw new Exception(
"No Payees Configured.");
897 $response[
"status"][
"code"] =
"000";
900 $response[
"data"]= $output;
903 }
catch (Exception $e) {
904 $response[
"status"][
"response"] =
"false";
905 $response[
"status"][
"message"] = $e->getMessage();
906 $response[
"status"][
"code"] = MP_JX_ERROR_CODE;
907 $response[
"data"] = array();
917 function BpPayees( $dbh, $HB_ENV, $parms ) {
920 if ( $parms[
'moc'] == 1 ) {
921 $parms[
'serviceurl'] = $parms[
'mocservice'];
923 $parms[
'Account'][
'types'] =
"Outbound";
924 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
926 $payresponse = jxGetPayeeList( $parms );
929 if ( $payresponse[
"status"][
"response"]==
'false' ) {
930 if ( empty($payresponse[
"status"][
"message"]) )
931 $payresponse[
"status"][
"message"] =
'Get Payee List Failed';
936 if ( isset($payresponse[
"data"][
"PayeeId"]) ) {
937 $outputElem[
"Id"] = $payresponse[
"data"][
"PayeeId"];
938 $outputElem[
"Name"] = $payresponse[
"data"][
"PayeeName"];
939 $outputElem[
"Nickname"] = $payresponse[
"data"][
"PayeeNickname"];
940 $outputElem[
"Type"] = ( ( $payresponse[
"data"][
"PmtIntentType"] ==
"PayBill" ) ?
"Payment" :
"Transfer" );
941 $outputElem[
"Class"] = $payresponse[
"data"][
"PayeeClsf"];
942 $outputElem[
"Amount"] =
"";
943 $outputElem[
"Date"] =
"";
945 foreach( $payresponse[
"data"] as $key => $value ) {
946 $outputElem = array();
947 $outputElem[
"Id"] = $value[
"PayeeId"];
948 $outputElem[
"Name"] = $value[
"PayeeName"];
949 $outputElem[
"Nickname"] = $value[
"PayeeNickname"];
950 $outputElem[
"Type"] = ( ( $value[
"PmtIntentType"] ==
"PayBill" ) ?
"Payment" :
"Transfer" );
951 $outputElem[
"Class"] = $value[
"PayeeClsf"];
952 $outputElem[
"Amount"] =
"";
953 $outputElem[
"Date"] =
"";
954 $output[] = $outputElem;
960 if ( count($output) ) {
961 $histresponse = jxGetHistory( $parms );
964 if ( $histresponse[
"status"][
"response"]==
'false' ) {
965 if ( empty( $histresponse[
"status"][
"message"] ) )
966 $histresponse[
"status"][
"message"] =
'Get History Failed';
969 $histOutput = array();
970 foreach( $histresponse[
"data"] as $hkey => $hvalue ) {
971 $histoutputElem[
"Id"] = $hvalue[
"PayeeId"];
972 $histoutputElem[
"Name"] = $hvalue[
"PayeeName"];
973 $histoutputElem[
"Nickname"] = $hvalue[
"PayeeNickname"];
974 $histoutputElem[
"Type"] = ( ( $hvalue[
"PmtIntentType"] ==
"PayBill" ) ?
"Payment" :
"Transfer" );
975 $histoutputElem[
"Amount"] = number_format($hvalue[
"PmtAmt"], 2 );
976 $histoutputElem[
"Date"] = date(
"m/d/Y", strtotime($hvalue[
"PmtProcDt"] ) );
977 $histOutput[] = $histoutputElem;
982 $cleanHistory = UniqueMultidimArray( $histOutput,
"Id" );
986 $finalOutput = array();
987 foreach( $output as $payee => $data ) {
988 $finaloutputElem[
"Id"] = $data[
"Id"];
989 $finaloutputElem[
"Name"] = $data[
"Name"];
990 $finaloutputElem[
"Nickname"] = $data[
"Nickname"];
991 $finaloutputElem[
"Type"] = $data[
"Type"];
992 $finaloutputElem[
"Class"] = $data[
"Class"];
993 $finaloutputElem[
"Amount"] = $data[
"Amount"];
994 $finaloutputElem[
"Date"] = $data[
"Date"];
995 foreach( $cleanHistory as $hist => $hdata ) {
996 if ($data[
'Id'] == $hdata[
'Id'] ){
998 $finaloutputElem[
"Amount"] = $hdata[
"Amount"];
999 $finaloutputElem[
"Date"] = $hdata[
"Date"];
1002 $finalOutput[] = $finaloutputElem;
1006 usort( $finalOutput,
"nameSort" );
1011 $finalOutput = $output;
1015 $response[
"status"][
"response"] =
"true";
1016 $response[
"status"][
"code"] =
"000";
1017 $response[
'data']= $finalOutput;
1019 }
catch( Exception $e ) {
1020 $response[
"status"][
"response"] =
"false";
1021 $response[
"status"][
"message"] = $e->getMessage();
1022 $response[
"status"][
"code"] = MP_JX_ERROR_CODE;
1023 $response[
"data"] = array();
1029 function nameSort( $a, $b ) {
1030 return strcmp( $a[
"Name"], $b[
"Name"] );
1033 function bpPmtAdd( $parms ) {
1037 if ($parms[
'moc'] == 1) {
1038 $parms[
'serviceurl'] = $parms[
'mocservice'];
1041 $parms[
'Account'][
'types'] =
"PayFrom";
1042 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
1044 $parms[
'Payment'][
'From'] = $parms[
"passwith"][
"FromId"];
1045 $parms[
'Payment'][
'To'] = $parms[
"passwith"][
"ToId"];
1046 $parms[
'Payment'][
'Amount'] = $parms[
"passwith"][
"Amount"];
1048 if( isset($parms[
'passwith'][
'Freq']) ) {
1049 $parms[
'Payment'][
'Freq'] = $parms[
"passwith"][
"Freq"];
1051 if( isset($parms[
'passwith'][
'PayNum']) ) {
1052 $parms[
'Payment'][
'PayNum'] = $parms[
"passwith"][
"PayNum"];
1054 if( isset($parms[
'passwith'][
'EndDate']) ) {
1055 $parms[
'Payment'][
'EndDate'] = $parms[
"passwith"][
"EndDate"];
1057 if( isset($parms[
'passwith'][
'Duration']) ) {
1058 $parms[
'Payment'][
'Duration'] = $parms[
"passwith"][
"Duration"];
1062 $parms[
'Payment'][
'Rush'] =
"";
1064 if (strcmp($parms[
'datemodel'],
"payeeprocess") == 0 ){
1065 $paymentDate = date(
"Y-m-d", strtotime( $parms[
"passwith"][
"Date"] ) );
1068 $processDate = date(
"Y-m-d", strtotime( $parms[
"passwith"][
"Date"] ) );
1069 $paymentDate = getEstArrivalDate( $parms, $processDate );
1070 if (empty($paymentDate)){
1071 $response[
"status"][
"message"]=
'Error Calculating Deliver By Date';
1072 throw new Exception($response[
'status'][
'message']);
1076 $parms[
'Payment'][
'Date'] = $paymentDate;
1079 $response = jxAddPayment( $parms );
1081 if ($response[
"status"][
"response"]==
'false'){
1082 if (empty($response[
"status"][
"message"])){
1083 $response[
"status"][
"message"]=
'Submit Payment Failed';
1085 throw new Exception($response[
'status'][
'message']);
1088 $outputElem = array();
1089 $outputElem[
"Confirmation"] = $response[
"data"][
"PmtId"];
1093 $response[
"status"][
"code"] =
"000";
1096 $response[
'data'] = $outputElem;
1099 }
catch (Exception $e) {
1100 $response[
"status"][
"response"] =
"false";
1101 $response[
"status"][
"message"] = $e->getMessage();
1102 $response[
"status"][
"code"] = MP_JX_ERROR_CODE;
1103 $response[
"data"] = array();
1108 function bpTrnAdd( $parms ) {
1111 if ($parms[
'moc'] == 1) {
1112 $parms[
'serviceurl'] = $parms[
'mocservice'];
1115 $parms[
'Account'][
'types'] =
"PayFrom";
1116 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
1118 $parms[
'Payment'][
'From'] = $parms[
"passwith"][
"FromId"];
1119 $parms[
'Payment'][
'To'] = $parms[
"passwith"][
"ToId"];
1120 $parms[
'Payment'][
'Amount'] = $parms[
"passwith"][
"Amount"];
1121 $parms[
'Payment'][
'Date'] = $parms[
"passwith"][
"Date"];
1123 if( isset($parms[
'passwith'][
'Freq']) ) {
1124 $parms[
'Payment'][
'Freq'] = $parms[
"passwith"][
"Freq"];
1126 if( isset($parms[
'passwith'][
'PayNum']) ) {
1127 $parms[
'Payment'][
'PayNum'] = $parms[
"passwith"][
"PayNum"];
1129 if( isset($parms[
'passwith'][
'EndDate']) ) {
1130 $parms[
'Payment'][
'EndDate'] = $parms[
"passwith"][
"EndDate"];
1132 if( isset($parms[
'passwith'][
'Duration']) ) {
1133 $parms[
'Payment'][
'Duration'] = $parms[
"passwith"][
"Duration"];
1136 $response= jxAddPayment( $parms );
1138 if ($response[
"status"][
"response"]==
'false'){
1139 if (empty($response[
"status"][
"message"])){
1140 $response[
"status"][
"message"]=
'Submit Transfer Failed';
1142 throw new Exception($response[
'status'][
'message']);
1145 $outputElem = array();
1146 $outputElem[
"Confirmation"] = $response[
"data"][
"PmtId"];
1149 $response[
"status"][
"code"] =
"000";
1151 # normalize the name for scalability 1152 $response[
'data']= $outputElem;
1154 }
catch (Exception $e) {
1155 $response[
"status"][
"response"] =
"false";
1156 $response[
"status"][
"message"] = $e->getMessage();
1157 $response[
"status"][
"code"] = MP_JX_ERROR_CODE;
1158 $response[
"data"] = array();
1163 function bpPmtEdit( $parms ) {
1165 if ($parms[
'moc'] == 1) {
1166 $parms[
'serviceurl'] = $parms[
'mocservice'];
1169 $parms[
'Account'][
'types'] =
"PayFrom";
1170 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
1172 $parms[
'Payment'][
'Id'] = $parms[
"passwith"][
"TxnId"];
1173 $parms[
'Payment'][
'From'] = $parms[
"passwith"][
"FromId"];
1174 $parms[
'Payment'][
'Amount'] = $parms[
"passwith"][
"Amount"];
1176 if( isset($parms[
'passwith'][
'Freq']) ) {
1177 $parms[
'Payment'][
'Freq'] = $parms[
"passwith"][
"Freq"];
1179 if( isset($parms[
'passwith'][
'PayNum']) ) {
1180 $parms[
'Payment'][
'PayNum'] = $parms[
"passwith"][
"PayNum"];
1182 if( isset($parms[
'passwith'][
'EndDate']) ) {
1183 $parms[
'Payment'][
'EndDate'] = $parms[
"passwith"][
"EndDate"];
1185 if( isset($parms[
'passwith'][
'Duration']) ) {
1186 $parms[
'Payment'][
'Duration'] = $parms[
"passwith"][
"Duration"];
1190 $parms[
'Payment'][
'Rush'] =
"";
1192 if (strcmp($parms[
'datemodel'],
"payeeprocess") == 0 ){
1193 $paymentDate = date(
"Y-m-d", strtotime( $parms[
"passwith"][
"Date"] ) );
1196 $processDate = date(
"Y-m-d", strtotime( $parms[
"passwith"][
"Date"] ) );
1197 $paymentDate = getEstArrivalDate( $parms, $processDate );
1198 if (empty($paymentDate)){
1199 $response[
"status"][
"message"]=
'Error Calculating Deliver By Date';
1200 throw new Exception($response[
'status'][
'message']);
1203 $parms[
'Payment'][
'Date'] = $paymentDate;
1205 $respPaySchedPmtInq = jxBilPaySchedPmtInq( $parms );
1207 if ($respPaySchedPmtInq[
"status"][
"response"] ==
'false') {
1208 if ( empty($respPaySchedPmtInq[
"status"][
"message"]) ) {
1209 $respPaySchedPmtInq[
"status"][
"message"] =
'Edit Payment (Payment Inquiry) Failed.';
1211 throw new Exception($respPaySchedPmtInq[
'status'][
'message']);
1214 $ActIntentKey = $respPaySchedPmtInq[
"data"][
"ActIntentKey"];
1217 $response = jxEditPayment( $parms , $ActIntentKey);
1218 $outputElem = array();
1219 if ( $response[
"status"][
"response"]==
'false' ) {
1220 if ( empty ( $response[
"status"][
"message"] ) )
1221 $response[
"status"][
"message"] =
'Edit Payment Failed';
1222 throw new Exception($response[
'status'][
'message']);
1226 $outputElem[
"Confirmation"] =
"";
1227 $outputElem[
"EstimatedArrival"] =
"";
1230 $response[
"status"][
"code"] =
"000";
1231 $response[
"status"][
"message"] =
"true";
1232 #normalize the name for scalability 1233 $response[
'data']= $outputElem;
1234 $return = $response;
1236 }
catch (Exception $e) {
1237 $return = array(
'status'=>array(
'response'=>
'false',
'message'=>$e->getMessage(),
'code'=>MP_JX_ERROR_CODE),
'data'=>array(
'Token'=>
'0'));
1238 $return[
'data']= $outputElem;
1243 function BpSchedPmtInfo( $parms ) {
1246 if ($parms[
'moc'] == 1) {
1247 $parms[
'serviceurl'] = $parms[
'mocservice'];
1249 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
1250 $parms[
'Payment'][
'Id'] = $parms[
"passwith"][
"TxnId"];
1251 $response = jxBilPaySchedPmtInq( $parms );
1253 if ($response[
"status"][
"response"] ==
'false') {
1254 if ( empty($response[
"status"][
"message"]) ) {
1255 $response[
"status"][
"message"] =
'Scheduled Payment Inquiry Failed.';
1257 throw new Exception($respPaySchedPmtInq[
'status'][
'message']);
1259 if ( isset( $response[
"data"][
'BilPaySchedPmtInfo'] ) ) {
1260 $value = $response[
"data"][
'BilPaySchedPmtInfo'];
1262 $outputElem = array();
1263 $outputElem[
"TxnId"] = $parms[
"passwith"][
"TxnId"];
1264 if (strcmp($value[
"PmtIntentType"],
"PayBill") == 0 ){
1265 $payTypeValue =
"Payment";
1268 $payTypeValue =
"Transfer";
1271 $outputElem[
"Type"] = $payTypeValue;
1272 $outputElem[
"ToId"] = $value[
"PmtPayeeInfo"][
"PayeeId"];
1273 $outputElem[
"ToName"] = $value[
"PmtPayeeInfo"][
"PayeeName"];
1274 $outputElem[
"FromId"] = $value[
"PmtPayFromAcctInfo"][
"PayFromId"];
1275 $outputElem[
"Amount"] = number_format( $value[
"PmtAmt"], 2 );
1277 $outputElem[
"Date"] = $value[
"PmtProcDt"];
1280 if ( isset( $value[
"RecurPmtInfo"] ) ) {
1281 $outputElem[
"StartDate"] = $value[
"RecurPmtInfo"][
"StartPmtProcDt"];
1282 $outputElem[
"Frequency"] = $value[
"RecurPmtInfo"][
"PmtFreqUnits"];
1283 if ( isset ( $value[
"RecurPmtInfo"][
"PmtDayOfWeek"] ) ) {
1284 $outputElem[
"PmtDayWeek"] = $value[
"RecurPmtInfo"][
"PmtDayOfWeek"];
1286 $outputElem[
"PmtDayWeek"] =
"";
1288 if ( isset ( $value[
"RecurPmtInfo"][
"PmtSerExpDt"] ) ) {
1289 $outputElem[
"PmtExpDate"] = $value[
"RecurPmtInfo"][
"PmtSerExpDt"];
1291 $outputElem[
"PmtExpDate"] =
"";
1293 if ( isset ( $value[
"RecurPmtInfo"][
"PmtDayInfoArray"] ) ){
1294 $outputElem[
"PmtDayMonth"] = $value[
"RecurPmtInfo"][
"PmtDayInfoArray"][
"PmtDayInfo"][
"PmtDayOfMonth"];
1296 $outputElem[
"PmtDayMonth"] =
"";
1298 if ( isset ( $value[
"RecurPmtInfo"][
"PmtOccur"] ) ) {
1299 $outputElem[
"PmtOccur"] = $value[
"RecurPmtInfo"][
"PmtOccur"];
1301 $outputElem[
"PmtOccur"] =
"";
1303 $outputElem[
"PmtSerFinite"] = $value[
"RecurPmtInfo"][
"PmtSerFinite"];
1307 $outputElem[
"StartDate"] =
"";
1308 $outputElem[
"Frequency"] =
"";
1309 $outputElem[
"PmtDayWeek"] =
"";
1310 $outputElem[
"PmtExpDate"] =
"";
1311 $outputElem[
"PmtDayMonth"] =
"";
1312 $outputElem[
"PmtOccur"] =
"";
1313 $outputElem[
"PmtSerFinite"] =
"";
1316 $output[] = $outputElem;
1321 $response[
"status"][
"code"] =
"000";
1323 #normalize the name for scalability 1324 $response[
'data']= $outputElem;
1325 $return = $response;
1327 }
catch (Exception $e) {
1328 $return = array(
'status'=>array(
'response'=>
'false',
'message'=>$e->getMessage(),
'code'=>MP_JX_ERROR_CODE),
'data'=>array(
'Token'=>
'0'));
1329 $return[
'data']= $outputElem;
1334 function bpPmtStop( $parms ) {
1336 if ($parms[
'moc'] == 1) {
1337 $parms[
'serviceurl'] = $parms[
'mocservice'];
1340 $parms[
'Account'][
'types'] =
"PayFrom";
1341 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
1342 $parms[
'Payment'][
'Id'] = $parms[
"passwith"][
"TxnId"];
1344 $respPaySchedPmtInq = jxBilPaySchedPmtInq( $parms );
1346 if ($respPaySchedPmtInq[
"status"][
"response"] ==
'false') {
1347 if ( empty($respPaySchedPmtInq[
"status"][
"message"]) ) {
1348 $respPaySchedPmtInq[
"status"][
"message"] =
'Stop Payment (Payment Inquiry) Failed.';
1350 throw new Exception($respPaySchedPmtInq[
'status'][
'message']);
1353 $ActIntentKey = $respPaySchedPmtInq[
"data"][
"ActIntentKey"];
1356 $responseStop = jxStopPayment($parms,$ActIntentKey);
1358 if ($responseStop[
"status"][
"response"] ==
'false') {
1359 if (empty($responseStop[
"status"][
"message"])) {
1360 $responseStop[
"status"][
"message"] =
'Stop Payment Failed';
1362 throw new Exception($responseStop[
'status'][
'message']);
1365 $response[
'data'] = array();
1366 $response[
"status"][
"code"] =
"000";
1367 $response[
"status"][
"response"] =
"true";
1370 $response[
'data'][
"StopResult"] = ($responseStop[
'data'][
'RsStat'] ==
"Success" ?
"1" :
"0");
1372 $return = $response;
1374 }
catch (Exception $e) {
1375 $return = array(
'status'=>array(
'response'=>
'false',
'message'=>$e->getMessage(),
'code'=>MP_JX_ERROR_CODE),
'data'=>array(
'Token'=>
'0'));
1380 function BpGetPayeeInfo($parms){
1382 if ($parms[
'moc'] == 1) {
1383 $parms[
'serviceurl'] = $parms[
'mocservice'];
1385 $parms[
'Account'][
'types'] =
"PayFrom";
1386 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
1387 $parms[
'PayeeId']=$parms[
"passwith"][
"PayeeId"];
1389 $response = jxBilPayPayeeInq($parms ,
"");
1391 if( $response[
"status"][
"response"] ==
'false' ) {
1392 if ( empty($response[
"status"][
"message"]) )
1393 $response[
"status"][
"message"] =
'Get Payee Info Failed';
1396 if ( $response[
"data"][
"PayeeStat"] !=
"Act" ) {
1397 $response[
"status"][
"message"] =
"Inactive Payee, you cannot edit at this time.";
1398 $response[
"status"][
"response"] =
"false";
1399 throw new Exception($response[
'status'][
'message']);
1403 $outputElem = array();
1404 $outputElem[
"payeeId"] = $response[
"data"][
"PayeeId"];
1405 $outputElem[
"payeeName"] = $response[
"data"][
"BilPayPayeeInfo"][
"PayeeName"];
1406 $outputElem[
"nickName"] = $response[
"data"][
"BilPayPayeeInfo"][
"PayeeNickname"];
1407 $payeeClass = $response[
"data"][
"BilPayPayeeInfo"][
"PayeeClsf"];
1409 $outputElem[
"addr1"] = $response[
"data"][
"BilPayPayeeInfo"][
"PayeeAddrInfoArray"][
"PayeeAddrInfo"][
"PayeeAddr"][
"StreetAddr1"];
1410 $outputElem[
"addr2"] = $response[
"data"][
"BilPayPayeeInfo"][
"PayeeAddrInfoArray"][
"PayeeAddrInfo"][
"PayeeAddr"][
"StreetAddr2"];
1411 $outputElem[
"city"] = $response[
"data"][
"BilPayPayeeInfo"][
"PayeeAddrInfoArray"][
"PayeeAddrInfo"][
"PayeeAddr"][
"City"];
1412 $outputElem[
"state"] = $response[
"data"][
"BilPayPayeeInfo"][
"PayeeAddrInfoArray"][
"PayeeAddrInfo"][
"PayeeAddr"][
"StateCode"];
1413 $outputElem[
"zip"] = $response[
"data"][
"BilPayPayeeInfo"][
"PayeeAddrInfoArray"][
"PayeeAddrInfo"][
"PayeeAddr"][
"PostalCode"];
1415 if( isset( $response[
"data"][
"BilPayPayeeInfo"][
"PayeeP2PType"] ) && $payeeClass ==
'Indv' ) {
1416 $outputElem[
"p2pType"] = $response[
"data"][
"BilPayPayeeInfo"][
"PayeeP2PType"];
1418 $outputElem[
"p2pType"] =
"";
1421 $p2pType = $outputElem[
"p2pType"];
1424 if ( !empty($p2pType) ) {
1426 if( $p2pType ==
"SMS" ) {
1428 if( isset( $response[
"data"][
"BilPayPayeeInfo"][
"PayeePhoneArray"] ) ) {
1429 foreach( $response[
"data"][
"BilPayPayeeInfo"][
"PayeePhoneArray"] as $key => $value ) {
1431 if( count($value) == count($value, COUNT_RECURSIVE) ) {
1433 if($value[
"PhoneType"] ==
'SMS'){
1434 $outputElem[
"phone"] = $value[
"PhoneNum"];
1438 foreach( $value as $pkey => $pvalue ) {
1439 if( $pvalue[
"PhoneType"] ==
'SMS' ) {
1440 $outputElem[
"phone"] = $pvalue[
"PhoneNum"];
1448 if( isset( $response[
"data"][
"BilPayPayeeInfo"][
"PayeeEmailArray"] ) ) {
1449 foreach($response[
"data"][
"BilPayPayeeInfo"][
"PayeeEmailArray"] as $key => $value){
1451 if(count($value) == count($value, COUNT_RECURSIVE)){
1453 $outputElem[
"email"] = $value[
"EmailAddr"];
1456 foreach($value as $ekey => $evalue){
1457 $outputElem[
"email"] = $evalue[
"EmailAddr"];
1467 if ( isset ( $response[
"data"][
"BilPayPayeeInfo"][
"PayeePhoneArray"] ) ) {
1468 foreach( $response[
"data"][
"BilPayPayeeInfo"][
"PayeePhoneArray"] as $key => $value ) {
1470 if( count($value) == count($value, COUNT_RECURSIVE) ) {
1472 if($value[
"PhoneType"] ==
'Work'){
1473 $outputElem[
"phone"] = $value[
"PhoneNum"];
1477 foreach( $value as $pkey => $pvalue ) {
1478 if( $pvalue[
"PhoneType"] ==
'Work' ) {
1479 $outputElem[
"phone"] = $pvalue[
"PhoneNum"];
1485 $outputElem[
"phone"] =
"";
1489 if ( isset ( $response[
"data"][
"BilPayPayeeInfo"][
"PayeeEmailArray"] ) ) {
1490 foreach($response[
"data"][
"BilPayPayeeInfo"][
"PayeeEmailArray"] as $key => $value){
1492 if(count($value) == count($value, COUNT_RECURSIVE)){
1494 $outputElem[
"email"] = $value[
"EmailAddr"];
1497 foreach($value as $ekey => $evalue){
1498 $outputElem[
"email"] = $evalue[
"EmailAddr"];
1503 $outputElem[
"email"] =
"";
1508 if(isset( $response[
"data"][
"BilPayPayeeInfo"][
"PayeeFIAcctInfo"][
"FIRtId"])){
1509 $outputElem[
"routingNum"] = $response[
"data"][
"BilPayPayeeInfo"][
"PayeeFIAcctInfo"][
"FIRtId"];
1511 $outputElem[
"routingNum"] =
"";
1513 if(isset( $response[
"data"][
"BilPayPayeeInfo"][
"PayeeFIAcctInfo"][
"FIAcctType"])){
1514 $outputElem[
"accountType"] = $response[
"data"][
"BilPayPayeeInfo"][
"PayeeFIAcctInfo"][
"FIAcctType"];
1516 $outputElem[
"accountType"] =
"";
1518 if( isset( $response[
"data"][
"BilPayPayeeInfo"][
"SubMerAcctId"] ) && $payeeClass ==
'Comp' ) {
1519 $outputElem[
"accountNum"] = $response[
"data"][
"BilPayPayeeInfo"][
"SubMerAcctId"];
1520 }
else if (isset( $response[
"data"][
"BilPayPayeeInfo"][
"PayeeFIAcctInfo"][
"FIAcctId"] ) && $payeeClass ==
'FinInst' ) {
1521 $outputElem[
"accountNum"] = $response[
"data"][
"BilPayPayeeInfo"][
"PayeeFIAcctInfo"][
"FIAcctId"];
1523 $outputElem[
"accountNum"] =
"";
1526 if( isset( $response[
"data"][
"BilPayPayeeInfo"][
"PayeeEmailSharedSecret"] ) && $payeeClass ==
'Indv' ) {
1527 $outputElem[
"secret"] = $response[
"data"][
"BilPayPayeeInfo"][
"PayeeEmailSharedSecret"];
1529 $outputElem[
"secret"] =
"";
1535 $outputElem[
"subName"] = $response[
"data"][
"BilPayPayeeInfo"][
"SubMerPayerName"];
1536 $outputElem[
"accountId"] = $response[
"data"][
"BilPayPayeeInfo"][
"PayFromAcctInfo"][
"PayFromId"];
1538 $outputElem[
"payeeType"] = $payeeClass;
1542 foreach( $outputElem as $k => $v ) {
1544 $outputElem[$k] =
"";
1548 $output[] = $outputElem;
1551 $response[
"status"][
"response"] =
"true";
1552 $response[
"status"][
"code"] =
"000";
1553 $response[
'data']= $output;
1557 }
catch (Exception $e) {
1558 $return=array(
'status'=>array(
'response'=>
'false',
'message'=>$e->getMessage()),
'code'=>MP_JX_ERROR_CODE,
'data'=>array());
1564 function bpGetPaymentDates( $parms ) {
1566 if ($parms[
'moc'] == 1) {
1567 $parms[
'serviceurl'] = $parms[
'mocservice'];
1569 $parms[
'Account'][
'types'] =
"PayFrom";
1570 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
1571 $parms[
'PayeeId']=$parms[
"passwith"][
"PayeeId"];
1573 $response = jxBilPayPayeeInq($parms ,
"");
1575 if ($response[
'status'][
'response'] !=
'true') {
1576 throw new Exception($response[
'status'][
'message']);
1579 $responseBilPayChanInq = jxBilPayChanInq($parms);
1580 if ($responseBilPayChanInq[
'status'][
'response'] !=
'true') {
1581 throw new Exception($responseBilPayChanInq[
'status'][
'message']);
1584 $cutOfftime = $responseBilPayChanInq[
"data"][
"BilPayChanInfo"][
"PmtCutoffTime"];
1585 $defaultTZ = date_default_timezone_get(); # so we can put it back
1586 date_default_timezone_set(
'UTC');
1589 $payee = $response[
"data"];
1590 $firstpay = $payee[
"FirstAvlProcDt"];
1592 $nextpay =
new DateTime($firstpay);
1593 $nextpay->add(
new DateInterval(
'P1D'));
1594 $nextpay = $nextpay->format(
'Y-m-d') .
"\n";
1595 $lead = $payee[
"EstArvDay"];
1597 if($now > strtotime( $cutOfftime )) {
1598 $Start = strtotime( $nextpay );
1600 $Start = strtotime( $firstpay );
1603 $End = $Start + (90 * 24 * 60 * 60);
1605 for ($i = $Start; $i <= $End; $i += 86400) {
1607 $item = gmdate(
'Y-m-d',$i);
1608 $datelist[] = $item;
1611 foreach( $responseBilPayChanInq[
"data"][
"BilPayChanInfo"][
"NonProcDtInfoArray"][
"NonProcDtInfo"] as $key => $value ) {
1612 $outputElem = $value[
"NonProcDt"];
1613 $output[] = $outputElem;
1616 $result = array_diff($datelist, $output);
1617 array_splice($result,count($result),0);
1618 $newDateList = array();
1619 if (strtoupper($parms[
'datemodel']) ==
'DUE') {
1620 $resultcount = count($result) - $lead;
1623 $resultcount = count($result);
1626 for ($i = 0; $i < $resultcount;$i++){
1628 $item[
'Proc'] = $result[$i];
1629 if (strtoupper($parms[
'datemodel']) ==
'DUE') {
1631 $item[
'Due'] = $result[$ix];
1633 $newDateList[] = $item;
1636 $return = array(
'status'=>array(
'response'=>
'true',
'message'=>
"",
'code'=>
"000"),
'data'=>
"");
1637 $return[
'data'][
'EarliestPay'] = $firstpay;
1638 $return[
'data'][
'NextPay'] = $nextpay;
1639 $return[
'data'][
'Cutoff'] = $cutOfftime;
1640 $return[
'data'][
'LeadDays'] = $lead;
1641 # build RushOptions list like this: 1643 $return[
'data'][
'RushOptions'] = array();
1644 $return[
'data'][
'PaymentDates'] = $newDateList;
1646 }
catch (Exception $e) {
1647 $return=array(
'status'=>array(
'response'=>
'false',
'message'=>$e->getMessage()),
'code'=>MP_JX_ERROR_CODE,
'data'=>array());
1654 function getEstArrivalDate( $parms, $processDate ) {
1656 if ($parms[
'moc'] == 1) {
1657 $parms[
'serviceurl'] = $parms[
'mocservice'];
1659 $parms[
'Account'][
'types'] =
"PayFrom";
1660 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
1661 $parms[
'PayeeId']=$parms[
"passwith"][
"ToId"];
1663 $response = jxBilPayPayeeInq($parms ,
"");
1665 if ($response[
'status'][
'response'] !=
'true') {
1666 throw new Exception($response[
'status'][
'message']);
1669 $responseBilPayChanInq = jxBilPayChanInq($parms);
1670 if ($responseBilPayChanInq[
'status'][
'response'] !=
'true') {
1671 throw new Exception($responseBilPayChanInq[
'status'][
'message']);
1674 $cutOfftime = $responseBilPayChanInq[
"data"][
"BilPayChanInfo"][
"PmtCutoffTime"];
1675 $defaultTZ = date_default_timezone_get(); # so we can put it back
1676 date_default_timezone_set(
'UTC');
1679 $payee = $response[
"data"];
1680 $firstpay = $payee[
"FirstAvlProcDt"];
1682 $nextpay =
new DateTime($firstpay);
1683 $nextpay->add(
new DateInterval(
'P1D'));
1684 $nextpay = $nextpay->format(
'Y-m-d') .
"\n";
1685 $lead = $payee[
"EstArvDay"];
1687 if($now > strtotime( $cutOfftime )) {
1688 $Start = strtotime( $nextpay );
1690 $Start = strtotime( $firstpay );
1695 $End = $Start + (90 * 24 * 60 * 60);
1697 for ($i = $Start; $i <= $End; $i += 86400) {
1699 $item = gmdate(
'Y-m-d',$i);
1700 $datelist[] = $item;
1703 foreach( $responseBilPayChanInq[
"data"][
"BilPayChanInfo"][
"NonProcDtInfoArray"][
"NonProcDtInfo"] as $key => $value ) {
1704 $outputElem = $value[
"NonProcDt"];
1705 $output[] = $outputElem;
1708 $result = array_diff($datelist, $output);
1709 array_splice($result,count($result),0);
1710 $newDateList = array();
1711 if (strtoupper($parms[
'datemodel']) ==
'DUE') {
1712 $resultcount = count($result) - $lead;
1715 $resultcount = count($result);
1717 for ($i = 0; $i < $resultcount;$i++){
1719 $item[
'Proc'] = $result[$i];
1720 if (strcmp($item[
'Proc'], $processDate) == 0 ){
1721 $payDateField =
'PmtProcDt';
1723 $itemDue = $result[$ix];
1739 }
catch (Exception $e) {
1746 function bpGetTerms($dbh, $HB_ENV, $parms) {
1749 $return[
'status'][
'response'] =
'true';
1750 $return[
'status'][
'code'] =
'000';
1751 $return[
'data'] = array(
'Terms' =>
'');
1753 $termsAry = Get_NoticeInfo($dbh, $HB_ENV, $HB_ENV[
'MC'],
"D",
"billpayTerms",
true);
1755 if ($termsAry[
"status"][
"code"] ==
"000" && HCU_array_key_exists(
'0', $termsAry[
'notice'])) {
1757 if ($termsAry[
"notice"][0][
"notice_id"]) {
1759 $return = array(
'status'=>array(
'response'=>
'true',
'message'=>
'success',
'code'=>
"000"),
'data'=>array(
'Terms'=>$termsAry[
"notice"][0][
"notice_text"]));
1764 }
catch (Exception $e) {
1765 $return = array(
'status'=>array(
'response'=>
'false',
'message'=>$e->getMessage()),
'code'=>MP_JX_ERROR_CODE,
'data'=>array());
1770 function bpGetRushOptions( $parms ) {
1772 # JXChange: Not done. 1773 $return=array(
'status'=>array(
'response'=>
'true',
'message'=>
'success',
"code"=>
"000"),
'data'=>array());
1774 }
catch (Exception $e) {
1775 $return=array(
'status'=>array(
'response'=>
'false',
'message'=>$e->getMessage()),
'code'=>MP_JX_ERROR_CODE,
'data'=>array());
1780 function bpAcceptTerms( $parms ) {
1782 # IPAYPBS has no Accept Terms functionality - just return empty success 1783 $return=array(
'status'=>array(
'response'=>
'true',
'message'=>
'success',
"code"=>
"000"),
'data'=>array());
1784 }
catch (Exception $e) {
1785 $return=array(
'status'=>array(
'response'=>
'false',
'message'=>$e->getMessage()),
'code'=>MP_JX_ERROR_CODE,
'data'=>array());
1790 function bpGetFeatureList($parms) {
1792 # Need to decide what the data looks like here -- string list of available features 1793 # maybe something out of trusteddetail (which comes to this function in $parms) 1794 # to allow customizing by cu 1795 $extraOptions = htmlentities($parms[
'ExtraOptions']);
1797 $return=array(
'status'=>array(
'response'=>
'true',
'message'=>
'success',
"code"=>
"000"),
1798 'data'=>array(
"extras" => $extraOptions,
'featurelist'=>
""));
1799 }
catch (Exception $e) {
1800 $return=array(
'status'=>array(
'response'=>
'false',
'message'=>$e->getMessage()),
'code'=>MP_PSCU_ERROR_CODE,
'data'=>array());
1805 function schedSort($a, $b) {
1806 $atime = strtotime($a[
'Date']);
1807 $btime = strtotime($b[
'Date']);
1808 if ($atime == $btime) {
1809 if ($a[
'ToName'] == $b[
'ToName']) {
1810 if ( $a[
"TxnId"] == $b[
"TxnId"] ) {
1813 return ($a[
'TxnId'] < $b[
'TxnId']) ? -1 : 1;
1815 return ($a[
'ToName'] < $b[
'ToName']) ? -1 : 1;
1817 return ($atime < $btime) ? -1 : 1;
1820 function histSort($a, $b) {
1821 $atime = strtotime($a[
'Date']);
1822 $btime = strtotime($b[
'Date']);
1823 if ($atime == $btime) {
1824 if ($a[
'ToName'] == $b[
'ToName']) {
1825 if ( $a[
"TxnId"] == $b[
"TxnId"] ) {
1828 return ($a[
'TxnId'] < $b[
'TxnId']) ? -1 : 1;
1830 return ($a[
'ToName'] < $b[
'ToName']) ? -1 : 1;
1832 return ($atime > $btime) ? -1 : 1;
1835 function createSoapHeader ($parms){
1836 $cuid = $parms[
'username'];
1837 $pwd = $parms[
'password'];
1838 $createddate = date(
"Y-m-d H:i:s",time());
1840 $soapString =
"\n <soapenv:Header>\n";
1841 $soapString .=
" <wsse:Security soapenv:mustUnderstand=\"1\" xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" xmlns:wsu=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd\">\n";
1842 $soapString .=
"<wsse:UsernameToken> 1843 <wsse:Username>$cuid</wsse:Username> 1844 <wsse:Password Type=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText\">$pwd</wsse:Password> 1845 <wsu:Created>$createddate</wsu:Created> 1846 </wsse:UsernameToken> 1848 </soapenv:Header>\n";
1853 function createSoapSearchMsgRqHdr ($parms){
1854 $instRtId = $parms[
'InstitutionId'];
1855 $consmName = $parms[
'consumername'];
1856 $consmProduct = $parms[
'consumerproduct'];
1857 $instEnviron = $parms[
'institutionenvironment'];
1858 $jxLogTrackID = getGUID();
1859 $jxVersion = $parms[
"version"];
1860 $validConsmProd = $parms[
'validconsmprod'];
1861 $validConsmName = $parms[
'validconsmname'];
1862 $workFlowcCorrelID = $parms[
'workflowcorrelid'];
1863 $busCorrelID = $parms[
"Token"];
1864 $auditWsID = $parms[
'auditwsid'];
1865 $auditUsrID = $parms[
'auditusrid'];
1866 if (!strlen($auditUsrID) ){
1867 $auditUsrID = $parms[
"environment"][
"Cu"];
1870 $soapString =
"<ns:SrchMsgRqHdr> 1873 <ns:JxVer>$jxVersion</ns:JxVer> 1874 <ns:AuditUsrId>$auditUsrID</ns:AuditUsrId> 1875 <ns:AuditWsId>$auditWsID</ns:AuditWsId> 1877 <ns:ConsumerName>$consmName</ns:ConsumerName> 1879 <ns:ConsumerProd>$consmProduct</ns:ConsumerProd> 1882 <ns:jXLogTrackingId>$jxLogTrackID</ns:jXLogTrackingId> 1885 <ns:InstRtId JHANull=\"true\" Rstr=\"ReadWrite\">$instRtId</ns:InstRtId> 1886 <ns:InstEnv>$instEnviron</ns:InstEnv> 1889 <ns:BusCorrelId>$busCorrelID</ns:BusCorrelId> 1892 <ns:WorkflowCorrelId>$workFlowcCorrelID</ns:WorkflowCorrelId> 1895 <ns:ValidConsmName>$validConsmName</ns:ValidConsmName> 1897 <ns:ValidConsmProd>$validConsmProd</ns:ValidConsmProd> 1899 <!--You may enter ANY elements at this point--> 1901 <ns:MaxRec>1000</ns:MaxRec> 1902 </ns:SrchMsgRqHdr>\n";
1907 function createSoapMsgRqHdr ($parms){
1908 $instRtId = $parms[
'InstitutionId'];
1909 $consmName = $parms[
'consumername'];
1910 $consmProduct = $parms[
'consumerproduct'];
1911 $instEnviron = $parms[
'institutionenvironment'];
1912 $jxLogTrackID = getGUID();
1913 $jxVersion = $parms[
"version"];
1914 $validConsmProd = $parms[
'validconsmprod'];
1915 $validConsmName = $parms[
'validconsmname'];
1916 $workFlowcCorrelID = $parms[
'workflowcorrelid'];
1917 $busCorrelID = $parms[
"Token"];
1918 $auditWsID = $parms[
'auditwsid'];
1919 $auditUsrID = $parms[
'auditusrid'];
1920 if (!strlen($auditUsrID) ){
1921 $auditUsrID = $parms[
"environment"][
"Cu"];
1924 $soapString =
"<ns:MsgRqHdr> 1927 <ns:JxVer>$jxVersion</ns:JxVer> 1928 <ns:AuditUsrId>$auditUsrID</ns:AuditUsrId> 1929 <ns:AuditWsId>$auditWsID</ns:AuditWsId> 1931 <ns:ConsumerName>$consmName</ns:ConsumerName> 1933 <ns:ConsumerProd>$consmProduct</ns:ConsumerProd> 1936 <ns:jXLogTrackingId>$jxLogTrackID</ns:jXLogTrackingId> 1939 <ns:InstRtId JHANull=\"true\" Rstr=\"ReadWrite\">$instRtId</ns:InstRtId> 1940 <ns:InstEnv>$instEnviron</ns:InstEnv> 1943 <ns:BusCorrelId>$busCorrelID</ns:BusCorrelId> 1946 <ns:WorkflowCorrelId>$workFlowcCorrelID</ns:WorkflowCorrelId> 1949 <ns:ValidConsmName>$validConsmName</ns:ValidConsmName> 1951 <ns:ValidConsmProd>$validConsmProd</ns:ValidConsmProd> 1953 <!--You may enter ANY elements at this point--> 1960 <!--You may enter ANY elements at this point--> 1966 function jxBilPayPayeeAdd ($parms){
1971 $reqparms = array(
'InstitutionId'=>1,
1972 'consumername' => 1,
1973 'consumerproduct' => 1,
1974 'institutionenvironment' => 1,
1975 'xmlnamespace' => 1,
1982 $missing = array_diff_key($reqparms,$parms);
1983 if (
sizeof($missing)) {
1984 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
1987 $token = $parms[
'Token'];
1988 $firstName = $parms[
"passwith"][
"firstName"];
1989 $lastName = $parms[
"passwith"][
"lastName"];
1990 $payeeName = $parms[
"passwith"][
"payeeName"];
1991 $addr1 = $parms[
"passwith"][
"addr1"];
1992 $addr2 = $parms[
"passwith"][
"addr2"];
1994 if(!empty($addr2)) {
1995 $addr2string =
"<!--Optional:--> 1996 <ns:StreetAddr2 JHANull=\"?\">$addr2</ns:StreetAddr2>";
1999 $addr2string =
"<!--Optional:--> 2000 <ns:StreetAddr2 JHANull=\"true\"></ns:StreetAddr2>";
2002 $city = $parms[
"passwith"][
"city"];
2003 $state = $parms[
"passwith"][
"state"];
2004 $zip = $parms[
"passwith"][
"zip"];
2005 $phone = $parms[
"passwith"][
"phone"];
2006 $email = $parms[
"passwith"][
"email"];
2007 $subName = $parms[
"passwith"][
"subName"];
2009 $accountId = $parms[
"passwith"][
"accountId"];
2010 $accountName = $parms[
"passwith"][
"accountName"];
2011 $nickname = $parms[
"passwith"][
"nickName"];
2012 $subId = $parms[
"passwith"][
"subId"];
2014 $accountNum = $parms[
"passwith"][
"accountNum"];
2016 $routingNum = $parms[
"passwith"][
"routingNum"];
2017 $payeeType = $parms[
"passwith"][
"payeeType"];
2018 $accountType = $parms[
"passwith"][
"accountType"];
2019 $p2p = $parms[
"passwith"][
"p2pType"];
2021 if($payeeType ==
"Comp" || $payeeType ==
"Indv"){
2022 $paymentIntent =
"PayBill";
2023 $extAccountInfo =
"";
2025 $paymentIntent =
"XferToSubFinInst";
2026 $extAccountInfo =
"<!--Optional:--> 2027 <ns:PayeeFIAcctInfo> 2028 <ns:FIRtId JHANull=\"?\" Rstr=\"?\">$routingNum</ns:FIRtId> 2029 <ns:FIAcctId JHANull=\"?\" Rstr=\"?\">$accountNum</ns:FIAcctId> 2030 <ns:FIAcctType JHANull=\"?\" Rstr=\"?\">$accountType</ns:FIAcctType> 2031 </ns:PayeeFIAcctInfo>";
2035 if ( !empty($p2p) ) {
2037 if ( $p2p ==
"SMS" ) {
2039 $phoneArray =
"<ns:PayeePhoneArray> 2040 <!--Zero or more repetitions:--> 2043 <ns:PhoneNum JHANull=\"?\" Rstr=\"?\" SrchType=\"?\">$phone</ns:PhoneNum> 2045 <ns:PhoneType JHANull=\"?\" Rstr=\"?\">$phoneType</ns:PhoneType> 2050 </ns:PayeePhoneArray>";
2051 $emailArray =
"<ns:PayeeEmailArray />";
2054 $emailType =
"Prim";
2055 $phoneArray =
"<ns:PayeePhoneArray />";
2056 $emailArray =
" <ns:PayeeEmailArray> 2057 <!--Zero or more repetitions:--> 2060 <ns:EmailAddr JHANull=\"?\" Rstr=\"?\" SrchType=\"?\">$email</ns:EmailAddr> 2062 <ns:EmailType JHANull=\"?\" Rstr=\"?\">$emailType</ns:EmailType> 2065 </ns:PayeeEmailArray>";
2069 $phoneType =
"Work";
2070 $phoneArray =
"<ns:PayeePhoneArray> 2071 <!--Zero or more repetitions:--> 2074 <ns:PhoneNum JHANull=\"?\" Rstr=\"?\" SrchType=\"?\">$phone</ns:PhoneNum> 2076 <ns:PhoneType JHANull=\"?\" Rstr=\"?\">$phoneType</ns:PhoneType> 2081 </ns:PayeePhoneArray>";
2082 $emailType =
"Prim";
2083 $emailArray =
" <ns:PayeeEmailArray> 2084 <!--Zero or more repetitions:--> 2087 <ns:EmailAddr JHANull=\"?\" Rstr=\"?\" SrchType=\"?\">$email</ns:EmailAddr> 2089 <ns:EmailType JHANull=\"?\" Rstr=\"?\">$emailType</ns:EmailType> 2092 </ns:PayeeEmailArray>";
2095 $secret = $parms[
"passwith"][
"secret"];
2097 $product = $parms[
'product'];
2098 $soapHeader = createSoapHeader($parms);
2099 $soapMsgHdr = createSoapMsgRqHdr($parms);
2101 $soapString =
"<soapenv:Envelope xmlns:ns=\"http://jackhenry.com/jxchange/TPG/2008\" xmlns:oas=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">";
2102 $soapString .= $soapHeader;
2103 $soapString .=
" <soapenv:Body> 2104 <ns:BilPayPayeeAdd>";
2105 $soapString .= $soapMsgHdr;
2106 $soapString .=
"<!--Optional:--> 2107 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 2108 <ns:SubId JHANull=\"?\">$subId</ns:SubId> 2110 <ns:BilPayPayeeInfo> 2112 <ns:PayeeName JHANull=\"?\" Rstr=\"?\" SrchType=\"?\">$payeeName</ns:PayeeName> 2114 <ns:PayeeNickname JHANull=\"?\">$nickname</ns:PayeeNickname> 2116 <ns:PayeeAddrInfoArray> 2117 <!--Zero or more repetitions:--> 2120 <ns:PayeeAddrId JHANull=\"?\">?</ns:PayeeAddrId> 2124 <ns:StreetAddr1 JHANull=\"?\" Rstr=\"?\">$addr1</ns:StreetAddr1> 2127 <ns:City JHANull=\"?\" Rstr=\"?\">$city</ns:City> 2129 <ns:StateProv JHANull=\"?\" Rstr=\"?\">?</ns:StateProv> 2131 <ns:StateCode JHANull=\"?\" Rstr=\"?\">$state</ns:StateCode> 2133 <ns:PostalCode JHANull=\"?\" Rstr=\"?\" SrchType=\"?\">$zip</ns:PostalCode> 2135 <ns:DlvryPt JHANull=\"?\" Rstr=\"?\">?</ns:DlvryPt> 2137 <ns:Cntry JHANull=\"?\" Rstr=\"?\">?</ns:Cntry> 2139 <ns:CntryType JHANull=\"?\" Rstr=\"?\">?</ns:CntryType> 2142 <ns:PayeeAddrType JHANull=\"?\">Prim</ns:PayeeAddrType> 2145 <!--You may enter ANY elements at this point--> 2147 </ns:PayeeAddrInfoArray> 2152 <ns:PayeeEmailSharedSecret JHANull=\"?\">$secret</ns:PayeeEmailSharedSecret> 2154 <ns:PayeeClsf JHANull=\"?\">$payeeType</ns:PayeeClsf> 2157 <ns:SubMerAcctId JHANull=\"?\">$accountNum</ns:SubMerAcctId> 2159 <ns:SubMerPayerName JHANull=\"?\">$subName</ns:SubMerPayerName> 2161 <ns:PayeeCatName JHANull=\"?\">?</ns:PayeeCatName> 2163 <ns:PayFromAcctInfo> 2165 <ns:PayFromId JHANull=\"?\" Rstr=\"?\">$accountId</ns:PayFromId> 2167 <ns:PayFromAcctId JHANull=\"?\" Rstr=\"?\">?</ns:PayFromAcctId> 2169 <ns:PayFromAcctType JHANull=\"?\" Rstr=\"?\">?</ns:PayFromAcctType> 2171 <ns:PayFromAcctName JHANull=\"?\" Rstr=\"?\">$accountName</ns:PayFromAcctName> 2173 <ns:PayFromAcctDft JHANull=\"?\" Rstr=\"?\">?</ns:PayFromAcctDft> 2175 <!--You may enter ANY elements at this point--> 2176 </ns:PayFromAcctInfo> 2179 <!--You may enter ANY elements at this point--> 2185 <ns:ElecBilPayeeType>?</ns:ElecBilPayeeType> 2187 <ns:ElecBilAcctErrExist>?</ns:ElecBilAcctErrExist> 2190 <ns:PmtIntentType JHANull=\"?\" Rstr=\"?\">$paymentIntent</ns:PmtIntentType> 2193 <ns:PayeeP2PType JHANull=\"?\">$p2p</ns:PayeeP2PType> 2195 </ns:BilPayPayeeInfo> 2196 </ns:BilPayPayeeAdd> 2198 </soapenv:Envelope>";
2199 $soapHeaders = array();
2200 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
2201 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPayPayeeAdd\"";
2202 $response = embcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
2204 if ( $parms[
"logging"] ==
"enabled" ) {
2205 $logParms = $parms[
"environment"];
2206 $logParms[
"token"] = $parms[
'Token'];
2208 $logParms[
"txnId"] = $now;
2209 $logParms[
"logPoint"] =
"BilPayPayeeAdd";
2210 $logParms[
"request"] = $soapString;
2211 $logParms[
"reply"] = $response;
2212 LogActivity( $logParms );
2215 $xmlreturn = hcuGetJXXMLResponseAll ($response,
'BilPayPayeeAddResponse',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
2217 if (!is_array($xmlreturn)) {
2218 throw new Exception(
"BilPayPayeeAdd Invalid XML Response");
2221 if ($xmlreturn[
"status"][
"response"] !=
'true' ) {
2223 throw new Exception(
"AddPayee Failed. {$xmlreturn['faultcode']} {$xmlreturn['faultstring']}");
2226 $return[
"data"] = $xmlreturn[
"data"];
2227 $return[
"status"][
"response"]=
'true';
2230 $cacheType = CACHE_KEY_BILPAYPAYEESRCH;
2231 DeleteCache( $parms[
"environment"][
"dbConn"],
2232 $parms[
"environment"][
"memberId"],
2234 $parms[
"environment"][
"Cu"],
2239 $return[
"status"][
"message"] =
'Success';
2241 }
catch ( Exception $e ){
2242 $return[
"status"][
"response"] =
'false';
2243 $return[
"status"][
"code"] = $e->getCode();
2244 $return[
"status"][
"message"] = $e->getMessage();
2245 $return[
"status"][
"line"] = $e->getLine();
2246 $return[
"data"] = array();
2252 function JxBilPayPayeeMod($parms) {
2254 $reqparms = array(
'InstitutionId'=>1,
2255 'consumername' => 1,
2256 'consumerproduct' => 1,
2257 'institutionenvironment' => 1,
2258 'xmlnamespace' => 1,
2265 $missing = array_diff_key($reqparms,$parms);
2266 if (
sizeof($missing)) {
2267 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
2270 $token = $parms[
'Token'];
2271 $payeeId = $parms[
"passwith"][
"payeeId"];
2272 $firstName = $parms[
"passwith"][
"firstName"];
2273 $lastName = $parms[
"passwith"][
"lastName"];
2274 $payeeName = $parms[
"passwith"][
"payeeName"];
2275 $addr1 = $parms[
"passwith"][
"addr1"];
2276 $addr2 = $parms[
"passwith"][
"addr2"];
2278 if(!empty($addr2)) {
2279 $addr2string =
"<!--Optional:--> 2280 <ns:StreetAddr2 JHANull=\"?\">$addr2</ns:StreetAddr2>";
2283 $addr2string =
"<!--Optional:--> 2284 <ns:StreetAddr2 JHANull=\"true\"></ns:StreetAddr2>";
2286 $city = $parms[
"passwith"][
"city"];
2287 $state = $parms[
"passwith"][
"state"];
2288 $zip = $parms[
"passwith"][
"zip"];
2289 $phone = $parms[
"passwith"][
"phone"];
2290 $email = $parms[
"passwith"][
"email"];
2291 $subName = $parms[
"passwith"][
"subName"];
2293 $accountId = $parms[
"passwith"][
"accountId"];
2294 $accountName = $parms[
"passwith"][
"accountName"];
2295 $nickname = $parms[
"passwith"][
"nickName"];
2296 $subId = $parms[
"passwith"][
"subId"];
2298 $accountNum = $parms[
"passwith"][
"accountNum"];
2300 $routingNum = $parms[
"passwith"][
"routingNum"];
2301 $payeeType = $parms[
"passwith"][
"payeeType"];
2302 $accountType = $parms[
"passwith"][
"accountType"];
2303 $p2p = $parms[
"passwith"][
"p2pType"];
2305 if($payeeType ==
"Comp" || $payeeType ==
"Indv"){
2306 $paymentIntent =
"PayBill";
2307 $extAccountInfo =
"";
2309 $paymentIntent =
"XferToSubFinInst";
2310 $extAccountInfo =
"<!--Optional:--> 2311 <ns:PayeeFIAcctInfo> 2312 <ns:FIRtId JHANull=\"?\" Rstr=\"?\">$routingNum</ns:FIRtId> 2313 <ns:FIAcctId JHANull=\"?\" Rstr=\"?\">$accountNum</ns:FIAcctId> 2314 <ns:FIAcctType JHANull=\"?\" Rstr=\"?\">$accountType</ns:FIAcctType> 2315 </ns:PayeeFIAcctInfo>";
2319 if ( !empty($p2p) ) {
2321 if ( $p2p ==
"SMS" ) {
2323 $phoneArray =
"<ns:PayeePhoneArray> 2324 <!--Zero or more repetitions:--> 2327 <ns:PhoneNum JHANull=\"?\" Rstr=\"?\" SrchType=\"?\">$phone</ns:PhoneNum> 2329 <ns:PhoneType JHANull=\"?\" Rstr=\"?\">$phoneType</ns:PhoneType> 2334 </ns:PayeePhoneArray>";
2335 $emailArray =
"<ns:PayeeEmailArray />";
2338 $emailType =
"Prim";
2339 $phoneArray =
"<ns:PayeePhoneArray />";
2340 $emailArray =
" <ns:PayeeEmailArray> 2341 <!--Zero or more repetitions:--> 2344 <ns:EmailAddr JHANull=\"?\" Rstr=\"?\" SrchType=\"?\">$email</ns:EmailAddr> 2346 <ns:EmailType JHANull=\"?\" Rstr=\"?\">$emailType</ns:EmailType> 2349 </ns:PayeeEmailArray>";
2353 $phoneType =
"Work";
2354 $phoneArray =
"<ns:PayeePhoneArray> 2355 <!--Zero or more repetitions:--> 2358 <ns:PhoneNum JHANull=\"?\" Rstr=\"?\" SrchType=\"?\">$phone</ns:PhoneNum> 2360 <ns:PhoneType JHANull=\"?\" Rstr=\"?\">$phoneType</ns:PhoneType> 2365 </ns:PayeePhoneArray>";
2366 $emailType =
"Prim";
2367 $emailArray =
" <ns:PayeeEmailArray> 2368 <!--Zero or more repetitions:--> 2371 <ns:EmailAddr JHANull=\"?\" Rstr=\"?\" SrchType=\"?\">$email</ns:EmailAddr> 2373 <ns:EmailType JHANull=\"?\" Rstr=\"?\">$emailType</ns:EmailType> 2376 </ns:PayeeEmailArray>";
2380 $secret = $parms[
"passwith"][
"secret"];
2381 $delete = $parms[
"passwith"][
"delete"];
2383 $product = $parms[
'product'];
2384 $soapHeader = createSoapHeader($parms);
2385 $soapMsgHdr = createSoapMsgRqHdr($parms);
2387 $soapString =
"<soapenv:Envelope xmlns:ns=\"http://jackhenry.com/jxchange/TPG/2008\" xmlns:oas=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">";
2388 $soapString .= $soapHeader;
2389 $soapString .=
" <soapenv:Body> 2390 <ns:BilPayPayeeMod>";
2391 $soapString .= $soapMsgHdr;
2392 $soapString .=
"<!--Optional:--> 2393 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 2394 <ns:SubId JHANull=\"?\">$subId</ns:SubId> 2395 <ns:PayeeId JHANull=\"?\">$payeeId</ns:PayeeId> 2397 <ns:BilPayPayeeInfo> 2399 <ns:PayeeName JHANull=\"?\" Rstr=\"?\" SrchType=\"?\">$payeeName</ns:PayeeName> 2401 <ns:PayeeNickname JHANull=\"?\">$nickname</ns:PayeeNickname> 2403 <ns:PayeeAddrInfoArray> 2404 <!--Zero or more repetitions:--> 2407 <ns:PayeeAddrId JHANull=\"?\">?</ns:PayeeAddrId> 2411 <ns:StreetAddr1 JHANull=\"?\" Rstr=\"?\">$addr1</ns:StreetAddr1> 2414 <ns:City JHANull=\"?\" Rstr=\"?\">$city</ns:City> 2416 <ns:StateProv JHANull=\"?\" Rstr=\"?\">?</ns:StateProv> 2418 <ns:StateCode JHANull=\"?\" Rstr=\"?\">$state</ns:StateCode> 2420 <ns:PostalCode JHANull=\"?\" Rstr=\"?\" SrchType=\"?\">$zip</ns:PostalCode> 2422 <ns:DlvryPt JHANull=\"?\" Rstr=\"?\">?</ns:DlvryPt> 2424 <ns:Cntry JHANull=\"?\" Rstr=\"?\">?</ns:Cntry> 2426 <ns:CntryType JHANull=\"?\" Rstr=\"?\">?</ns:CntryType> 2429 <ns:PayeeAddrType JHANull=\"?\">Prim</ns:PayeeAddrType> 2432 <!--You may enter ANY elements at this point--> 2434 </ns:PayeeAddrInfoArray> 2439 <ns:PayeeEmailSharedSecret JHANull=\"?\">$secret</ns:PayeeEmailSharedSecret> 2441 <ns:PayeeClsf JHANull=\"?\">$payeeType</ns:PayeeClsf> 2444 <ns:SubMerAcctId JHANull=\"?\">$accountNum</ns:SubMerAcctId> 2446 <ns:SubMerPayerName JHANull=\"?\">$subName</ns:SubMerPayerName> 2448 <ns:PayeeCatName JHANull=\"?\">?</ns:PayeeCatName> 2450 <ns:PayFromAcctInfo> 2452 <ns:PayFromId JHANull=\"?\" Rstr=\"?\">$accountId</ns:PayFromId> 2454 <ns:PayFromAcctId JHANull=\"?\" Rstr=\"?\">?</ns:PayFromAcctId> 2456 <ns:PayFromAcctType JHANull=\"?\" Rstr=\"?\">?</ns:PayFromAcctType> 2458 <ns:PayFromAcctName JHANull=\"?\" Rstr=\"?\">$accountName</ns:PayFromAcctName> 2460 <ns:PayFromAcctDft JHANull=\"?\" Rstr=\"?\">?</ns:PayFromAcctDft> 2462 <!--You may enter ANY elements at this point--> 2463 </ns:PayFromAcctInfo> 2466 <!--You may enter ANY elements at this point--> 2472 <ns:ElecBilPayeeType>?</ns:ElecBilPayeeType> 2474 <ns:ElecBilAcctErrExist>?</ns:ElecBilAcctErrExist> 2477 <ns:PmtIntentType JHANull=\"?\" Rstr=\"?\">$paymentIntent</ns:PmtIntentType> 2480 <ns:PayeeP2PType JHANull=\"?\">$p2p</ns:PayeeP2PType> 2482 </ns:BilPayPayeeInfo> 2484 <ns:Dlt>$delete</ns:Dlt> 2485 </ns:BilPayPayeeMod> 2487 </soapenv:Envelope>";
2488 $soapHeaders = array();
2489 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
2490 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPayPayeeMod\"";
2491 $response = embcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
2493 if ( $parms[
"logging"] ==
"enabled" ) {
2494 $logParms = $parms[
"environment"];
2495 $logParms[
"token"] = $parms[
'Token'];
2497 $logParms[
"txnId"] = $now;
2498 $logParms[
"logPoint"] =
"BilPayPayeeMod";
2499 $logParms[
"request"] = $soapString;
2500 $logParms[
"reply"] = $response;
2501 LogActivity( $logParms );
2504 $xmlreturn = hcuGetJXXMLResponseAll ($response,
'BilPayPayeeModResponse',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
2506 if (!is_array($xmlreturn)) {
2507 throw new Exception(
"EditPayee Invalid XML Response");
2510 if ($xmlreturn[
"status"][
"response"] !=
'true' ) {
2512 throw new Exception(
"EditPayee Failed. {$xmlreturn['faultcode']} {$xmlreturn['faultstring']}");
2515 $return[
"data"] = $xmlreturn[
"data"];
2516 $return[
"status"][
"response"]=
'true';
2519 $cacheType = CACHE_KEY_BILPAYPAYEESRCH;
2520 DeleteCache( $parms[
"environment"][
"dbConn"],
2521 $parms[
"environment"][
"memberId"],
2523 $parms[
"environment"][
"Cu"],
2528 $return[
"status"][
"message"] =
'Success';
2530 }
catch ( Exception $e ){
2531 $return[
"status"][
"response"] =
'false';
2532 $return[
"status"][
"message"] = $e->getMessage();
2534 $return[
"status"][
"line"] = $e->getLine();
2537 $return[
"data"] = array();
2543 function JxBilPaySubAdd($parms) {
2545 $reqparms = array(
'InstitutionId'=>1,
2546 'consumername' => 1,
2547 'consumerproduct' => 1,
2548 'institutionenvironment' => 1,
2549 'xmlnamespace' => 1,
2556 $missing = array_diff_key($reqparms,$parms);
2557 if (
sizeof($missing)) {
2558 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
2560 $token = $parms[
'Token'];
2561 $firstName = $parms[
"passwith"][
"firstName"];
2562 $lastName = $parms[
"passwith"][
"lastName"];
2563 $addr1 = $parms[
"passwith"][
"addr1"];
2564 $addr2 = $parms[
"passwith"][
"addr2"];
2566 if(!empty($addr2)) {
2567 $addr2string =
"<!--Optional:--> 2568 <ns:StreetAddr2 JHANull=\"?\">$addr2</ns:StreetAddr2>";
2571 $addr2string =
"<!--Optional:--> 2572 <ns:StreetAddr2 JHANull=\"true\"></ns:StreetAddr2>";
2575 $city = $parms[
"passwith"][
"city"];
2576 $state = $parms[
"passwith"][
"state"];
2577 $zip = $parms[
"passwith"][
"zip"];
2578 $phone = $parms[
"passwith"][
"phone"];
2580 $phoneType =
'Home';
2581 $email = $parms[
"passwith"][
"email"];
2582 $accountName = $parms[
"passwith"][
"accountName"];
2583 $accountId = $parms[
'accountId'];
2584 $accountType = $parms[
'accountType'];
2585 $ssn = $parms[
"passwith"][
"ssn"];
2587 if(isset($parms[
"BillpayId"])){
2588 $loginId = $parms[
"BillpayId"];
2590 $loginId = $parms[
"passwith"][
"MP_ACCOUNT"];
2594 $temppass = $parms[
"passwith"][
"temppass"];
2596 $product = $parms[
'product'];
2597 $soapHeader = createSoapHeader($parms);
2598 $soapMsgHdr = createSoapMsgRqHdr($parms);
2600 $soapString =
"<soapenv:Envelope xmlns:ns=\"http://jackhenry.com/jxchange/TPG/2008\" xmlns:oas=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">";
2601 $soapString .= $soapHeader;
2602 $soapString .=
" <soapenv:Body> 2604 $soapString .= $soapMsgHdr;
2605 $soapString .=
"<!--Optional:--> 2606 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 2607 <ns:SubId JHANull=\"?\"></ns:SubId> 2613 <ns:ComName JHANull=\"?\">?</ns:ComName> 2615 <ns:FirstName JHANull=\"?\">$firstName</ns:FirstName> 2617 <ns:MiddleName JHANull=\"?\">?</ns:MiddleName> 2619 <ns:LastName JHANull=\"?\">$lastName</ns:LastName> 2622 <!--You may enter ANY elements at this point--> 2627 <ns:StreetAddr1 JHANull=\"?\">$addr1</ns:StreetAddr1> 2630 <ns:City JHANull=\"?\">$city</ns:City> 2632 <ns:StateCode JHANull=\"?\">$state</ns:StateCode> 2634 <ns:PostalCode JHANull=\"?\">$zip</ns:PostalCode> 2637 <!--Zero or more repetitions:--> 2640 <ns:EmailAddr JHANull=\"?\">$email</ns:EmailAddr> 2642 <ns:EmailType JHANull=\"?\">Prim</ns:EmailType> 2644 <!--You may enter ANY elements at this point--> 2648 <!--Zero or more repetitions:--> 2651 <ns:PhoneNum JHANull=\"?\">$phone</ns:PhoneNum> 2653 <ns:PhoneType JHANull=\"?\">$phoneType</ns:PhoneType> 2657 <ns:PayFromAcctInfoArray> 2658 <!--Zero or more repetitions:--> 2659 <ns:PayFromAcctInfo> 2661 <ns:PayFromId JHANull=\"?\">?</ns:PayFromId> 2663 <ns:PayFromAcctId JHANull=\"?\">$accountId</ns:PayFromAcctId> 2665 <ns:PayFromAcctType JHANull=\"?\">$accountType</ns:PayFromAcctType> 2667 <ns:PayFromAcctName JHANull=\"?\">$accountName</ns:PayFromAcctName> 2668 </ns:PayFromAcctInfo> 2669 </ns:PayFromAcctInfoArray> 2671 <ns:SubType JHANull=\"?\">Indv</ns:SubType> 2673 <ns:SubComId JHANull=\"?\" Rstr=\"?\">$loginId</ns:SubComId> 2677 <ns:TaxId JHANull=\"?\" MaskVal=\"?\" Rstr=\"Hid\" SrchType=\"?\">$ssn</ns:TaxId> 2679 <ns:MktgOptInfoArray> 2680 <!--Zero or more repetitions:--> 2683 <ns:MktgOptType JHANull=\"?\" Rstr=\"?\">?</ns:MktgOptType> 2685 <ns:MktgOptVal JHANull=\"?\" Rstr=\"?\">?</ns:MktgOptVal> 2687 <!--You may enter ANY elements at this point--> 2689 </ns:MktgOptInfoArray> 2691 <ns:TempPswd JHANull=\"?\">$temppass</ns:TempPswd> 2693 <!--You may enter ANY elements at this point--> 2697 </soapenv:Envelope>";
2698 $soapHeaders = array();
2699 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
2700 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPaySubAdd\"";
2701 $response = embcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
2703 if ( $parms[
"logging"] ==
"enabled" ) {
2704 $logParms = $parms[
"environment"];
2705 $logParms[
"token"] = $parms[
'Token'];
2707 $logParms[
"txnId"] = $now;
2708 $logParms[
"logPoint"] =
"BilPaySubAdd";
2709 $logParms[
"request"] = $soapString;
2710 $logParms[
"reply"] = $response;
2711 LogActivity( $logParms );
2714 $xmlreturn = hcuGetJXXMLResponseAll ($response,
'BilPaySubAddResponse',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
2716 if (!is_array($xmlreturn)) {
2717 throw new Exception(
"AddSubscriber Invalid XML Response");
2720 if ($xmlreturn[
"status"][
"response"] !=
'true' ) {
2722 throw new Exception(
"AddSubscriber Failed. {$xmlreturn['faultcode']} {$xmlreturn['faultstring']}");
2725 $return[
"data"] = $xmlreturn[
"data"];
2726 $return[
"status"][
"response"]=
'true';
2727 $return[
"status"][
"message"] =
'Success';
2729 }
catch ( Exception $e ){
2730 $return[
"status"][
"response"] =
'false';
2731 $return[
"status"][
"code"] = $e->getCode();
2732 $return[
"status"][
"message"] = $e->getMessage();
2733 $return[
"status"][
"line"] = $e->getLine();
2734 $return[
"data"] = array();
2740 function JxBilPaySubMod($parms) {
2742 $reqparms = array(
'InstitutionId'=>1,
2743 'consumername' => 1,
2744 'consumerproduct' => 1,
2745 'institutionenvironment' => 1,
2746 'xmlnamespace' => 1,
2753 $missing = array_diff_key($reqparms,$parms);
2754 if (
sizeof($missing)) {
2755 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
2757 list($token, $subID) = explode(
"|", $parms[
'Token']);
2759 $firstName = $parms[
"passwith"][
"firstName"];
2760 $lastName = $parms[
"passwith"][
"lastName"];
2761 $addr1 = $parms[
"passwith"][
"addr1"];
2762 $addr2 = $parms[
"passwith"][
"addr2"];
2763 $city = $parms[
"passwith"][
"city"];
2764 $state = $parms[
"passwith"][
"state"];
2765 $zip = $parms[
"passwith"][
"zip"];
2766 $phone = $parms[
"passwith"][
"phone"];
2768 $phoneType =
'Home';
2769 $email = $parms[
"passwith"][
"email"];
2774 $loginId = $parms[
"passwith"][
"MP_ACCOUNT"];
2777 if(!empty($addr2)) {
2778 $addr2string =
"<!--Optional:--> 2779 <ns:StreetAddr2 JHANull=\"?\">$addr2</ns:StreetAddr2>";
2782 $addr2string =
"<!--Optional:--> 2783 <ns:StreetAddr2 JHANull=\"true\"></ns:StreetAddr2>";
2787 $product = $parms[
'product'];
2788 $soapHeader = createSoapHeader($parms);
2789 $soapMsgHdr = createSoapMsgRqHdr($parms);
2791 $soapString =
"<soapenv:Envelope xmlns:ns=\"http://jackhenry.com/jxchange/TPG/2008\" xmlns:oas=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">";
2792 $soapString .= $soapHeader;
2793 $soapString .=
" <soapenv:Body> 2795 $soapString .= $soapMsgHdr;
2796 $soapString .=
"<!--Optional:--> 2797 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 2798 <ns:SubId JHANull=\"?\">$subID</ns:SubId> 2804 <ns:ComName JHANull=\"?\">?</ns:ComName> 2806 <ns:FirstName JHANull=\"?\">$firstName</ns:FirstName> 2808 <ns:MiddleName JHANull=\"?\">?</ns:MiddleName> 2810 <ns:LastName JHANull=\"?\">$lastName</ns:LastName> 2813 <!--You may enter ANY elements at this point--> 2818 <ns:StreetAddr1 JHANull=\"?\">$addr1</ns:StreetAddr1> 2821 <ns:City JHANull=\"?\">$city</ns:City> 2823 <ns:StateCode JHANull=\"?\">$state</ns:StateCode> 2825 <ns:PostalCode JHANull=\"?\">$zip</ns:PostalCode> 2828 <!--Zero or more repetitions:--> 2831 <ns:EmailAddr JHANull=\"?\">$email</ns:EmailAddr> 2833 <ns:EmailType JHANull=\"?\">Prim</ns:EmailType> 2835 <!--You may enter ANY elements at this point--> 2839 <!--Zero or more repetitions:--> 2842 <ns:PhoneNum JHANull=\"?\">$phone</ns:PhoneNum> 2844 <ns:PhoneType JHANull=\"?\">$phoneType</ns:PhoneType> 2850 </soapenv:Envelope>";
2851 $soapHeaders = array();
2852 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
2853 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPaySubMod\"";
2854 $response = embcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
2856 if ( $parms[
"logging"] ==
"enabled" ) {
2857 $logParms = $parms[
"environment"];
2858 $logParms[
"token"] = $parms[
'Token'];
2860 $logParms[
"txnId"] = $now;
2861 $logParms[
"logPoint"] =
"BilPaySubMod";
2862 $logParms[
"request"] = $soapString;
2863 $logParms[
"reply"] = $response;
2864 LogActivity( $logParms );
2867 $xmlreturn = hcuGetJXXMLResponseAll ($response,
'BilPaySubModResponse',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
2869 if (!is_array($xmlreturn)) {
2870 throw new Exception(
"ModifySubscriber Invalid XML Response");
2873 if ($xmlreturn[
"status"][
"response"] !=
'true' ) {
2875 throw new Exception(
"ModifySubscriber Failed. {$xmlreturn['faultcode']} {$xmlreturn['faultstring']}");
2878 $return[
"data"] = $xmlreturn[
"data"];
2879 $return[
"status"][
"response"]=
'true';
2880 $return[
"status"][
"message"] =
'Success';
2882 }
catch ( Exception $e ){
2883 $return[
"status"][
"response"] =
'false';
2884 $return[
"status"][
"code"] = $e->getCode();
2885 $return[
"status"][
"message"] = $e->getMessage();
2886 $return[
"status"][
"line"] = $e->getLine();
2887 $return[
"data"] = array();
2893 function jxBilPaySubInq ($parms){
2895 $reqparms = array(
'InstitutionId'=>1,
2896 'consumername' => 1,
2897 'consumerproduct' => 1,
2898 'institutionenvironment' => 1,
2899 'xmlnamespace' => 1,
2906 $missing = array_diff_key($reqparms,$parms);
2907 if (
sizeof($missing)) {
2908 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
2910 list($token, $subID) = explode(
"|", $parms[
'Token']);
2912 $getCached = (($parms[
'passwith'][
'MP_ACTION'] !==
'MP_SUBINFO') ?
true :
false);
2915 $cacheType = CACHE_KEY_SUBINQ;
2916 $cachedData = ReadCache( $parms[
"environment"][
"dbConn"],
2917 $parms[
"environment"][
"memberId"],
2919 $parms[
"environment"][
"Cu"],
2923 $product = $parms[
'product'];
2924 $soapHeader = createSoapHeader($parms);
2925 $soapMsgHdr = createSoapMsgRqHdr($parms);
2928 if ( !is_array( $cachedData ) || !($getCached) ) {
2929 $product = $parms[
'product'];
2930 $soapHeader = createSoapHeader($parms);
2931 $soapMsgHdr = createSoapMsgRqHdr($parms);
2933 $soapString =
"<soapenv:Envelope xmlns:ns=\"http://jackhenry.com/jxchange/TPG/2008\" xmlns:oas=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">";
2934 $soapString .= $soapHeader;
2935 $soapString .=
" <soapenv:Body> 2937 $soapString .= $soapMsgHdr;
2938 $soapString .=
"<!--Optional:--> 2939 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 2940 <ns:SubId JHANull=\"true\">$subID</ns:SubId> 2943 </soapenv:Envelope>";
2946 $soapHeaders = array();
2947 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
2948 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPaySubInq\"";
2949 $response = embcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
2951 if ( $parms[
"logging"] ==
"enabled" ) {
2952 $logParms = $parms[
"environment"];
2953 $logParms[
"token"] = $parms[
'Token'];
2955 $logParms[
"txnId"] = $now;
2956 $logParms[
"logPoint"] =
"BilPaySubInq";
2957 $logParms[
"request"] = $soapString;
2958 $logParms[
"reply"] = $response;
2959 LogActivity( $logParms );
2962 $xmlreturn = hcuGetJXXMLResponseAll ($response,
'BilPaySubInqResponse',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
2965 if (!is_array($xmlreturn)) {
2966 throw new Exception(
"BilPaySubInq Invalid XML Response");
2969 if ($xmlreturn[
"status"][
"response"] !=
'true' ) {
2970 throw new Exception(
"SubscriberGetInfo Failed {$xmlreturn['faultcode']} {$xmlreturn['faultstring']}");
2973 WriteCache( $parms[
"environment"][
"dbConn"],
2974 $parms[
"environment"][
"memberId"],
2976 $parms[
"environment"][
"Cu"],
2979 $xmlreturn[
"data"]);
2981 $return[
"data"] = $xmlreturn[
"data"];
2984 $return[
"status"][
"response"] =
'true';
2985 $return[
"status"][
"message"] =
'Success';
2986 $return[
"data"] = $cachedData;
2988 $return[
"status"][
"response"]=
'true';
2989 $return[
"status"][
"message"] =
'Success';
2991 }
catch ( Exception $e ){
2992 $return[
"status"][
"response"] =
'false';
2993 $return[
"status"][
"message"] = $e->getMessage();
2994 $return[
"status"][
"line"] = $e->getLine();
2995 $return[
"data"] = array();
3000 function jxBilPaySubConsmCustInq ($parms){
3003 $reqparms = array(
'InstitutionId'=>1,
3004 'consumername' => 1,
3005 'consumerproduct' => 1,
3006 'institutionenvironment' => 1,
3007 'xmlnamespace' => 1,
3014 $missing = array_diff_key($reqparms,$parms);
3015 if (
sizeof($missing)) {
3016 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
3019 $product = $parms[
'product'];
3021 if(isset($parms[
'BillpayId'])){
3022 $SubComId = $parms[
'BillpayId'];
3025 $SubComId = $parms[
'passwith'][
'MP_ACCOUNT'];
3032 $soapHeader = createSoapHeader($parms);
3033 $soapMsgHdr = createSoapMsgRqHdr($parms);
3035 $soapString =
"<soapenv:Envelope xmlns:ns=\"http://jackhenry.com/jxchange/TPG/2008\" xmlns:oas=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">";
3036 $soapString .= $soapHeader;
3037 $soapString .=
" <soapenv:Body> 3038 <ns:BilPaySubConsmCustInq>";
3039 $soapString .= $soapMsgHdr;
3040 $soapString .=
"<!--Optional:--> 3041 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 3042 <ns:SubComId JHANull=\"true\">$SubComId</ns:SubComId> 3043 </ns:BilPaySubConsmCustInq> 3045 </soapenv:Envelope>";
3048 $soapHeaders = array();
3049 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
3050 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPaySubConsmCustInq\"";
3051 $response = embcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
3053 if ( $parms[
"logging"] ==
"enabled" ) {
3054 $logParms = $parms[
"environment"];
3055 $logParms[
"token"] = $parms[
'Token'];
3057 $logParms[
"txnId"] = $now;
3058 $logParms[
"logPoint"] =
"BilPaySubConsmCustInq";
3059 $logParms[
"request"] = $soapString;
3060 $logParms[
"reply"] = $response;
3061 LogActivity( $logParms );
3064 $xmlreturn = hcuGetJXXMLResponseAll ($response,
'BilPaySubConsmCustInqResponse',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
3066 if (!is_array($xmlreturn)) {
3067 throw new Exception(
"BilPaySubConsmCustInq Invalid XML Response");
3070 if ($xmlreturn[
"status"][
"response"] !=
'true' ) {
3072 throw new Exception(
"SubscriberGetInfo Failed {$xmlreturn['faultcode']} {$xmlreturn['faultstring']}");
3074 $return[
"data"] = $xmlreturn[
"data"];
3076 $return[
"status"][
"response"]=
'true';
3077 $return[
"status"][
"message"] =
'Success';
3079 }
catch ( Exception $e ){
3080 $return[
"status"][
"response"] =
'false';
3081 $return[
"status"][
"message"] = $e->getMessage();
3082 $return[
"status"][
"line"] = $e->getLine();
3083 $return[
"data"] = array();
3090 function jxBilPayChanInq( $parms ) {
3092 $reqparms = array(
'InstitutionId'=>1,
3093 'consumername' => 1,
3094 'consumerproduct' => 1,
3095 'institutionenvironment' => 1,
3096 'xmlnamespace' => 1,
3103 $missing = array_diff_key($reqparms,$parms);
3105 if (
sizeof($missing)) {
3106 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
3108 $userTokens = explode(
"|", $parms[
'Token']);
3109 if ( isset( $userTokens[0] ) ) {
3110 $token = $userTokens[0];
3115 $cacheType = CACHE_KEY_BILPAYCHANINQ;
3116 $cachedData = ReadCache( $parms[
"environment"][
"dbConn"],
3117 $parms[
"environment"][
"memberId"],
3118 $parms[
"BillpayId"],
3119 $parms[
"environment"][
"Cu"],
3123 if ( !is_array( $cachedData ) ) {
3124 $product = $parms[
'product'];
3125 $soapHeader = createSoapHeader($parms);
3126 $soapMsgHdr = createSoapMsgRqHdr($parms);
3128 $soapString =
"<soapenv:Envelope xmlns:ns=\"http://jackhenry.com/jxchange/TPG/2008\" xmlns:oas=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">";
3129 $soapString .= $soapHeader;
3130 $soapString .=
" <soapenv:Body> 3131 <ns:BilPayChanInq>";
3132 $soapString .= $soapMsgHdr;
3133 $soapString .=
"<!--Optional:--> 3134 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 3138 <!--You may enter ANY elements at this point--> 3141 <!--You may enter ANY elements at this point--> 3144 </soapenv:Envelope>";
3146 $soapHeaders = array();
3147 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
3148 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPayChanInq\"";
3149 $response = embcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
3151 if ( $parms[
"logging"] ==
"enabled" ) {
3152 $logParms = $parms[
"environment"];
3153 $logParms[
"token"] = $token;
3155 $logParms[
"txnId"] = $now;
3156 $logParms[
"logPoint"] =
"BilPayChanInq";
3157 $logParms[
"request"] = $soapString;
3158 $logParms[
"reply"] = $response;
3159 LogActivity( $logParms );
3162 $xmlreturn = hcuGetJXXMLResponseAll ($response,
'BilPayChanInqResponse',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
3164 if (!is_array($xmlreturn)) {
3165 throw new Exception(
"BilPayChanInq Invalid XML Response");
3167 if ($xmlreturn[
"status"][
"response"] !=
'true') {
3169 throw new Exception(
"Institution Validation Failed {$xmlreturn['faultcode']} {$xmlreturn['faultstring']}");
3172 WriteCache( $parms[
"environment"][
"dbConn"],
3173 $parms[
"environment"][
"memberId"],
3174 $parms[
"BillpayId"],
3175 $parms[
"environment"][
"Cu"],
3178 $xmlreturn[
"data"]);
3180 $return[
"status"][
"response"] =
'true';
3181 $return[
"status"][
"message"] =
'Success';
3182 $return[
"data"] = $xmlreturn[
"data"];
3187 $return[
"status"][
"response"] =
'true';
3188 $return[
"status"][
"message"] =
'Success';
3189 $return[
"data"] = $cachedData;
3193 }
catch (Exception $e) {
3194 $return[
"status"][
"response"] =
'false';
3195 $return[
"status"][
"message"] = $e->getMessage();
3196 $return[
"status"][
"line"] = $e->getLine();
3197 $return[
"data"] = array();
3204 function jxAddPayment( $parms ) {
3207 $reqparms = array(
'InstitutionId'=>1,
3208 'consumername' => 1,
3209 'consumerproduct' => 1,
3210 'institutionenvironment' => 1,
3211 'xmlnamespace' => 1,
3218 $missing = array_diff_key($reqparms,$parms);
3219 if (
sizeof($missing)) {
3220 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
3222 list($token, $subID) = explode(
"|", $parms[
'Token']);
3223 $product = $parms[
'product'];
3224 $paymentDate = $parms[
"Payment"][
'Date'];
3226 $unixTimeStamp = strtotime($paymentDate);
3231 $endDateString =
"";
3232 $pmtOccurString=
"";
3236 if(isset($parms[
'override']) && $parms[
'override'] ===
'Y') {
3237 $override .=
"<ns:ErrOvrRdInfoArray>";
3238 $myCodes = explode(
",", $parms[
'overridecodes']);
3239 foreach($myCodes as $key => $code) {
3242 <ns:ErrCode>$code</ns:ErrCode> 3246 $override .=
"</ns:ErrOvrRdInfoArray> 3250 if( !empty($parms[
'Payment'][
'Freq']) ) {
3251 $frequency = $parms[
'Payment'][
"Freq"];
3252 if( $frequency ==
'Weekly' ) {
3253 $paymentDayOfWeek = date(
"D", $unixTimeStamp);
3255 if( $paymentDayOfWeek ==
'Thu' ) {
3256 $paymentDayOfWeek =
'Thur';
3258 if( $paymentDayOfWeek ==
'Tue' ) {
3259 $paymentDayOfWeek =
'Tues';
3262 $weekString =
"<!--Optional:--> 3263 <ns:PmtDayOfWeek JHANull=\"?\">$paymentDayOfWeek</ns:PmtDayOfWeek>";
3264 }
else if ( $frequency ==
'Monthly'|| $frequency ==
'Annual') {
3265 $paymentDayOfMonth = date(
"j", $unixTimeStamp);
3266 $monthString =
"<!--Optional:--> 3267 <ns:PmtDayOfMonth JHANull=\"?\" Rstr=\"?\">$paymentDayOfMonth</ns:PmtDayOfMonth>";
3269 $pmtDayArray =
"<ns:PmtDayInfoArray> 3270 <!--Zero or more repetitions:--> 3274 <ns:PmtUseLastBusDay JHANull=\"?\"></ns:PmtUseLastBusDay> 3276 <!--You may enter ANY elements at this point--> 3278 </ns:PmtDayInfoArray>";
3282 if (strcmp($parms[
'datemodel'],
"payeeprocess") == 0 ){
3283 $payDateField =
'PmtProcDt';
3284 $payRecurDateField =
'StartPmtProcDt';
3286 $payDateField =
'PmtEstArvDt';
3287 $payRecurDateField =
'StartPmtEstArvDt';
3290 $accountFrom = $parms[
'Payment'][
'From'];
3291 $accountTo = $parms[
'Payment'][
'To'];
3292 $payAmount = $parms[
'Payment'][
'Amount'];
3294 if( !empty($parms[
'Payment'][
"Duration"] ) ) {
3295 $duration = $parms[
'Payment'][
"Duration"];
3300 if ( $duration ==
"never" ) {
3302 }
else if ( $duration ==
"number" ) {
3304 if ( !empty( $parms[
'Payment'][
'PayNum'] ) ) {
3305 $numberOfPayments = $parms[
'Payment'][
'PayNum'];
3306 $pmtOccurString =
"<!--Optional:--> 3307 <ns:PmtOccur JHANull=\"?\">$numberOfPayments</ns:PmtOccur>";
3309 $pmtOccurString =
"";
3311 }
else if ( $duration ==
"date" ) {
3313 if ( !empty( $parms[
'Payment'][
'EndDate'] ) ) {
3314 $endDate = $parms[
'Payment'][
'EndDate'];
3315 $endDateString =
"<!--Optional:--> 3316 <ns:PmtSerExpDt JHANull=\"?\">$endDate</ns:PmtSerExpDt>";
3318 $endDateString =
"";
3323 if ( $frequency !=
"Once" && !empty($frequency) ) {
3324 $recurString =
"<!--Optional:--> 3327 <ns:$payRecurDateField JHANull=\"?\">$paymentDate</ns:$payRecurDateField> 3329 <ns:PmtFreqUnits JHANull=\"?\">$frequency</ns:PmtFreqUnits> 3334 <ns:PayDtInstr JHANull=\"?\"></ns:PayDtInstr> 3338 <ns:PmtSerFinite JHANull=\"?\">$finite</ns:PmtSerFinite> 3341 <ns:RetroToOrigPmtDt JHANull=\"?\"></ns:RetroToOrigPmtDt> 3343 <!--You may enter ANY elements at this point--> 3344 </ns:RecurPmtInfo>";
3349 $soapHeader = createSoapHeader($parms);
3350 $soapMsgHdr = createSoapMsgRqHdr($parms);
3352 $soapString =
"<soapenv:Envelope xmlns:ns=\"http://jackhenry.com/jxchange/TPG/2008\" xmlns:oas=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">";
3353 $soapString .= $soapHeader;
3354 $soapString .=
" <soapenv:Body> 3355 <ns:BilPaySchedPmtAdd>";
3356 $soapString .= $soapMsgHdr;
3357 $soapString .=
"<!--Optional:--> 3359 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 3360 <ns:SubId JHANull=\"true\">$subID</ns:SubId> 3361 <ns:BilPaySchedPmtInfo> 3365 <ns:PayeeId JHANull=\"?\">$accountTo</ns:PayeeId> 3369 <ns:$payDateField JHANull=\"?\">$paymentDate</ns:$payDateField> 3371 <ns:PmtAmt JHANull=\"?\" Rstr=\"?\">$payAmount</ns:PmtAmt> 3373 <ns:PmtPayFromAcctInfo> 3375 <ns:PayFromId JHANull=\"?\" Rstr=\"?\">$accountFrom</ns:PayFromId> 3376 <!--You may enter ANY elements at this point--> 3377 </ns:PmtPayFromAcctInfo> 3379 <ns:PmtCmnt JHANull=\"?\"></ns:PmtCmnt> 3381 <ns:PmtChkMemo JHANull=\"?\"></ns:PmtChkMemo> 3384 </ns:BilPaySchedPmtInfo> 3385 </ns:BilPaySchedPmtAdd> 3387 </soapenv:Envelope>";
3389 $soapHeaders = array();
3390 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
3391 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPaySchedPmtAdd\"";
3393 $response = embcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
3395 if ( $parms[
"logging"] ==
"enabled" ) {
3396 $logParms = $parms[
"environment"];
3397 $logParms[
"token"] = $parms[
'Token'];
3399 $logParms[
"txnId"] = $now;
3400 $logParms[
"logPoint"] =
"AddPayment";
3401 $logParms[
"request"] = $soapString;
3402 $logParms[
"reply"] = $response;
3403 LogActivity( $logParms );
3406 $xmlreturn = hcuGetJXXMLResponseAll ($response,
'BilPaySchedPmtAddResponse',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
3408 if (!is_array($xmlreturn)) {
3409 throw new Exception(
"AddPayment Invalid XML Response");
3412 if ($xmlreturn[
"status"][
"response"] !=
'true' ) {
3413 throw new Exception(
"AddPayment Failed. {$xmlreturn['faultcode']} {$xmlreturn['faultstring']}");
3416 $return[
"data"] = $xmlreturn[
"data"];
3417 $return[
"status"][
"response"]=
'true';
3420 $cacheType = CACHE_KEY_PMTS;
3421 DeleteCache( $parms[
"environment"][
"dbConn"],
3422 $parms[
"environment"][
"memberId"],
3424 $parms[
"environment"][
"Cu"],
3430 catch (Exception $e) {
3431 $return[
"status"][
"response"] =
'false';
3432 $return[
"status"][
"message"] = $e->getMessage();
3433 $return[
"status"][
"line"] = $e->getLine();
3434 $return[
"data"] = array();
3441 function jxEditPayment( $parms, $key ) {
3443 $reqparms = array(
'InstitutionId'=>1,
3444 'consumername' => 1,
3445 'consumerproduct' => 1,
3446 'institutionenvironment' => 1,
3447 'xmlnamespace' => 1,
3454 $missing = array_diff_key($reqparms,$parms);
3455 if (
sizeof($missing)) {
3456 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
3458 list($token, $subID) = explode(
"|", $parms[
'Token']);
3459 if (strcmp($parms[
'datemodel'],
"payeeprocess") == 0 ){
3460 $payDateField =
'PmtProcDt';
3461 $payRecurDateField =
'StartPmtProcDt';
3463 $payDateField =
'PmtEstArvDt';
3464 $payRecurDateField =
'StartPmtEstArvDt';
3466 $paymentDate = $parms[
"Payment"][
'Date'];
3469 $unixTimeStamp = strtotime($paymentDate);
3474 $endDateString =
"";
3475 $pmtOccurString=
"";
3477 if( !empty($parms[
'Payment'][
'Freq']) ) {
3478 $frequency = $parms[
'Payment'][
"Freq"];
3479 if( $frequency ==
'Weekly' ) {
3480 $paymentDayOfWeek = date(
"D", $unixTimeStamp);
3482 if( $paymentDayOfWeek ==
'Thu' ) {
3483 $paymentDayOfWeek =
'Thur';
3485 if( $paymentDayOfWeek ==
'Tue' ) {
3486 $paymentDayOfWeek =
'Tues';
3489 $weekString =
"<!--Optional:--> 3490 <ns:PmtDayOfWeek JHANull=\"?\">$paymentDayOfWeek</ns:PmtDayOfWeek>";
3491 }
else if ( $frequency ==
'Monthly'|| $frequency ==
'Annual') {
3492 $paymentDayOfMonth = date(
"j", $unixTimeStamp);
3493 $monthString =
"<!--Optional:--> 3494 <ns:PmtDayOfMonth JHANull=\"?\" Rstr=\"?\">$paymentDayOfMonth</ns:PmtDayOfMonth>";
3496 $pmtDayArray =
"<ns:PmtDayInfoArray> 3497 <!--Zero or more repetitions:--> 3501 <ns:PmtUseLastBusDay JHANull=\"?\"></ns:PmtUseLastBusDay> 3503 <!--You may enter ANY elements at this point--> 3505 </ns:PmtDayInfoArray>";
3509 $accountFrom = $parms[
'Payment'][
'From'];
3510 $payAmount = $parms[
'Payment'][
'Amount'];
3511 $payID = $parms[
"Payment"][
"Id"];
3512 $product = $parms[
'product'];
3514 if( !empty($parms[
'Payment'][
'Duration']) ) {
3515 $duration = $parms[
'Payment'][
"Duration"];
3520 if ( $duration ==
"never" ) {
3522 }
else if ( $duration ==
"number" ) {
3524 if ( !empty( $parms[
'Payment'][
'PayNum'] ) ) {
3525 $numberOfPayments = $parms[
'Payment'][
'PayNum'];
3526 $pmtOccurString =
"<!--Optional:--> 3527 <ns:PmtOccur JHANull=\"?\">$numberOfPayments</ns:PmtOccur>";
3529 $pmtOccurString =
"";
3531 }
else if ( $duration ==
"date" ) {
3533 if ( !empty( $parms[
'Payment'][
'EndDate'] ) ) {
3534 $endDate = $parms[
'Payment'][
'EndDate'];
3535 $endDateString =
"<!--Optional:--> 3536 <ns:PmtSerExpDt JHANull=\"?\">$endDate</ns:PmtSerExpDt>";
3538 $endDateString =
"";
3543 if ( $frequency !=
"Once" && !empty($frequency) ) {
3544 $recurString =
"<!--Optional:--> 3547 <ns:$payRecurDateField JHANull=\"?\">$paymentDate</ns:$payRecurDateField> 3549 <ns:PmtFreqUnits JHANull=\"?\">$frequency</ns:PmtFreqUnits> 3554 <ns:PayDtInstr JHANull=\"?\"></ns:PayDtInstr> 3558 <ns:PmtSerFinite JHANull=\"?\">$finite</ns:PmtSerFinite> 3561 <ns:RetroToOrigPmtDt JHANull=\"?\"></ns:RetroToOrigPmtDt> 3563 <!--You may enter ANY elements at this point--> 3564 </ns:RecurPmtInfo>";
3566 $recurString =
"<!--Optional:--> 3569 <ns:$payRecurDateField JHANull=\"?\">$paymentDate</ns:$payRecurDateField> 3571 <ns:PmtFreqUnits JHANull=\"?\">$frequency</ns:PmtFreqUnits> 3574 </ns:RecurPmtInfo>";
3577 $soapHeader = createSoapHeader($parms);
3578 $soapMsgHdr = createSoapMsgRqHdr($parms);
3580 $soapString =
"<soapenv:Envelope xmlns:ns=\"http://jackhenry.com/jxchange/TPG/2008\" xmlns:oas=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">";
3581 $soapString .= $soapHeader;
3582 $soapString .=
" <soapenv:Body> 3583 <ns:BilPaySchedPmtMod>";
3584 $soapString .= $soapMsgHdr;
3585 $soapString .=
"<!--Optional:--> 3586 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 3587 <ns:SubId JHANull=\"true\">$subID</ns:SubId> 3588 <ns:PmtId JHANull=\"?\">$payID</ns:PmtId> 3589 <ns:ActIntentKey>$key</ns:ActIntentKey> 3590 <ns:BilPaySchedPmtInfo> 3592 <ns:$payDateField JHANull=\"?\">$paymentDate</ns:$payDateField> 3594 <ns:PmtAmt JHANull=\"?\" Rstr=\"?\">$payAmount</ns:PmtAmt> 3596 <ns:PmtPayFromAcctInfo> 3598 <ns:PayFromId JHANull=\"?\" Rstr=\"?\">$accountFrom</ns:PayFromId> 3599 </ns:PmtPayFromAcctInfo> 3601 <ns:PmtCmnt JHANull=\"?\"></ns:PmtCmnt> 3603 <ns:PmtChkMemo JHANull=\"?\"></ns:PmtChkMemo> 3606 </ns:BilPaySchedPmtInfo> 3607 </ns:BilPaySchedPmtMod> 3609 </soapenv:Envelope>";
3612 $soapHeaders = array();
3613 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
3614 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPaySchedPmtMod\"";
3615 $response = embcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
3617 if ( $parms[
"logging"] ==
"enabled" ) {
3618 $logParms = $parms[
"environment"];
3619 $logParms[
"token"] = $parms[
'Token'];
3621 $logParms[
"txnId"] = $now;
3622 $logParms[
"logPoint"] =
"EditPayment";
3623 $logParms[
"request"] = $soapString;
3624 $logParms[
"reply"] = $response;
3625 LogActivity( $logParms );
3628 $xmlreturn = hcuGetJXXMLResponse ($response,
'BilPaySchedPmtModResponse',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
3630 if (!is_array($xmlreturn)) {
3631 throw new Exception(
"Modify Payment Invalid XML Response");
3633 if ($xmlreturn[
"status"][
"response"] !=
'true') {
3634 throw new Exception(
"ModifyPayment Failed. {$xmlreturn["status
"]["message
"]}");
3637 $return[
"data"] = $xmlreturn[
"data"];
3638 $return[
"status"][
"response"]=
'true';
3641 $cacheType = CACHE_KEY_PMTS;
3642 DeleteCache( $parms[
"environment"][
"dbConn"],
3643 $parms[
"environment"][
"memberId"],
3645 $parms[
"environment"][
"Cu"],
3651 catch (Exception $e) {
3652 $return[
"status"][
"response"] =
'false';
3653 $return[
"status"][
"message"] = $e->getMessage();
3654 $return[
"status"][
"line"] = $e->getLine();
3655 $return[
"data"] = array();
3661 function jxGetHistory( $parms ) {
3663 $reqparms = array(
'InstitutionId'=>1,
3664 'consumername' => 1,
3665 'consumerproduct' => 1,
3666 'institutionenvironment' => 1,
3667 'xmlnamespace' => 1,
3674 $missing = array_diff_key($reqparms,$parms);
3675 if (
sizeof($missing)) {
3676 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
3678 list($token, $subID) = explode(
"|", $parms[
'Token']);
3680 $cacheType = CACHE_KEY_HIST;
3681 $cachedData = ReadCache( $parms[
"environment"][
"dbConn"],
3682 $parms[
"environment"][
"memberId"],
3684 $parms[
"environment"][
"Cu"],
3688 if ( !is_array( $cachedData ) ) {
3689 $product = $parms[
'product'];
3690 $soapHeader = createSoapHeader($parms);
3691 $soapMsgHdr = createSoapSearchMsgRqHdr($parms);
3693 $soapString =
"<soapenv:Envelope xmlns:ns=\"http://jackhenry.com/jxchange/TPG/2008\" xmlns:oas=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">";
3694 $soapString .= $soapHeader;
3695 $soapString .=
" <soapenv:Body> 3696 <ns:BilPayPmtHistSrch>";
3697 $soapString .= $soapMsgHdr;
3698 $soapString .=
"<!--Optional:--> 3699 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 3700 <ns:SubId JHANull=\"true\">$subID</ns:SubId> 3701 </ns:BilPayPmtHistSrch> 3703 </soapenv:Envelope>";
3706 $soapHeaders = array();
3707 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
3708 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPayPmtHistSrch\"";
3709 $response = embcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
3711 if ( $parms[
"logging"] ==
"enabled" ) {
3712 $logParms = $parms[
"environment"];
3713 $logParms[
"token"] = $parms[
'Token'];
3715 $logParms[
"txnId"] = $now;
3716 $logParms[
"logPoint"] =
"GetHistory";
3717 $logParms[
"request"] = $soapString;
3718 $logParms[
"reply"] = $response;
3719 LogActivity( $logParms );
3722 $xmlreturn = hcuGetJXXMLResponse ($response,
'BilPayPmtHistSrchInfo',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
3723 if (!is_array($xmlreturn)) {
3724 throw new Exception(
"GetHistory Invalid XML Response");
3726 if ($xmlreturn[
"status"][
"response"] !=
'true') {
3727 throw new Exception(
"GetHistory Failed. {$xmlreturn['faultcode']} {$xmlreturn['faultstring']}");
3730 WriteCache( $parms[
"environment"][
"dbConn"],
3731 $parms[
"environment"][
"memberId"],
3733 $parms[
"environment"][
"Cu"],
3736 $xmlreturn[
"data"]);
3738 $return[
"data"] = $xmlreturn[
"data"];
3739 $return[
"status"][
"response"]=
'true';
3742 $return[
"status"][
"response"] =
'true';
3743 $return[
"status"][
"message"] =
'Success';
3744 $return[
"data"] = $cachedData;
3747 catch (Exception $e) {
3748 $return[
"status"][
"response"] =
'false';
3749 $return[
"status"][
"message"] = $e->getMessage();
3750 $return[
"status"][
"line"] = $e->getLine();
3751 $return[
"data"] = array();
3757 function jxGetPayeeList( $parms ) {
3759 $reqparms = array(
'InstitutionId'=>1,
3760 'consumername' => 1,
3761 'consumerproduct' => 1,
3762 'institutionenvironment' => 1,
3763 'xmlnamespace' => 1,
3770 $missing = array_diff_key($reqparms,$parms);
3771 if (
sizeof($missing)) {
3772 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
3774 list($token, $subID) = explode(
"|", $parms[
'Token']);
3782 $cacheType = CACHE_KEY_BILPAYPAYEESRCH;
3783 $cachedData = ReadCache( $parms[
"environment"][
"dbConn"],
3784 $parms[
"environment"][
"memberId"],
3786 $parms[
"environment"][
"Cu"],
3791 if ( !is_array( $cachedData ) || !($getCached) ) {
3792 $product = $parms[
'product'];
3793 $soapHeader = createSoapHeader($parms);
3794 $soapMsgHdr = createSoapSearchMsgRqHdr($parms);
3796 $soapString =
"<soapenv:Envelope xmlns:ns=\"http://jackhenry.com/jxchange/TPG/2008\" xmlns:oas=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">";
3797 $soapString .= $soapHeader;
3798 $soapString .=
" <soapenv:Body> 3799 <ns:BilPayPayeeSrch>";
3800 $soapString .= $soapMsgHdr;
3801 $soapString .=
"<!--Optional:--> 3802 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 3803 <ns:SubId JHANull=\"true\">$subID</ns:SubId> 3804 </ns:BilPayPayeeSrch> 3806 </soapenv:Envelope>";
3808 $soapHeaders = array();
3809 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
3810 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPayPayeeSrch\"";
3811 $response = embcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
3813 if ( $parms[
"logging"] ==
"enabled" ) {
3814 $logParms = $parms[
"environment"];
3815 $logParms[
"token"] = $parms[
'Token'];
3817 $logParms[
"txnId"] = $now;
3818 $logParms[
"logPoint"] =
"GetPayeeList";
3819 $logParms[
"request"] = $soapString;
3820 $logParms[
"reply"] = $response;
3821 LogActivity( $logParms );
3824 $xmlreturn = hcuGetJXXMLResponse ($response,
'BilPayPayeeSrchInfo',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
3825 if (!is_array($xmlreturn)) {
3826 throw new Exception(
"GetPayeeList Invalid XML Response");
3828 if ($xmlreturn[
"status"][
"response"] !=
'true') {
3829 throw new Exception(
"GetPayeeList Failed. {$xmlreturn['faultcode']} {$xmlreturn['faultstring']}");
3832 WriteCache( $parms[
"environment"][
"dbConn"],
3833 $parms[
"environment"][
"memberId"],
3835 $parms[
"environment"][
"Cu"],
3838 $xmlreturn[
"data"]);
3840 $return[
"data"] = $xmlreturn[
"data"];
3841 $return[
"status"][
"response"]=
'true';
3844 $return[
"status"][
"response"] =
'true';
3845 $return[
"status"][
"message"] =
'Success';
3846 $return[
"data"] = $cachedData;
3849 catch (Exception $e) {
3850 $return[
"status"][
"response"] =
'false';
3851 $return[
"status"][
"message"] = $e->getMessage();
3852 $return[
"status"][
"line"] = $e->getLine();
3853 $return[
"data"] = array();
3860 function jxBilPayPayeeInq( $parms ,$actIntent ) {
3862 $reqparms = array(
'InstitutionId'=>1,
3863 'consumername' => 1,
3864 'consumerproduct' => 1,
3865 'institutionenvironment' => 1,
3866 'xmlnamespace' => 1,
3874 $missing = array_diff_key($reqparms,$parms);
3875 if (
sizeof($missing)) {
3876 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
3878 list($token, $subID) = explode(
"|", $parms[
'Token']);
3879 $product = $parms[
'product'];
3880 $payeeID = $parms[
'PayeeId'];
3881 $soapHeader = createSoapHeader($parms);
3882 $soapMsgHdr = createSoapMsgRqHdr($parms);
3885 $soapString =
"<soapenv:Envelope xmlns:ns=\"http://jackhenry.com/jxchange/TPG/2008\" xmlns:oas=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">";
3886 $soapString .= $soapHeader;
3887 $soapString .=
" <soapenv:Body> 3888 <ns:BilPayPayeeInq>";
3889 $soapString .= $soapMsgHdr;
3890 $soapString .=
"<!--Optional:--> 3891 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 3892 <ns:SubId JHANull=\"true\">$subID</ns:SubId> 3893 <ns:PayeeId JHANull=\"?\">$payeeID</ns:PayeeId>";
3895 if (strlen($actIntent) > 0){
3896 $soapString .=
"<ns:ActIntent>$actIntent</ns:ActIntent>";
3899 $soapString .=
"</ns:BilPayPayeeInq> 3901 </soapenv:Envelope>";
3903 $soapHeaders = array();
3904 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
3905 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPayPayeeInq\"";
3906 $response = embcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
3908 if ( $parms[
"logging"] ==
"enabled" ) {
3909 $logParms = $parms[
"environment"];
3910 $logParms[
"token"] = $parms[
'Token'];
3912 $logParms[
"txnId"] = $now;
3913 $logParms[
"logPoint"] =
"BilPayPayeeInq";
3914 $logParms[
"request"] = $soapString;
3915 $logParms[
"reply"] = $response;
3916 LogActivity( $logParms );
3919 $xmlreturn = hcuGetJXXMLResponseAll ($response,
'BilPayPayeeInqResponse',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
3920 if (!is_array($xmlreturn)) {
3921 throw new Exception(
"BilPayPayeeInq Invalid XML Response");
3923 if ($xmlreturn[
"status"][
"response"] !=
'true') {
3924 throw new Exception(
"BilPayPayeeInq Failed. {$xmlreturn['faultcode']} {$xmlreturn['faultstring']}");
3927 $return[
"data"] = $xmlreturn[
"data"];
3928 $return[
"status"][
"response"]=
'true';
3931 catch (Exception $e) {
3932 $return[
"status"][
"response"] =
'false';
3933 $return[
"status"][
"message"] = $e->getMessage();
3934 $return[
"status"][
"line"] = $e->getLine();
3935 $return[
"data"] = array();
3941 function jxBilPaySchedPmtInq ( $parms ){
3943 $reqparms = array(
'InstitutionId'=>1,
3944 'consumername' => 1,
3945 'consumerproduct' => 1,
3946 'institutionenvironment' => 1,
3947 'xmlnamespace' => 1,
3954 $missing = array_diff_key($reqparms,$parms);
3955 if (
sizeof($missing)) {
3957 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
3960 list($token, $subID) = explode(
"|", $parms[
'Token']);
3961 $product = $parms[
'product'];
3962 $pmtID = $parms[
'Payment'][
'Id'];
3963 $soapHeader = createSoapHeader($parms);
3964 $soapMsgHdr = createSoapMsgRqHdr($parms);
3966 $soapString =
"<soapenv:Envelope xmlns:ns=\"http://jackhenry.com/jxchange/TPG/2008\" xmlns:oas=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">";
3967 $soapString .= $soapHeader;
3968 $soapString .=
" <soapenv:Body> 3969 <ns:BilPaySchedPmtInq>";
3970 $soapString .= $soapMsgHdr;
3971 $soapString .=
"<!--Optional:--> 3972 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 3973 <ns:SubId JHANull=\"true\">$subID</ns:SubId> 3974 <ns:PmtId JHANull=\"true\">$pmtID</ns:PmtId> 3975 <ns:ActIntent>Upd</ns:ActIntent> 3976 </ns:BilPaySchedPmtInq> 3978 </soapenv:Envelope>";
3979 $soapHeaders = array();
3980 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
3981 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPaySchedPmtInq\"";
3982 $response = embcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
3984 if ( $parms[
"logging"] ==
"enabled" ) {
3985 $logParms = $parms[
"environment"];
3986 $logParms[
"token"] = $parms[
'Token'];
3988 $logParms[
"txnId"] = $now;
3989 $logParms[
"logPoint"] =
"BilPaySchedPmtInq";
3990 $logParms[
"request"] = $soapString;
3991 $logParms[
"reply"] = $response;
3992 LogActivity( $logParms );
3995 $xmlreturn = hcuGetJXXMLResponseAll ($response,
'BilPaySchedPmtInqResponse',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
3996 if (!is_array($xmlreturn)) {
3997 throw new Exception(
"Scheduled Payment Inquiry Invalid XML Response");
3999 if ($xmlreturn[
"status"][
"response"] !=
'true') {
4000 throw new Exception(
"Scheduled Payment Inquiry Failed. {$xmlreturn['faultcode']} {$xmlreturn['faultstring']}");
4003 $return[
"data"] = $xmlreturn[
"data"];
4004 $return[
"status"][
"response"]=
'true';
4006 catch (Exception $e) {
4007 $return[
"status"][
"response"] =
'false';
4008 $return[
"status"][
"message"] = $e->getMessage();
4009 $return[
"status"][
"line"] = $e->getLine();
4010 $return[
"data"] = array();
4015 function jxGetScheduled( $parms ) {
4017 $reqparms = array(
'InstitutionId'=>1,
4018 'consumername' => 1,
4019 'consumerproduct' => 1,
4020 'institutionenvironment' => 1,
4021 'xmlnamespace' => 1,
4028 $missing = array_diff_key($reqparms,$parms);
4029 if (
sizeof($missing)) {
4030 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
4032 list($token, $subID) = explode(
"|", $parms[
'Token']);
4034 $cacheType = CACHE_KEY_PMTS;
4035 $cachedData = ReadCache( $parms[
"environment"][
"dbConn"],
4036 $parms[
"environment"][
"memberId"],
4038 $parms[
"environment"][
"Cu"],
4043 if ( !is_array( $cachedData ) ) {
4044 $product = $parms[
'product'];
4045 $soapHeader = createSoapHeader($parms);
4046 $soapMsgHdr = createSoapSearchMsgRqHdr($parms);
4048 $soapString =
"<soapenv:Envelope xmlns:ns=\"http://jackhenry.com/jxchange/TPG/2008\" xmlns:oas=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">";
4049 $soapString .= $soapHeader;
4050 $soapString .=
" <soapenv:Body> 4051 <ns:BilPaySchedPmtSrch>";
4052 $soapString .= $soapMsgHdr;
4053 $soapString .=
"<!--Optional:--> 4054 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 4055 <ns:SubId JHANull=\"true\">$subID</ns:SubId> 4056 </ns:BilPaySchedPmtSrch> 4058 </soapenv:Envelope>";
4060 $soapHeaders = array();
4061 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
4062 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPaySchedPmtSrch\"";
4063 $response = embcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
4065 if ( $parms[
"logging"] ==
"enabled" ) {
4066 $logParms = $parms[
"environment"];
4067 $logParms[
"token"] = $parms[
'Token'];
4069 $logParms[
"txnId"] = $now;
4070 $logParms[
"logPoint"] =
"GetScheduled";
4071 $logParms[
"request"] = $soapString;
4072 $logParms[
"reply"] = $response;
4073 LogActivity( $logParms );
4076 $xmlreturn = hcuGetJXXMLResponse ($response,
'BilPaySchedPmtSrchInfo',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
4077 if (!is_array($xmlreturn)) {
4078 throw new Exception(
"GetScheduled Invalid XML Response");
4080 if ($xmlreturn[
"status"][
"response"] !=
'true') {
4081 throw new Exception(
"Get Scheduled Failed. {$xmlreturn['faultcode']} {$xmlreturn['faultstring']}");
4084 WriteCache( $parms[
"environment"][
"dbConn"],
4085 $parms[
"environment"][
"memberId"],
4087 $parms[
"environment"][
"Cu"],
4090 $xmlreturn[
"data"]);
4092 $return[
"data"] = $xmlreturn[
"data"];
4093 $return[
"status"][
"response"]=
'true';
4096 $return[
"status"][
"response"] =
'true';
4097 $return[
"status"][
"message"] =
'Success';
4098 $return[
"data"] = $cachedData;
4101 catch (Exception $e) {
4102 $return[
"status"][
"response"] =
'false';
4103 $return[
"status"][
"message"] = $e->getMessage();
4104 $return[
"status"][
"line"] = $e->getLine();
4105 $return[
"data"] = array();
4111 function jxStopPayment( $parms, $key ) {
4113 $reqparms = array(
'InstitutionId'=>1,
4114 'consumername' => 1,
4115 'consumerproduct' => 1,
4116 'institutionenvironment' => 1,
4117 'xmlnamespace' => 1,
4124 $missing = array_diff_key($reqparms,$parms);
4125 if (
sizeof($missing)) {
4126 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
4128 list($token, $subID) = explode(
"|", $parms[
'Token']);
4129 $payID = $parms[
"Payment"][
"Id"];
4130 $product = $parms[
'product'];
4131 $soapHeader = createSoapHeader($parms);
4132 $soapMsgHdr = createSoapMsgRqHdr($parms);
4134 $soapString =
"<soapenv:Envelope xmlns:ns=\"http://jackhenry.com/jxchange/TPG/2008\" xmlns:oas=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">";
4135 $soapString .= $soapHeader;
4136 $soapString .=
" <soapenv:Body> 4137 <ns:BilPaySchedPmtMod>";
4138 $soapString .= $soapMsgHdr;
4139 $soapString .=
"<!--Optional:--> 4140 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 4141 <ns:SubId JHANull=\"true\">$subID</ns:SubId> 4142 <ns:PmtId JHANull=\"?\">$payID</ns:PmtId> 4143 <ns:ActIntentKey>$key</ns:ActIntentKey> 4144 <ns:Dlt>True</ns:Dlt> 4145 </ns:BilPaySchedPmtMod> 4147 </soapenv:Envelope>";
4150 $soapHeaders = array();
4151 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
4152 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPaySchedPmtMod\"";
4153 $response = embcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
4155 if ( $parms[
"logging"] ==
"enabled" ) {
4156 $logParms = $parms[
"environment"];
4157 $logParms[
"token"] = $parms[
'Token'];
4159 $logParms[
"txnId"] = $now;
4160 $logParms[
"logPoint"] =
"StopPayment";
4161 $logParms[
"request"] = $soapString;
4162 $logParms[
"reply"] = $response;
4163 LogActivity( $logParms );
4166 $xmlreturn = hcuGetJXXMLResponseAll ($response,
'BilPaySchedPmtModResponse',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
4167 if (!is_array($xmlreturn)) {
4168 throw new Exception(
"Stop Payment Invalid XML Response");
4170 if ($xmlreturn[
"status"][
"response"] !=
'true') {
4171 throw new Exception(
"Stop Payment Failed. {$xmlreturn['faultcode']} {$xmlreturn['faultstring']}");
4174 $return[
"data"] = $xmlreturn[
"data"];
4175 $return[
"status"][
"response"]=
'true';
4178 $cacheType = CACHE_KEY_PMTS;
4179 DeleteCache( $parms[
"environment"][
"dbConn"],
4180 $parms[
"environment"][
"memberId"],
4182 $parms[
"environment"][
"Cu"],
4187 catch (Exception $e) {
4188 $return[
"status"][
"response"] =
'false';
4189 $return[
"status"][
"message"] = $e->getMessage();
4190 $return[
"status"][
"line"] = $e->getLine();
4191 $return[
"data"] = array();
4197 function hcuGetJXXMLResponse ($ipayXML,$ipayITEM, $jxSoapNS,$jxRespNS){
4199 $xml = simplexml_load_string($ipayXML,
"SimpleXMLElement",LIBXML_NOWARNING);
4200 if (!is_object($xml)) {
4201 throw new Exception(
"Invalid XML");
4203 $xml->registerXPathNamespace(
'jx', $jxSoapNS);
4204 $xml->registerXPathNamespace(
'item', $jxRespNS);
4206 $xpathquery =
"jx:Body//item:" . $ipayITEM;
4208 $dataobj = $xml->xpath($xpathquery);
4209 if (!is_array($dataobj)) {
4210 throw new Exception(
"xPath Failed");
4212 $errorresponse = $xml->xpath(
"//jx:Fault");
4214 if (is_array($errorresponse) && count($errorresponse)) {
4215 $errordetail = $errorresponse[0]->detail->HdrFault->FaultRecInfoArray->FaultMsgRec;
4216 $fault = trim( $errordetail->ErrCode[0]);
4217 $faultString = trim( $errordetail->ErrDesc[0]);
4218 $resp_arr = array(
'faultcode' => $fault,
4219 'faultstring' => $faultString);
4220 $resp_arr[
"status"][
"response"] =
'false';
4221 $resp_arr[
"status"][
"message"] = $faultString;
4222 throw new Exception($resp_arr[
'status'][
'message']);
4224 $dataresponse = objectToArray($dataobj);
4225 if (!is_array($dataresponse)) {
4226 throw new Exception(
"objectToArray conversion Failed");
4228 $resp_arr[
"status"][
"response"] =
'true';
4229 $resp_arr[
"status"][
"message"] =
'Success';
4231 $resp_arr[
"data"] = $dataresponse;
4233 }
catch (Exception $e) {
4234 $resp_arr[
"status"][
"response"] =
'false';
4235 $resp_arr[
"status"][
"message"] = $e->getMessage();
4236 $resp_arr[
"status"][
"line"] = $e->getLine();
4242 function hcuGetJXXMLResponseAll ( $ipayXML, $ipayITEM, $jxSoapNS, $jxRespNS ) {
4244 $xml = simplexml_load_string($ipayXML,
"SimpleXMLElement",LIBXML_NOWARNING);
4245 if (!is_object($xml)) {
4246 throw new Exception(
"Invalid XML");
4248 $xml->registerXPathNamespace(
'jx', $jxSoapNS);
4249 $xml->registerXPathNamespace(
'item', $jxRespNS);
4251 $xpathquery =
"jx:Body//item:" . $ipayITEM;
4253 $dataobj = $xml->xpath($xpathquery);
4255 if (!is_array($dataobj)) {
4256 throw new Exception(
"xPath Failed");
4258 $errorresponse = $xml->xpath(
"//jx:Fault");
4260 if (is_array($errorresponse) && count($errorresponse)) {
4261 $errordetail = $errorresponse[0]->detail->HdrFault->FaultRecInfoArray->FaultMsgRec;
4262 $fault = trim( $errordetail->ErrCode[0]);
4263 $faultString = trim( $errordetail->ErrDesc[0]);
4264 $resp_arr = array(
'faultcode' => $fault,
4265 'faultstring' => $faultString);
4266 $resp_arr[
"status"][
"response"] =
'false';
4267 $resp_arr[
"status"][
"message"] = $faultString;
4268 throw new Exception($resp_arr[
'status'][
'message']);
4270 $dataresponse = objectToArray($dataobj);
4272 if (!is_array($dataresponse)) {
4273 throw new Exception(
"objectToArray conversion Failed");
4275 $resp_arr[
"status"][
"response"] =
'true';
4276 $resp_arr[
"status"][
"message"] =
'Success';
4278 $resp_arr[
"data"] = $dataresponse[0];
4281 }
catch (Exception $e) {
4282 $resp_arr[
"status"][
"response"] =
'false';
4283 $resp_arr[
"status"][
"message"] = $e->getMessage();
4284 $resp_arr[
"status"][
"line"] = $e->getLine();