26 define(
"MP_JX_ERROR_CODE",
"5013" );
27 define(
"MP_JX_AUTH_ERROR_CODE",
"50131" );
28 define(
"SERVICE_NAME",
"IPAYJX" );
30 define(
"CACHE_KEY_HIST",
"jxHistory" );
31 define(
"CACHE_KEY_PMTS",
"jxPending" );
32 define(
"CACHE_KEY_SUBINQ",
"jxSubInq" );
33 define(
"CACHE_KEY_BILPAYCHANINQ",
"jxBilPayChanInq" );
34 define(
"CACHE_KEY_BILPAYPAYEESRCH",
"jxBilPayPayeeSrch" );
36 function bpAuth( $parms) {
38 if ($parms[
'moc'] == 1) {
39 $parms[
'password'] = $parms[
'mocpass'];
40 $parms[
'serviceurl'] = $parms[
'mocservice'];
45 $parms[
'Token'] = time();
46 $reply =jxBilPayChanInq( $parms );
47 if ( $reply[
"status"][
"response"] ==
"false" ) {
48 if ( empty($reply[
"status"][
"message"]) ) {
49 $reply[
"status"][
"message"] =
'Institution Inquiry Failed';
51 throw new Exception($reply[
'status'][
'message'],MP_JX_AUTH_ERROR_CODE);
54 $response = jxBilPaySubInq( $parms );
56 # normalize the name for scalability 57 if ( $response[
"status"][
"response"] ==
"false" ) {
58 if ( empty($response[
"status"][
"message"]) ) {
59 $response[
"status"][
"response"] =
"false";
60 $response[
"status"][
"code"] =
"999";
62 $response[
"status"][
"message"] =
"Subscriber Validation Failed.";
64 throw new Exception($response[
'status'][
'message'],
'999');
68 $response[
"status"][
"code"] =
"000";
69 $dateModelvalue =$reply[data][BilPayChanInfo][BilPayProdTypeInfoArray][BilPayProdTypeInfo][PmtDtModel];
70 $dateModel =
"payeeprocess";
71 if (strcmp($dateModelvalue,
"ProcDtModel") == 0 ){
72 $dateModel =
"payeeprocess";
75 if (strcmp($dateModelvalue,
"DueDtModel") == 0 ){
79 if (strcmp($dateModel,$parms[
"datemodel"]) != 0 ){
80 $response[
"status"][
"response"] =
"false";
81 throw new Exception(
"Invalid Date Model.", MP_JX_AUTH_ERROR_CODE);
83 $output[
"Token"] = $parms[
'Token'];
84 $output[
"DateModel"] = $dateModel;
86 $output[
'MoblPayName']= (trim($parms[
'MoblPayName']) ==
'' ? htmlentities(
'Pay Bills') : htmlentities($parms[
'MoblPayName']));
87 $output[
'Extras'] = htmlentities($parms[
'ExtraOptions']);
88 $response[
'data']= $output;
91 }
catch (Exception $e) {
93 $return = array(
'status'=>array(
'response'=>
'false',
'message'=>$e->getMessage(),
'code'=>$e->getCode()),
'data'=>array(
'Token'=>
'0'));
100 function bpHist( $parms ) {
103 if ($parms[
'moc'] == 1) {
104 $parms[
'serviceurl'] = $parms[
'mocservice'];
107 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
108 $response = jxGetHistory( $parms );
110 if ( $response[
"status"][
"response"] ==
"false" ) {
111 if ( empty($response[
"status"][
"message"]) ){
112 $response[
"status"][
"message"] =
'Get History Failed';
114 throw new Exception($response[
'status'][
'message']);
116 if ( isset( $response[data] ) && count( $response[data] ) ) {
117 if ( isset( $response[
"data"][
"PayeeName"] ) ) {
119 $value = $response[data];
120 $outputElem = array();
121 $outputElem[
"TxnId"] = $value[
"PmtId"];
122 if (strcmp($value[
"PmtIntentType"],
"PayBill") == 0 ){
123 $payTypeValue =
"Payment";
126 $payTypeValue =
"Transfer";
128 $outputElem[
"Type"] = $payTypeValue;
129 $outputElem[
"ToId"] = $value[
"PayeeId"];
130 $outputElem[
"ToName"] = $value[
"PayeeName"];
131 $outputElem[
"FromId"] = $value[
"PayFromAcctInfo"][
"PayFromId"];
132 $outputElem[
"Amount"] = number_format( $value[
"PmtAmt"], 2 );
133 $outputElem[
"Date"] = date(
"m/d/Y", strtotime( $value[
"PmtProcDt"] ) );
135 $pmtStatusValue = getJXPaymentStatus ($value[
"PmtStat"]);
136 $pmtMthdValue = getJXPaymentMethod ($value[
"PmtMthd"]);
137 $estimatedArrival = strtotime( $value[
"PmtEstArvDt"] );
138 $Additional = array(
"From" => $value[
"PayFromAcctInfo"][
"PayFromAcctName"],
139 "Estimated_Arrival" => date(
"m/d/Y", $estimatedArrival ),
140 "Status" => $pmtStatusValue,
141 "Method" => $pmtMthdValue );
143 $outputElem[
"AdditionalInfo"] = $Additional;
144 $output[] = $outputElem;
149 foreach( $response[data] as $key => $value ) {
150 $outputElem = array();
152 $outputElem[
"TxnId"] = $value[
"PmtId"];
153 if (strcmp($value[
"PmtIntentType"],
"PayBill") == 0 ){
154 $payTypeValue =
"Payment";
157 $payTypeValue =
"Transfer";
159 $outputElem[
"Type"] = $payTypeValue;
160 $outputElem[
"ToId"] = $value[
"PayeeId"];
161 $outputElem[
"ToName"] = $value[
"PayeeName"];
162 $outputElem[
"FromId"] = $value[
"PayFromAcctInfo"][
"PayFromId"];
163 $outputElem[
"Amount"] = number_format( $value[
"PmtAmt"], 2 );
164 $outputElem[
"Date"] = date(
"m/d/Y", strtotime( $value[
"PmtProcDt"] ) );
166 $pmtStatusValue = getJXPaymentStatus ($value[
"PmtStat"]);
167 $pmtMthdValue = getJXPaymentMethod ($value[
"PmtMthd"]);
168 $estimatedArrival = strtotime( $value[
"PmtEstArvDt"] );
169 $Additional = array(
"From" => $value[
"PayFromAcctInfo"][
"PayFromAcctName"],
170 "Estimated_Arrival" => date(
"m/d/Y", $estimatedArrival ),
171 "Status" => $pmtStatusValue,
172 "Method" => $pmtMthdValue );
175 $outputElem[
"AdditionalInfo"] = $Additional;
176 $output[] = $outputElem;
178 usort( $output,
"histSort" );
185 $return[
"status"][
"code"] =
"000";
186 # normalize the name for scalability 187 $return[
'data'] = $output;
189 }
catch (Exception $e) {
190 $return = array(
'status'=>array(
'response'=>
'false',
'message'=>$e->getMessage(),
'code'=>MP_JX_ERROR_CODE),
'data'=>array(
'Token'=>
'0'));
195 function bpSched( $parms ) {
197 if ($parms[
'moc'] == 1) {
198 $parms[
'serviceurl'] = $parms[
'mocservice'];
201 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
202 $response = jxGetScheduled( $parms );
204 if ( $response[
"status"][
"response"] ==
"false" ) {
205 if ( empty($response[
"status"][
"message"]) ) {
206 $response[
"status"][
"message"] =
'Get Scheduled Failed';
208 throw new Exception($response[
'status'][
'message']);
211 if ( isset( $response[data] ) && count( $response[data] ) ) {
212 if ( isset( $response[
"data"][
"PayeeName"] ) ) {
214 $value = $response[data];
215 $outputElem = array();
216 $outputElem[
"TxnId"] = $value[
"PmtId"];
217 if (strcmp($value[
"PmtIntentType"],
"PayBill") == 0 ){
218 $payTypeValue =
"Payment";
221 $payTypeValue =
"Transfer";
223 $outputElem[
"Type"] = $payTypeValue;
224 $outputElem[
"ToId"] = $value[
"PayeeId"];
225 $outputElem[
"ToName"] = $value[
"PayeeName"];
226 $outputElem[
"FromId"] = $value[
"PayFromAcctInfo"][
"PayFromId"];
227 $outputElem[
"Amount"] = number_format( $value[
"PmtAmt"], 2 );
228 $outputElem[
"Date"] = date(
"m/d/Y", strtotime( $value[
"PmtProcDt"] ) );
230 $pmtMthdValue = getJXPaymentMethod ($value[
"PmtMthd"]);
231 $estimatedArrival = strtotime( $value[
"PmtEstArvDt"] );
232 $Additional = array(
"From" => $value[
"PayFromAcctInfo"][
"PayFromAcctName"],
233 "Estimated_Arrival" => date(
"m/d/Y", $estimatedArrival ),
234 "Method" => $pmtMthdValue );
237 $outputElem[
"AdditionalInfo"] = $Additional;
238 $output[] = $outputElem;
243 foreach( $response[data] as $key => $value ) {
244 $outputElem = array();
246 $outputElem[
"TxnId"] = $value[
"PmtId"];
247 if (strcmp($value[
"PmtIntentType"],
"PayBill") == 0 ){
248 $payTypeValue =
"Payment";
251 $payTypeValue =
"Transfer";
253 $outputElem[
"Type"] = $payTypeValue;
254 $outputElem[
"ToId"] = $value[
"PayeeId"];
255 $outputElem[
"ToName"] = $value[
"PayeeName"];
256 $outputElem[
"FromId"] = $value[
"PayFromAcctInfo"][
"PayFromId"];
257 $outputElem[
"Amount"] = number_format( $value[
"PmtAmt"], 2 );
258 $outputElem[
"Date"] = date(
"m/d/Y", strtotime( $value[
"PmtProcDt"] ) );
260 $estimatedArrival = strtotime( $value[
"PmtEstArvDt"] );
261 $pmtMthdValue = getJXPaymentMethod ($value[
"PmtMthd"]);
277 $Additional = array(
"From" => $value[
"PayFromAcctInfo"][
"PayFromAcctName"],
278 "Estimated_Arrival" => date(
"m/d/Y", $estimatedArrival ),
279 "Method" => $pmtMthdValue );
282 $outputElem[
"AdditionalInfo"] = $Additional;
283 $output[] = $outputElem;
286 usort( $output,
"schedSort" );
292 $return[
"status"][
"code"] =
"000";
293 # normalize the name for scalability 294 $return[
'data'] = $output;
296 }
catch (Exception $e) {
297 $return = array(
'status'=>array(
'response'=>
'false',
'message'=>$e->getMessage(),
'code'=>MP_JX_ERROR_CODE),
'data'=>array(
'Token'=>
'0'));
303 function getJXPaymentStatus ( $pmtStatus ){
306 switch ($pmtStatus) {
308 $pmtStatValue =
"Processed";
311 $pmtStatValue =
"Paid";
314 $pmtStatValue =
"Stopped";
317 $pmtStatValue =
"Canceled";
320 $pmtStatValue =
"Returned";
323 $pmtStatValue =
"Settled";
326 $pmtStatValue =
"Resubmitted";
329 $pmtStatValue =
"Refunded";
332 $pmtStatValue =
"Stopped";
335 $pmtStatValue =
"Skipped";
338 $pmtStatValue =
"Scheduled";
341 $pmtStatValue =
"Pending";
344 $PmtApprv =
"Payment Approved";
347 return $pmtStatValue;
352 function getJXPaymentMethod ( $pmtMethod ){
354 $pmtMthdValue =
"Standard";
355 switch ($pmtMethod) {
357 $pmtMthdValue =
"Check";
360 $pmtMthdValue =
"Email";
363 $pmtMthdValue =
"Electronic";
366 $pmtMthdValue =
"Standard";
369 return $pmtMthdValue;
374 function bpSourceAccts( $parms ) {
376 if ($parms[
'moc'] == 1) {
377 $parms[
'serviceurl'] = $parms[
'mocservice'];
379 $parms[
'Account'][
'types'] =
"PayFrom";
380 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
381 $response=jxBilPaySubInq( $parms );
382 if ($response[
"status"][
"response"]==
'false'){
383 if (empty($response[
"status"][
"message"]))
384 $response[
"status"][
"message"]=
'Get Accounts Failed';
388 foreach( $response[data][BilPaySubInfo][PayFromAcctInfoArray] as $key => $value ) {
389 $outputElem = array();
390 $outputElem[
"Name"] = $value[
"PayFromAcctName"];
391 $outputElem[
"FromId"] = $value[
"PayFromId"];
393 if (strcmp($value[
"CanRush"],
"True") == 0 ){
394 $outputElem[
"CanRush"] ==
"0";
397 $outputElem[
"CanRush"] ==
"0";
401 if ( strlen( trim( $outputElem[
"Name"] ) ) == 0 ) {
402 $outputElem[
"Name"] = $value[
"PayFromAcctId"];
405 $output[] = $outputElem;
408 if ( !count( $output ) ) {
409 throw new Exception(
"No source accounts received from vendor.");
413 $response[
"status"][
"code"] =
"000";
415 # normalize the name for scalability 416 $response[
'data']= $output;
418 }
catch (Exception $e) {
419 $response[
"status"][
"response"] =
"false";
420 $response[
"status"][
"message"] = $e->getMessage();
421 $response[
"code"] = MP_JX_ERROR_CODE;
422 $response[
"data"] = array();
432 function bpDestAccts( $parms ) {
434 if ($parms[
'moc'] == 1) {
435 $parms[
'serviceurl'] = $parms[
'mocservice'];
437 $parms[
'Account'][
'types'] =
"Outbound";
438 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
440 $response=jxGetPayeeList( $parms );
442 if ($response[
"status"][
"response"]==
'false'){
443 if (empty($response[
"status"][
"message"]))
444 $response[
"status"][
"message"]=
'Get Payee List Failed';
447 if ( isset( $response[data] ) && count( $response[data] ) ) {
448 if ( isset( $response[
"data"][
"PayeeName"] ) ) {
449 $value = $response[data];
450 $outputElem = array();
451 $outputElem[
"Name"] = $value[
"PayeeName"];
452 $payeeType = $value[
"PayeeClsf"];
454 if (strcmp($payeeType,
"FinInst") == 0 ){
455 $payeeType =
"Transfer";
458 $payeeType =
"Payment";
461 if (strcmp($payeeType, $parms[
"passwith"][
"AcctType"]) == 0 ){
462 $outputElem[
"Type"] = $payeeType;
463 $outputElem[
"ToId"] = $value[
"PayeeId"];
464 if (strcmp($value[
"CanRush"],
"True") == 0 ){
465 $outputElem[
"CanRush"] =
"0";
468 $outputElem[
"CanRush"] =
"0";
470 $output[] = $outputElem;
474 foreach( $response[data] as $key => $value ) {
475 $outputElem = array();
476 $outputElem[
"Name"] = $value[
"PayeeName"];
477 $payeeType = $value[
"PayeeClsf"];
478 if (strcmp($payeeType,
"FinInst") == 0 ){
479 $payeeType =
"Transfer";
482 $payeeType =
"Payment";
484 if (strcmp($payeeType, $parms[
"passwith"][
"AcctType"]) == 0 ){
485 $outputElem[
"Type"] = $payeeType;
486 $outputElem[
"ToId"] = $value[
"PayeeId"];
488 if (strcmp($value[
"CanRush"],
"True") == 0 ){
489 $outputElem[
"CanRush"] =
"0";
492 $outputElem[
"CanRush"] =
"0";
494 $output[] = $outputElem;
501 if ( !count( $output ) ) {
502 throw new Exception(
"No destination accounts received from vendor.");
506 $response[
"status"][
"code"] =
"000";
508 # normalize the name for scalability 509 $response[data]= $output;
512 }
catch (Exception $e) {
513 $response[
"status"][
"response"] =
"false";
514 $response[
"status"][
"message"] = $e->getMessage();
515 $response[
"code"] = MP_JX_ERROR_CODE;
516 $response[
"data"] = array();
522 function bpPmtAdd( $parms ) {
526 if ($parms[
'moc'] == 1) {
527 $parms[
'serviceurl'] = $parms[
'mocservice'];
531 $parms[
'Account'][
'types'] =
"PayFrom";
532 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
534 $parms[
'Payment'][
'From'] = $parms[
"passwith"][
"FromId"];
535 $parms[
'Payment'][
'To'] = $parms[
"passwith"][
"ToId"];
536 $parms[
'Payment'][
'Amount'] = $parms[
"passwith"][
"Amount"];
537 $parms[
'Payment'][
'Rush'] = $parms[
"passwith"][
"Rush"];
538 $parms[
'Payment'][
'Date'] = $parms[
"passwith"][
"Date"];
540 $response=jxAddPayment( $parms );
542 if ($response[
"status"][
"response"]==
'false'){
543 if (empty($response[
"status"][
"message"])){
544 $response[
"status"][
"message"]=
'Submit Payment Failed';
546 throw new Exception($response[
'status'][
'message']);
549 $outputElem = array();
554 $response[
"status"][
"code"] =
"000";
556 # normalize the name for scalability 557 $response[
'data'] = $outputElem;
560 }
catch (Exception $e) {
561 $response[
"status"][
"response"] =
"false";
562 $response[
"status"][
"message"] = $e->getMessage();
563 $response[
"code"] = MP_JX_ERROR_CODE;
564 $response[
"data"] = array();
572 function bpTrnAdd( $parms ) {
575 if ($parms[
'moc'] == 1) {
576 $parms[
'serviceurl'] = $parms[
'mocservice'];
579 $parms[
'Account'][
'types'] =
"PayFrom";
580 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
582 $parms[
'Payment'][
'From'] = $parms[
"passwith"][
"FromId"];
583 $parms[
'Payment'][
'To'] = $parms[
"passwith"][
"ToId"];
584 $parms[
'Payment'][
'Amount'] = $parms[
"passwith"][
"Amount"];
585 $parms[
'Payment'][
'Date'] = $parms[
"passwith"][
"Date"];
587 $response= jxAddPayment( $parms );
589 if ($response[
"status"][
"response"]==
'false'){
590 if (empty($response[
"status"][
"message"])){
591 $response[
"status"][
"message"]=
'Submit Transfer Failed';
593 throw new Exception($response[
'status'][
'message']);
596 $outputElem = array();
599 $response[
"status"][
"code"] =
"000";
601 # normalize the name for scalability 602 $response[
'data']= $outputElem;
604 }
catch (Exception $e) {
605 $response[
"status"][
"response"] =
"false";
606 $response[
"status"][
"message"] = $e->getMessage();
607 $response[
"code"] = MP_JX_ERROR_CODE;
608 $response[
"data"] = array();
613 function bpPmtEdit( $parms ) {
617 if ($parms[
'moc'] == 1) {
618 $parms[
'serviceurl'] = $parms[
'mocservice'];
621 $parms[
'Account'][
'types'] =
"PayFrom";
622 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
624 $parms[
'Payment'][
'Id'] = $parms[
"passwith"][
"TxnId"];
625 $parms[
'Payment'][
'From'] = $parms[
"passwith"][
"FromId"];
626 $parms[
'Payment'][
'Amount'] = $parms[
"passwith"][
"Amount"];
627 $parms[
'Payment'][
'Rush'] = $parms[
"passwith"][
"Rush"];
628 $parms[
'Payment'][
'Date'] = $parms[
"passwith"][
"Date"];
630 $respPaySchedPmtInq = jxBilPaySchedPmtInq( $parms );
632 if ($respPaySchedPmtInq[
"status"][
"response"] ==
'false') {
633 if ( empty($respPaySchedPmtInq[
"status"][
"message"]) ) {
634 $respPaySchedPmtInq[
"status"][
"message"] =
'Edit Payment (Payment Inquiry) Failed.';
636 throw new Exception($respPaySchedPmtInq[
'status'][
'message']);
639 $ActIntentKey = $respPaySchedPmtInq[
"data"][
"ActIntentKey"];
643 $response = jxEditPayment( $parms , $ActIntentKey);
645 if ($response[
"status"][
"response"]==
'false'){
646 if (empty($response[
"status"][
"message"]))
647 $response[
"status"][
"message"]=
'Edit Payment Failed';
648 throw new Exception($response[
'status'][
'message']);
651 $outputElem = array();
652 $outputElem[
"Confirmation"] = $response[
"ipaydata"][0][
"Confirmation"];
653 $outputElem[
"EstimatedArrival"] = $response[
"ipaydata"][0][
"EstimatedArrival"];
656 $response[
"status"][
"code"] =
"000";
658 # normalize the name for scalability 659 $response[
'data']= $outputElem;
662 }
catch (Exception $e) {
663 $return = array(
'status'=>array(
'response'=>
'false',
'message'=>$e->getMessage(),
'code'=>MP_JX_ERROR_CODE),
'data'=>array(
'Token'=>
'0'));
664 $return[
'data']= $outputElem;
672 function bpPmtStop( $parms ) {
675 if ($parms[
'moc'] == 1) {
676 $parms[
'serviceurl'] = $parms[
'mocservice'];
679 $parms[
'Account'][
'types'] =
"PayFrom";
680 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
682 $parms[
'Payment'][
'Id'] = $parms[
"passwith"][
"TxnId"];
683 $parms[
'Payment'][
'From'] = $parms[
"passwith"][
"FromId"];
684 $parms[
'Payment'][
'Amount'] = $parms[
"passwith"][
"Amount"];
685 $parms[
'Payment'][
'Rush'] = $parms[
"passwith"][
"Rush"];
686 $parms[
'Payment'][
'Date'] = $parms[
"passwith"][
"Date"];
688 $respPaySchedPmtInq = jxBilPaySchedPmtInq( $parms );
690 if ($respPaySchedPmtInq[
"status"][
"response"] ==
'false') {
691 if ( empty($respPaySchedPmtInq[
"status"][
"message"]) ) {
692 $respPaySchedPmtInq[
"status"][
"message"] =
'Stop Payment (Payment Inquiry) Failed.';
694 throw new Exception($respPaySchedPmtInq[
'status'][
'message']);
697 $ActIntentKey = $respPaySchedPmtInq[
"data"][
"ActIntentKey"];
704 $responseStop = jxStopPayment($parms,$ActIntentKey);
707 if ($responseStop[
"status"][
"response"] ==
'false') {
708 if (empty($responseStop[
"status"][
"message"])) {
709 $responseStop[
"status"][
"message"] =
'Stop Payment Failed';
711 throw new Exception($responseStop[
'status'][
'message']);
714 $response[
'data'] = array();
715 $response[
"status"][
"code"] =
"000";
717 # normalize the name for scalability 718 $response[
'data'][
"StopResult"] = ($responseStop[
'data'][
'RsStat'] ==
"Success" ?
"1" :
"0");
722 }
catch (Exception $e) {
723 $return = array(
'status'=>array(
'response'=>
'false',
'message'=>$e->getMessage(),
'code'=>MP_JX_ERROR_CODE),
'data'=>array(
'Token'=>
'0'));
728 function bpGetPaymentDates( $parms ) {
730 if ($parms[
'moc'] == 1) {
731 $parms[
'serviceurl'] = $parms[
'mocservice'];
733 $parms[
'Account'][
'types'] =
"PayFrom";
734 $parms[
'Token'] = $parms[
"passwith"][
"Token"];
735 $parms[
'PayeeId']=$parms[
"passwith"][
"PayeeId"];
737 $response = jxBilPayPayeeInq($parms ,
"");
739 if ($response[
'status'][
'response'] !=
'true') {
740 throw new Exception($response[
'status'][
'message']);
743 $responseBilPayChanInq = jxBilPayChanInq($parms);
744 if ($responseBilPayChanInq[
'status'][
'response'] !=
'true') {
745 throw new Exception($responseBilPayChanInq[
'status'][
'message']);
748 $cutOfftime = $responseBilPayChanInq[
"data"][
"BilPayChanInfo"][
"PmtCutoffTime"];
749 $defaultTZ = date_default_timezone_get(); # so we can put it back
750 date_default_timezone_set(
'UTC');
753 $payee = $response[
"data"];
754 $firstpay = $payee[
"FirstAvlProcDt"];
756 $nextpay =
new DateTime($firstpay);
757 $nextpay->add(
new DateInterval(
'P1D'));
758 $nextpay = $nextpay->format(
'Y-m-d') .
"\n";
759 $lead = $payee[
"EstArvDay"];
761 if($now > strtotime( $cutOfftime )) {
762 $Start = strtotime( $nextpay );
764 $Start = strtotime( $firstpay );
767 $End = $Start + (90 * 24 * 60 * 60);
769 for ($i = $Start; $i <= $End; $i += 86400) {
771 $item = gmdate(
'Y-m-d',$i);
775 foreach( $responseBilPayChanInq[data][BilPayChanInfo][NonProcDtInfoArray][NonProcDtInfo] as $key => $value ) {
776 $outputElem = $value[
"NonProcDt"];
777 $output[] = $outputElem;
780 $result = array_diff($datelist, $output);
781 array_splice($result,count($result),0);
782 $newDateList = array();
783 if (strtoupper($parms[
'datemodel']) ==
'DUE') {
784 $resultcount = count($result) - $lead;
787 $resultcount = count($result);
789 for ($i = 0; $i < $resultcount;$i++){
791 $item[
'Proc'] = $result[$i];
792 if (strtoupper($parms[
'datemodel']) ==
'DUE') {
794 $item[
'Due'] = $result[$ix];
796 $newDateList[] = $item;
799 $return = array(
'status'=>array(
'response'=>
'true',
'message'=>
"",
'code'=>
"000"),
'data'=>
"");
800 $return[
'data'][
'EarliestPay'] = $firstpay;
801 $return[
'data'][
'NextPay'] = $nextpay;
802 $return[
'data'][
'Cutoff'] = $cutOfftime;
803 $return[
'data'][
'LeadDays'] = $lead;
804 # build RushOptions list like this: 806 $return[
'data'][
'RushOptions'] = array();
807 $return[
'data'][
'PaymentDates'] = $newDateList;
809 }
catch (Exception $e) {
810 $return=array(
'status'=>array(
'response'=>
'false',
'message'=>$e->getMessage()),
'code'=>MP_JX_ERROR_CODE,
'data'=>array());
817 function bpGetTerms( $parms ) {
819 # JXChange has no Get Terms functionality - just return empty success 820 $return=array(
'status'=>array(
'response'=>
'true',
'message'=>
'success',
'code'=>
"000"),
'data'=>array(
'Terms'=>
''));
821 }
catch (Exception $e) {
822 $return=array(
'status'=>array(
'response'=>
'false',
'message'=>$e->getMessage()),
'code'=>MP_JX_ERROR_CODE,
'data'=>array());
827 function bpGetRushOptions( $parms ) {
829 # JXChange: Not done. 830 $return=array(
'status'=>array(
'response'=>
'true',
'message'=>
'success',
"code"=>
"000"),
'data'=>array());
831 }
catch (Exception $e) {
832 $return=array(
'status'=>array(
'response'=>
'false',
'message'=>$e->getMessage()),
'code'=>MP_JX_ERROR_CODE,
'data'=>array());
837 function bpAcceptTerms( $parms ) {
839 # CheckFree has no Accept Terms functionality - just return empty success 840 $return=array(
'status'=>array(
'response'=>
'true',
'message'=>
'success',
"code"=>
"000"),
'data'=>array());
841 }
catch (Exception $e) {
842 $return=array(
'status'=>array(
'response'=>
'false',
'message'=>$e->getMessage()),
'code'=>MP_JX_ERROR_CODE,
'data'=>array());
847 function bpGetFeatureList($parms) {
849 # Need to decide what the data looks like here -- string list of available features 850 # maybe something out of trusteddetail (which comes to this function in $parms) 851 # to allow customizing by cu 852 $extraOptions = htmlentities($parms[
'ExtraOptions']);
854 $return=array(
'status'=>array(
'response'=>
'true',
'message'=>
'success',
"code"=>
"000"),
855 'data'=>array(
"extras" => $extraOptions,
'featurelist'=>
""));
856 }
catch (Exception $e) {
857 $return=array(
'status'=>array(
'response'=>
'false',
'message'=>$e->getMessage()),
'code'=>MP_PSCU_ERROR_CODE,
'data'=>array());
862 function schedSort($a, $b)
864 $atime = strtotime($a[
'Date']);
865 $btime = strtotime($b[
'Date']);
866 if ($atime == $btime) {
867 if ($a[
'ToName'] == $b[
'ToName']) {
868 if ( $a[
"TxnId"] == $b[
"TxnId"] ) {
871 return ($a[
'TxnId'] < $b[
'TxnId']) ? -1 : 1;
873 return ($a[
'ToName'] < $b[
'ToName']) ? -1 : 1;
875 return ($atime < $btime) ? -1 : 1;
878 function histSort($a, $b) {
879 $atime = strtotime($a[
'Date']);
880 $btime = strtotime($b[
'Date']);
881 if ($atime == $btime) {
882 if ($a[
'ToName'] == $b[
'ToName']) {
883 if ( $a[
"TxnId"] == $b[
"TxnId"] ) {
886 return ($a[
'TxnId'] < $b[
'TxnId']) ? -1 : 1;
888 return ($a[
'ToName'] < $b[
'ToName']) ? -1 : 1;
890 return ($atime > $btime) ? -1 : 1;
929 function createSoapHeader ($parms){
930 $cuid = $parms[
'username'];
931 $pwd = $parms[
'password'];
932 $createddate = date(
"Y-m-d H:i:s",time());
934 $soapString =
"\n <soapenv:Header>\n";
935 $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";
936 $soapString .=
"<wsse:UsernameToken> 937 <wsse:Username>$cuid</wsse:Username> 938 <wsse:Password Type=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText\">$pwd</wsse:Password> 939 <wsu:Created>$createddate</wsu:Created> 940 </wsse:UsernameToken> 942 </soapenv:Header>\n";
947 function createSoapSearchMsgRqHdr ($parms){
948 $instRtId = $parms[
'InstitutionId'];
949 $consmName = $parms[
'consumername'];
950 $consmProduct = $parms[
'consumerproduct'];
951 $instEnviron = $parms[
'institutionenvironment'];
952 $jxLogTrackID = getGUID();
953 $jxVersion = $parms[
"version"];
954 $validConsmProd = $parms[
'validconsmprod'];
955 $validConsmName = $parms[
'validconsmname'];
956 $workFlowcCorrelID = $parms[
'workflowcorrelid'];
957 $busCorrelID = $parms[
"Token"];
958 $auditWsID = $parms[
'auditwsid'];
959 $auditUsrID = $parms[
'auditusrid'];
961 $soapString =
"<ns:SrchMsgRqHdr> 964 <ns:JxVer>$jxVersion</ns:JxVer> 965 <ns:AuditUsrId>$auditUsrID</ns:AuditUsrId> 966 <ns:AuditWsId>$auditWsID</ns:AuditWsId> 968 <ns:ConsumerName>$consmName</ns:ConsumerName> 970 <ns:ConsumerProd>$consmProduct</ns:ConsumerProd> 973 <ns:jXLogTrackingId>$jxLogTrackID</ns:jXLogTrackingId> 976 <ns:InstRtId JHANull=\"true\" Rstr=\"ReadWrite\">$instRtId</ns:InstRtId> 977 <ns:InstEnv>$instEnviron</ns:InstEnv> 980 <ns:BusCorrelId>$busCorrelID</ns:BusCorrelId> 983 <ns:WorkflowCorrelId>$workFlowcCorrelID</ns:WorkflowCorrelId> 986 <ns:ValidConsmName>$validConsmName</ns:ValidConsmName> 988 <ns:ValidConsmProd>$validConsmProd</ns:ValidConsmProd> 990 <!--You may enter ANY elements at this point--> 992 <ns:MaxRec>100</ns:MaxRec> 993 </ns:SrchMsgRqHdr>\n";
998 function createSoapMsgRqHdr ($parms){
999 $instRtId = $parms[
'InstitutionId'];
1000 $consmName = $parms[
'consumername'];
1001 $consmProduct = $parms[
'consumerproduct'];
1002 $instEnviron = $parms[
'institutionenvironment'];
1003 $jxLogTrackID = getGUID();
1004 $jxVersion = $parms[
"version"];
1005 $validConsmProd = $parms[
'validconsmprod'];
1006 $validConsmName = $parms[
'validconsmname'];
1007 $workFlowcCorrelID = $parms[
'workflowcorrelid'];
1008 $busCorrelID = $parms[
"Token"];
1009 $auditWsID = $parms[
'auditwsid'];
1010 $auditUsrID = $parms[
'auditusrid'];
1012 $soapString =
"<ns:MsgRqHdr> 1015 <ns:JxVer>$jxVersion</ns:JxVer> 1016 <ns:AuditUsrId>$auditUsrID</ns:AuditUsrId> 1017 <ns:AuditWsId>$auditWsID</ns:AuditWsId> 1019 <ns:ConsumerName>$consmName</ns:ConsumerName> 1021 <ns:ConsumerProd>$consmProduct</ns:ConsumerProd> 1024 <ns:jXLogTrackingId>$jxLogTrackID</ns:jXLogTrackingId> 1027 <ns:InstRtId JHANull=\"true\" Rstr=\"ReadWrite\">$instRtId</ns:InstRtId> 1028 <ns:InstEnv>$instEnviron</ns:InstEnv> 1031 <ns:BusCorrelId>$busCorrelID</ns:BusCorrelId> 1034 <ns:WorkflowCorrelId>$workFlowcCorrelID</ns:WorkflowCorrelId> 1037 <ns:ValidConsmName>$validConsmName</ns:ValidConsmName> 1039 <ns:ValidConsmProd>$validConsmProd</ns:ValidConsmProd> 1041 <!--You may enter ANY elements at this point--> 1048 <!--You may enter ANY elements at this point--> 1055 function jxBilPaySubInq ($parms){
1057 $reqparms = array(
'InstitutionId'=>1,
1058 'consumername' => 1,
1059 'consumerproduct' => 1,
1060 'institutionenvironment' => 1,
1061 'xmlnamespace' => 1,
1068 $missing = array_diff_key($reqparms,$parms);
1069 if (
sizeof($missing)) {
1070 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
1074 $cacheType = CACHE_KEY_SUBINQ;
1075 $cachedData = ReadCheckFreeCache( $parms[
"environment"][
"dbConn"],
1076 $parms[
"environment"][
"memberId"],
1077 $parms[
"BillpayId"],
1078 $parms[
"environment"][
"Cu"],
1083 if ( !is_array( $cachedData ) ) {
1084 $product = $parms[
'product'];
1085 $subID = $parms[
'BillpayId'];
1086 $soapHeader = createSoapHeader($parms);
1087 $soapMsgHdr = createSoapMsgRqHdr($parms);
1089 $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/\">";
1090 $soapString .= $soapHeader;
1091 $soapString .=
" <soapenv:Body> 1093 $soapString .= $soapMsgHdr;
1094 $soapString .=
"<!--Optional:--> 1095 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 1096 <ns:SubId JHANull=\"true\">$subID</ns:SubId> 1099 </soapenv:Envelope>";
1102 $soapHeaders = array();
1103 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
1104 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPaySubInq\"";
1105 $response = jxembcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
1107 if ( $parms[
"logging"] ==
"enabled" ) {
1108 $logParms = $parms[
"environment"];
1109 $logParms[
"token"] = $parms[
'Token'];
1111 $logParms[
"txnId"] = $now;
1112 $logParms[
"logPoint"] =
"BilPaySubInq";
1113 $logParms[
"request"] = $soapString;
1114 $logParms[
"reply"] = $response;
1115 LogJXActivity( $logParms );
1118 $xmlreturn = hcuGetJXXMLResponseAll ($response,
'BilPaySubInqResponse',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
1125 if (!is_array($xmlreturn)) {
1126 throw new Exception(
"BilPaySubInq Invalid XML Response");
1129 if ($xmlreturn[status][response] !=
'true' ) {
1130 throw new Exception(
"SubscriberGetInfo Failed {$xmlreturn['faultcode']} {$xmlreturn['faultstring']}");
1133 WriteCheckFreeCache( $parms[
"environment"][
"dbConn"],
1134 $parms[
"environment"][
"memberId"],
1135 $parms[
"BillpayId"],
1136 $parms[
"environment"][
"Cu"],
1139 $xmlreturn[
"data"]);
1142 $return[data] = $xmlreturn[data];
1145 $return[status][response] =
'true';
1146 $return[status][message] =
'Success';
1147 $return[
"data"] = $cachedData;
1149 $return[
"status"][
"response"]=
'true';
1150 $return[status][message] =
'Success';
1152 }
catch ( Exception $e ){
1153 $return[status][response] =
'false';
1154 $return[status][message] = $e->getMessage();
1156 $return[status][line] = $e->getLine();
1159 $return[data] = array();
1164 function jxBilPayChanInq( $parms ) {
1167 $reqparms = array(
'InstitutionId'=>1,
1168 'consumername' => 1,
1169 'consumerproduct' => 1,
1170 'institutionenvironment' => 1,
1171 'xmlnamespace' => 1,
1178 $missing = array_diff_key($reqparms,$parms);
1179 if (
sizeof($missing)) {
1180 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
1190 $cacheType = CACHE_KEY_BILPAYCHANINQ;
1191 $cachedData = ReadCheckFreeCache( $parms[
"environment"][
"dbConn"],
1192 $parms[
"environment"][
"memberId"],
1193 $parms[
"BillpayId"],
1194 $parms[
"environment"][
"Cu"],
1198 if ( !is_array( $cachedData ) ) {
1199 $product = $parms[
'product'];
1200 $soapHeader = createSoapHeader($parms);
1201 $soapMsgHdr = createSoapMsgRqHdr($parms);
1203 $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/\">";
1204 $soapString .= $soapHeader;
1205 $soapString .=
" <soapenv:Body> 1206 <ns:BilPayChanInq>";
1207 $soapString .= $soapMsgHdr;
1208 $soapString .=
"<!--Optional:--> 1209 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 1213 <!--You may enter ANY elements at this point--> 1216 <!--You may enter ANY elements at this point--> 1219 </soapenv:Envelope>";
1222 $soapHeaders = array();
1223 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
1224 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPayChanInq\"";
1225 $response = jxembcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
1227 if ( $parms[
"logging"] ==
"enabled" ) {
1228 $logParms = $parms[
"environment"];
1229 $logParms[
"token"] = $parms[
'Token'];
1231 $logParms[
"txnId"] = $now;
1232 $logParms[
"logPoint"] =
"BilPayChanInq";
1233 $logParms[
"request"] = $soapString;
1234 $logParms[
"reply"] = $response;
1235 LogJXActivity( $logParms );
1238 $xmlreturn = hcuGetJXXMLResponseAll ($response,
'BilPayChanInqResponse',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
1242 if (!is_array($xmlreturn)) {
1243 throw new Exception(
"BilPayChanInq Invalid XML Response");
1245 if ($xmlreturn[status][response] !=
'true') {
1247 throw new Exception(
"Institution Validation Failed {$xmlreturn['faultcode']} {$xmlreturn['faultstring']}");
1250 WriteCheckFreeCache( $parms[
"environment"][
"dbConn"],
1251 $parms[
"environment"][
"memberId"],
1252 $parms[
"BillpayId"],
1253 $parms[
"environment"][
"Cu"],
1256 $xmlreturn[
"data"]);
1258 $return[status][response] =
'true';
1259 $return[status][message] =
'Success';
1260 $return[data] = $xmlreturn[data];
1265 $return[status][response] =
'true';
1266 $return[status][message] =
'Success';
1267 $return[
"data"] = $cachedData;
1271 }
catch (Exception $e) {
1272 $return[status][response] =
'false';
1273 $return[status][message] = $e->getMessage();
1274 $return[status][line] = $e->getLine();
1275 $return[data] = array();
1283 function jxAddPayment( $parms ) {
1286 $reqparms = array(
'InstitutionId'=>1,
1287 'consumername' => 1,
1288 'consumerproduct' => 1,
1289 'institutionenvironment' => 1,
1290 'xmlnamespace' => 1,
1297 $missing = array_diff_key($reqparms,$parms);
1298 if (
sizeof($missing)) {
1299 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
1301 $product = $parms[
'product'];
1302 $subID = $parms[
'BillpayId'];
1304 $paymentDate = date(
"Y-m-d", strtotime( $parms[
"Payment"][
'Date'] ) );
1305 $accountFrom = $parms[
'Payment'][
'From'];
1306 $accountTo = $parms[
'Payment'][
'To'];
1307 $payAmount = $parms[
'Payment'][
'Amount'];
1308 $soapHeader = createSoapHeader($parms);
1309 $soapMsgHdr = createSoapMsgRqHdr($parms);
1311 $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/\">";
1312 $soapString .= $soapHeader;
1313 $soapString .=
" <soapenv:Body> 1314 <ns:BilPaySchedPmtAdd>";
1315 $soapString .= $soapMsgHdr;
1316 $soapString .=
"<!--Optional:--> 1317 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 1318 <ns:SubId JHANull=\"true\">$subID</ns:SubId> 1319 <ns:BilPaySchedPmtInfo> 1323 <ns:PayeeId JHANull=\"?\">$accountTo</ns:PayeeId> 1327 <ns:PmtProcDt JHANull=\"?\">$paymentDate</ns:PmtProcDt> 1329 <ns:PmtAmt JHANull=\"?\" Rstr=\"?\">$payAmount</ns:PmtAmt> 1331 <ns:PmtPayFromAcctInfo> 1333 <ns:PayFromId JHANull=\"?\" Rstr=\"?\">$accountFrom</ns:PayFromId> 1334 <!--You may enter ANY elements at this point--> 1335 </ns:PmtPayFromAcctInfo> 1336 </ns:BilPaySchedPmtInfo> 1337 </ns:BilPaySchedPmtAdd> 1339 </soapenv:Envelope>";
1342 $soapHeaders = array();
1343 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
1344 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPaySchedPmtAdd\"";
1346 $response = jxembcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
1348 if ( $parms[
"logging"] ==
"enabled" ) {
1349 $logParms = $parms[
"environment"];
1350 $logParms[
"token"] = $parms[
'Token'];
1352 $logParms[
"txnId"] = $now;
1353 $logParms[
"logPoint"] =
"AddPayment";
1354 $logParms[
"request"] = $soapString;
1355 $logParms[
"reply"] = $response;
1356 LogJXActivity( $logParms );
1359 $xmlreturn = hcuGetJXXMLResponseAll ($response,
'BilPaySchedPmtAddResponse',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
1361 if (!is_array($xmlreturn)) {
1362 throw new Exception(
"AddPayment Invalid XML Response");
1365 if ($xmlreturn[status][response] !=
'true' ) {
1366 throw new Exception(
"AddPayment Failed. {$xmlreturn['faultcode']} {$xmlreturn['faultstring']}");
1369 $return[data] = $xmlreturn[data];
1370 $return[
"status"][
"response"]=
'true';
1373 $cacheType = CACHE_KEY_PMTS;
1374 DeleteCheckFreeCache( $parms[
"environment"][
"dbConn"],
1375 $parms[
"environment"][
"memberId"],
1376 $parms[
"BillpayId"],
1377 $parms[
"environment"][
"Cu"],
1383 catch (Exception $e) {
1384 $return[status][response] =
'false';
1385 $return[status][message] = $e->getMessage();
1386 $return[status][line] = $e->getLine();
1387 $return[data] = array();
1395 function jxEditPayment( $parms, $key ) {
1398 $reqparms = array(
'InstitutionId'=>1,
1399 'consumername' => 1,
1400 'consumerproduct' => 1,
1401 'institutionenvironment' => 1,
1402 'xmlnamespace' => 1,
1409 $missing = array_diff_key($reqparms,$parms);
1410 if (
sizeof($missing)) {
1411 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
1413 $paymentDate = date(
"Y-m-d", strtotime( $parms[
"Payment"][
'Date'] ) );
1414 $accountFrom = $parms[
'Payment'][
'From'];
1415 $accountTo = $parms[
'Payment'][
'To'];
1416 $payAmount = $parms[
'Payment'][
'Amount'];
1417 $payID = $parms[Payment][Id];
1418 $product = $parms[
'product'];
1419 $subID = $parms[
'BillpayId'];
1420 $soapHeader = createSoapHeader($parms);
1421 $soapMsgHdr = createSoapMsgRqHdr($parms);
1423 $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/\">";
1424 $soapString .= $soapHeader;
1425 $soapString .=
" <soapenv:Body> 1426 <ns:BilPaySchedPmtMod>";
1427 $soapString .= $soapMsgHdr;
1428 $soapString .=
"<!--Optional:--> 1429 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 1430 <ns:SubId JHANull=\"true\">$subID</ns:SubId> 1431 <ns:PmtId JHANull=\"?\">$payID</ns:PmtId> 1432 <ns:ActIntentKey>$key</ns:ActIntentKey> 1433 <ns:BilPaySchedPmtInfo> 1435 <ns:PmtProcDt JHANull=\"?\">$paymentDate</ns:PmtProcDt> 1437 <ns:PmtAmt JHANull=\"?\" Rstr=\"?\">$payAmount</ns:PmtAmt> 1439 <ns:PmtPayFromAcctInfo> 1441 <ns:PayFromId JHANull=\"?\" Rstr=\"?\">$accountFrom</ns:PayFromId> 1442 <!--You may enter ANY elements at this point--> 1443 </ns:PmtPayFromAcctInfo> 1444 </ns:BilPaySchedPmtInfo> 1446 </ns:BilPaySchedPmtMod> 1448 </soapenv:Envelope>";
1451 $soapHeaders = array();
1452 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
1453 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPaySchedPmtMod\"";
1454 $response = jxembcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
1456 if ( $parms[
"logging"] ==
"enabled" ) {
1457 $logParms = $parms[
"environment"];
1458 $logParms[
"token"] = $parms[
'Token'];
1460 $logParms[
"txnId"] = $now;
1461 $logParms[
"logPoint"] =
"EditPayment";
1462 $logParms[
"request"] = $soapString;
1463 $logParms[
"reply"] = $response;
1464 LogJXActivity( $logParms );
1467 $xmlreturn = hcuGetJXXMLResponseAll ($response,
'BilPaySchedPmtInqResponse',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
1469 if (!is_array($xmlreturn)) {
1470 throw new Exception(
"Modify Payment Invalid XML Response");
1472 if ($xmlreturn[status][response] !=
'true') {
1473 throw new Exception(
"ModifyPayment Failed. {$xmlreturn[status][message]}");
1476 $return[data] = $xmlreturn[data];
1477 $return[
"status"][
"response"]=
'true';
1480 $cacheType = CACHE_KEY_PMTS;
1481 DeleteCheckFreeCache( $parms[
"environment"][
"dbConn"],
1482 $parms[
"environment"][
"memberId"],
1483 $parms[
"BillpayId"],
1484 $parms[
"environment"][
"Cu"],
1490 catch (Exception $e) {
1491 $return[status][response] =
'false';
1492 $return[status][message] = $e->getMessage();
1493 $return[status][line] = $e->getLine();
1494 $return[data] = array();
1501 function jxGetHistory( $parms ) {
1503 $reqparms = array(
'InstitutionId'=>1,
1504 'consumername' => 1,
1505 'consumerproduct' => 1,
1506 'institutionenvironment' => 1,
1507 'xmlnamespace' => 1,
1514 $missing = array_diff_key($reqparms,$parms);
1515 if (
sizeof($missing)) {
1516 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
1520 $cacheType = CACHE_KEY_HIST;
1521 $cachedData = ReadCheckFreeCache( $parms[
"environment"][
"dbConn"],
1522 $parms[
"environment"][
"memberId"],
1523 $parms[
"BillpayId"],
1524 $parms[
"environment"][
"Cu"],
1528 if ( !is_array( $cachedData ) ) {
1529 $product = $parms[
'product'];
1530 $subID = $parms[
'BillpayId'];
1531 $soapHeader = createSoapHeader($parms);
1532 $soapMsgHdr = createSoapSearchMsgRqHdr($parms);
1534 $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/\">";
1535 $soapString .= $soapHeader;
1536 $soapString .=
" <soapenv:Body> 1537 <ns:BilPayPmtHistSrch>";
1538 $soapString .= $soapMsgHdr;
1539 $soapString .=
"<!--Optional:--> 1540 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 1541 <ns:SubId JHANull=\"true\">$subID</ns:SubId> 1542 </ns:BilPayPmtHistSrch> 1544 </soapenv:Envelope>";
1547 $soapHeaders = array();
1548 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
1549 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPayPmtHistSrch\"";
1550 $response = jxembcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
1552 if ( $parms[
"logging"] ==
"enabled" ) {
1553 $logParms = $parms[
"environment"];
1554 $logParms[
"token"] = $parms[
'Token'];
1556 $logParms[
"txnId"] = $now;
1557 $logParms[
"logPoint"] =
"GetHistory";
1558 $logParms[
"request"] = $soapString;
1559 $logParms[
"reply"] = $response;
1560 LogJXActivity( $logParms );
1562 $xmlreturn = hcuGetJXXMLResponse ($response,
'BilPayPmtHistSrchInfo',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
1563 if (!is_array($xmlreturn)) {
1564 throw new Exception(
"GetHistory Invalid XML Response");
1566 if ($xmlreturn[status][response] !=
'true') {
1567 throw new Exception(
"GetHistory Failed. {$xmlreturn['faultcode']} {$xmlreturn['faultstring']}");
1570 WriteCheckFreeCache( $parms[
"environment"][
"dbConn"],
1571 $parms[
"environment"][
"memberId"],
1572 $parms[
"BillpayId"],
1573 $parms[
"environment"][
"Cu"],
1576 $xmlreturn[
"data"]);
1578 $return[data] = $xmlreturn[data];
1579 $return[
"status"][
"response"]=
'true';
1582 $return[status][response] =
'true';
1583 $return[status][message] =
'Success';
1584 $return[
"data"] = $cachedData;
1587 catch (Exception $e) {
1588 $return[status][response] =
'false';
1589 $return[status][message] = $e->getMessage();
1590 $return[status][line] = $e->getLine();
1591 $return[data] = array();
1598 function jxGetPayeeList( $parms ) {
1602 $reqparms = array(
'InstitutionId'=>1,
1603 'consumername' => 1,
1604 'consumerproduct' => 1,
1605 'institutionenvironment' => 1,
1606 'xmlnamespace' => 1,
1613 $missing = array_diff_key($reqparms,$parms);
1614 if (
sizeof($missing)) {
1615 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
1619 $cacheType = CACHE_KEY_BILPAYPAYEESRCH;
1620 $cachedData = ReadCheckFreeCache( $parms[
"environment"][
"dbConn"],
1621 $parms[
"environment"][
"memberId"],
1622 $parms[
"BillpayId"],
1623 $parms[
"environment"][
"Cu"],
1628 if ( !is_array( $cachedData ) ) {
1629 $product = $parms[
'product'];
1630 $subID = $parms[
'BillpayId'];
1631 $soapHeader = createSoapHeader($parms);
1632 $soapMsgHdr = createSoapSearchMsgRqHdr($parms);
1634 $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/\">";
1635 $soapString .= $soapHeader;
1636 $soapString .=
" <soapenv:Body> 1637 <ns:BilPayPayeeSrch>";
1638 $soapString .= $soapMsgHdr;
1639 $soapString .=
"<!--Optional:--> 1640 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 1641 <ns:SubId JHANull=\"true\">$subID</ns:SubId> 1642 </ns:BilPayPayeeSrch> 1644 </soapenv:Envelope>";
1647 $soapHeaders = array();
1648 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
1649 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPayPayeeSrch\"";
1650 $response = jxembcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
1652 if ( $parms[
"logging"] ==
"enabled" ) {
1653 $logParms = $parms[
"environment"];
1654 $logParms[
"token"] = $parms[
'Token'];
1656 $logParms[
"txnId"] = $now;
1657 $logParms[
"logPoint"] =
"GetPayeeList";
1658 $logParms[
"request"] = $soapString;
1659 $logParms[
"reply"] = $response;
1660 LogJXActivity( $logParms );
1663 $xmlreturn = hcuGetJXXMLResponse ($response,
'BilPayPayeeSrchInfo',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
1664 if (!is_array($xmlreturn)) {
1665 throw new Exception(
"GetPayeeList Invalid XML Response");
1667 if ($xmlreturn[status][response] !=
'true') {
1668 throw new Exception(
"GetPayeeList Failed. {$xmlreturn['faultcode']} {$xmlreturn['faultstring']}");
1671 WriteCheckFreeCache( $parms[
"environment"][
"dbConn"],
1672 $parms[
"environment"][
"memberId"],
1673 $parms[
"BillpayId"],
1674 $parms[
"environment"][
"Cu"],
1677 $xmlreturn[
"data"]);
1679 $return[data] = $xmlreturn[data];
1680 $return[
"status"][
"response"]=
'true';
1683 $return[status][response] =
'true';
1684 $return[status][message] =
'Success';
1685 $return[
"data"] = $cachedData;
1688 catch (Exception $e) {
1689 $return[status][response] =
'false';
1690 $return[status][message] = $e->getMessage();
1691 $return[status][line] = $e->getLine();
1692 $return[data] = array();
1699 function jxBilPayPayeeInq( $parms ,$actIntent ) {
1702 $reqparms = array(
'InstitutionId'=>1,
1703 'consumername' => 1,
1704 'consumerproduct' => 1,
1705 'institutionenvironment' => 1,
1706 'xmlnamespace' => 1,
1714 $missing = array_diff_key($reqparms,$parms);
1715 if (
sizeof($missing)) {
1716 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
1718 $product = $parms[
'product'];
1719 $subID = $parms[
'BillpayId'];
1720 $payeeID = $parms[
'PayeeId'];
1721 $soapHeader = createSoapHeader($parms);
1722 $soapMsgHdr = createSoapMsgRqHdr($parms);
1725 $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/\">";
1726 $soapString .= $soapHeader;
1727 $soapString .=
" <soapenv:Body> 1728 <ns:BilPayPayeeInq>";
1729 $soapString .= $soapMsgHdr;
1730 $soapString .=
"<!--Optional:--> 1731 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 1732 <ns:SubId JHANull=\"true\">$subID</ns:SubId> 1733 <ns:PayeeId JHANull=\"?\">$payeeID</ns:PayeeId>";
1735 if (strlen($actIntent) > 0){
1736 $soapString .=
"<ns:ActIntent>$actIntent</ns:ActIntent>";
1739 $soapString .=
"</ns:BilPayPayeeInq> 1741 </soapenv:Envelope>";
1746 $soapHeaders = array();
1747 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
1748 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPayPayeeInq\"";
1749 $response = jxembcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
1751 if ( $parms[
"logging"] ==
"enabled" ) {
1752 $logParms = $parms[
"environment"];
1753 $logParms[
"token"] = $parms[
'Token'];
1755 $logParms[
"txnId"] = $now;
1756 $logParms[
"logPoint"] =
"BilPayPayeeInq";
1757 $logParms[
"request"] = $soapString;
1758 $logParms[
"reply"] = $response;
1759 LogJXActivity( $logParms );
1762 $xmlreturn = hcuGetJXXMLResponseAll ($response,
'BilPayPayeeInqResponse',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
1763 if (!is_array($xmlreturn)) {
1764 throw new Exception(
"BilPayPayeeInq Invalid XML Response");
1766 if ($xmlreturn[status][response] !=
'true') {
1767 throw new Exception(
"BilPayPayeeInq Failed. {$xmlreturn['faultcode']} {$xmlreturn['faultstring']}");
1770 $return[data] = $xmlreturn[data];
1771 $return[
"status"][
"response"]=
'true';
1774 catch (Exception $e) {
1775 $return[status][response] =
'false';
1776 $return[status][message] = $e->getMessage();
1777 $return[status][line] = $e->getLine();
1778 $return[data] = array();
1784 function jxBilPaySchedPmtInq ( $parms ){
1787 $reqparms = array(
'InstitutionId'=>1,
1788 'consumername' => 1,
1789 'consumerproduct' => 1,
1790 'institutionenvironment' => 1,
1791 'xmlnamespace' => 1,
1798 $missing = array_diff_key($reqparms,$parms);
1799 if (
sizeof($missing)) {
1801 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
1804 $product = $parms[
'product'];
1805 $subID = $parms[
'BillpayId'];
1806 $pmtID = $parms[
'Payment'][
'Id'];
1807 $soapHeader = createSoapHeader($parms);
1808 $soapMsgHdr = createSoapMsgRqHdr($parms);
1810 $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/\">";
1811 $soapString .= $soapHeader;
1812 $soapString .=
" <soapenv:Body> 1813 <ns:BilPaySchedPmtInq>";
1814 $soapString .= $soapMsgHdr;
1815 $soapString .=
"<!--Optional:--> 1816 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 1817 <ns:SubId JHANull=\"true\">$subID</ns:SubId> 1818 <ns:PmtId JHANull=\"true\">$pmtID</ns:PmtId> 1819 <ns:ActIntent>Upd</ns:ActIntent> 1820 </ns:BilPaySchedPmtInq> 1822 </soapenv:Envelope>";
1823 $soapHeaders = array();
1824 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
1825 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPaySchedPmtInq\"";
1826 $response = jxembcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
1828 if ( $parms[
"logging"] ==
"enabled" ) {
1829 $logParms = $parms[
"environment"];
1830 $logParms[
"token"] = $parms[
'Token'];
1832 $logParms[
"txnId"] = $now;
1833 $logParms[
"logPoint"] =
"BilPaySchedPmtInq";
1834 $logParms[
"request"] = $soapString;
1835 $logParms[
"reply"] = $response;
1836 LogJXActivity( $logParms );
1839 $xmlreturn = hcuGetJXXMLResponseAll ($response,
'BilPaySchedPmtInqResponse',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
1840 if (!is_array($xmlreturn)) {
1841 throw new Exception(
"Scheduled Payment Inquiry Invalid XML Response");
1843 if ($xmlreturn[status][response] !=
'true') {
1844 throw new Exception(
"Scheduled Payment Inquiry Failed. {$xmlreturn['faultcode']} {$xmlreturn['faultstring']}");
1847 $return[data] = $xmlreturn[data];
1848 $return[
"status"][
"response"]=
'true';
1850 catch (Exception $e) {
1851 $return[status][response] =
'false';
1852 $return[status][message] = $e->getMessage();
1853 $return[status][line] = $e->getLine();
1854 $return[data] = array();
1861 function jxGetScheduled( $parms ) {
1864 $reqparms = array(
'InstitutionId'=>1,
1865 'consumername' => 1,
1866 'consumerproduct' => 1,
1867 'institutionenvironment' => 1,
1868 'xmlnamespace' => 1,
1875 $missing = array_diff_key($reqparms,$parms);
1876 if (
sizeof($missing)) {
1877 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
1881 $cacheType = CACHE_KEY_PMTS;
1882 $cachedData = ReadCheckFreeCache( $parms[
"environment"][
"dbConn"],
1883 $parms[
"environment"][
"memberId"],
1884 $parms[
"BillpayId"],
1885 $parms[
"environment"][
"Cu"],
1890 if ( !is_array( $cachedData ) ) {
1891 $product = $parms[
'product'];
1892 $subID = $parms[
'BillpayId'];
1893 $soapHeader = createSoapHeader($parms);
1894 $soapMsgHdr = createSoapSearchMsgRqHdr($parms);
1896 $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/\">";
1897 $soapString .= $soapHeader;
1898 $soapString .=
" <soapenv:Body> 1899 <ns:BilPaySchedPmtSrch>";
1900 $soapString .= $soapMsgHdr;
1901 $soapString .=
"<!--Optional:--> 1902 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 1903 <ns:SubId JHANull=\"true\">$subID</ns:SubId> 1904 </ns:BilPaySchedPmtSrch> 1906 </soapenv:Envelope>";
1909 $soapHeaders = array();
1910 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
1911 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPaySchedPmtSrch\"";
1912 $response = jxembcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
1914 if ( $parms[
"logging"] ==
"enabled" ) {
1915 $logParms = $parms[
"environment"];
1916 $logParms[
"token"] = $parms[
'Token'];
1918 $logParms[
"txnId"] = $now;
1919 $logParms[
"logPoint"] =
"GetScheduled";
1920 $logParms[
"request"] = $soapString;
1921 $logParms[
"reply"] = $response;
1922 LogJXActivity( $logParms );
1925 $xmlreturn = hcuGetJXXMLResponse ($response,
'BilPaySchedPmtSrchInfo',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
1926 if (!is_array($xmlreturn)) {
1927 throw new Exception(
"GetScheduled Invalid XML Response");
1929 if ($xmlreturn[status][response] !=
'true') {
1930 throw new Exception(
"Get Scheduled Failed. {$xmlreturn['faultcode']} {$xmlreturn['faultstring']}");
1933 WriteCheckFreeCache( $parms[
"environment"][
"dbConn"],
1934 $parms[
"environment"][
"memberId"],
1935 $parms[
"BillpayId"],
1936 $parms[
"environment"][
"Cu"],
1939 $xmlreturn[
"data"]);
1941 $return[data] = $xmlreturn[data];
1942 $return[
"status"][
"response"]=
'true';
1945 $return[status][response] =
'true';
1946 $return[status][message] =
'Success';
1947 $return[
"data"] = $cachedData;
1950 catch (Exception $e) {
1951 $return[status][response] =
'false';
1952 $return[status][message] = $e->getMessage();
1953 $return[status][line] = $e->getLine();
1954 $return[data] = array();
1960 function jxStopPayment( $parms, $key ) {
1963 $reqparms = array(
'InstitutionId'=>1,
1964 'consumername' => 1,
1965 'consumerproduct' => 1,
1966 'institutionenvironment' => 1,
1967 'xmlnamespace' => 1,
1974 $missing = array_diff_key($reqparms,$parms);
1975 if (
sizeof($missing)) {
1976 throw new Exception(
"Missing Parameters (" . join(
", ",array_keys($missing)) .
" )");
1978 $payID = $parms[Payment][Id];
1979 $product = $parms[
'product'];
1980 $subID = $parms[
'BillpayId'];
1981 $soapHeader = createSoapHeader($parms);
1982 $soapMsgHdr = createSoapMsgRqHdr($parms);
1984 $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/\">";
1985 $soapString .= $soapHeader;
1986 $soapString .=
" <soapenv:Body> 1987 <ns:BilPaySchedPmtMod>";
1988 $soapString .= $soapMsgHdr;
1989 $soapString .=
"<!--Optional:--> 1990 <ns:BilPayProd JHANull=\"?\">$product</ns:BilPayProd> 1991 <ns:SubId JHANull=\"true\">$subID</ns:SubId> 1992 <ns:PmtId JHANull=\"?\">$payID</ns:PmtId> 1993 <ns:ActIntentKey>$key</ns:ActIntentKey> 1994 <ns:Dlt>True</ns:Dlt> 1995 </ns:BilPaySchedPmtMod> 1997 </soapenv:Envelope>";
2000 $soapHeaders = array();
2001 $soapHeaders[] =
"Content-Type: text/xml; charset=utf-8";
2002 $soapHeaders[] =
"SOAPAction: \"http://jackhenry.com/ws/BilPaySchedPmtMod\"";
2003 $response = jxembcurl($soapString, $soapHeaders, $parms[
'serviceurl'],
'',
'',
'');
2005 if ( $parms[
"logging"] ==
"enabled" ) {
2006 $logParms = $parms[
"environment"];
2007 $logParms[
"token"] = $parms[
'Token'];
2009 $logParms[
"txnId"] = $now;
2010 $logParms[
"logPoint"] =
"StopPayment";
2011 $logParms[
"request"] = $soapString;
2012 $logParms[
"reply"] = $response;
2013 LogJXActivity( $logParms );
2016 $xmlreturn = hcuGetJXXMLResponseAll ($response,
'BilPaySchedPmtModResponse',$parms[
'xmlnamespace'],$parms[
'xmlnamespaceresp']);
2017 if (!is_array($xmlreturn)) {
2018 throw new Exception(
"Stop Payment Invalid XML Response");
2020 if ($xmlreturn[status][response] !=
'true') {
2021 throw new Exception(
"Stop Payment Failed. {$xmlreturn['faultcode']} {$xmlreturn['faultstring']}");
2024 $return[data] = $xmlreturn[data];
2025 $return[
"status"][
"response"]=
'true';
2028 $cacheType = CACHE_KEY_PMTS;
2029 DeleteCheckFreeCache( $parms[
"environment"][
"dbConn"],
2030 $parms[
"environment"][
"memberId"],
2031 $parms[
"BillpayId"],
2032 $parms[
"environment"][
"Cu"],
2038 $cacheType = CACHE_KEY_HIST;
2039 DeleteCheckFreeCache( $parms[
"environment"][
"dbConn"],
2040 $parms[
"environment"][
"memberId"],
2041 $parms[
"BillpayId"],
2042 $parms[
"environment"][
"Cu"],
2048 catch (Exception $e) {
2049 $return[status][response] =
'false';
2050 $return[status][message] = $e->getMessage();
2051 $return[status][line] = $e->getLine();
2052 $return[data] = array();
2058 function jxembcurl($soapString, $soapHeaders, $soapServer, $soapCertfile=
'', $soapKeyfile=
'', $soapCACert=
'') {
2063 $useEmbedded =
true;
2067 CURLOPT_SSL_VERIFYPEER => 0,
2068 CURLOPT_RETURNTRANSFER => 1,
2069 CURLOPT_HEADER => 0,
2071 CURLOPT_POSTFIELDS =>
"$soapString",
2072 CURLOPT_URL =>
"$soapServer");
2073 if (!empty($soapCertfile)) {
2074 $curlopts[CURLOPT_SSLCERT] =
"$soapCertfile";
2076 if (!empty($soapKeyfile)) {
2077 $curlopts[CURLOPT_SSLKEY] =
"$soapKeyfile";
2079 if (!empty($soapCACert)) {
2080 $curlopts[CURLOPT_CAINFO] =
"$soapCACert";
2084 @curl_setopt_array($ch, $curlopts);
2085 @curl_setopt($ch, CURLOPT_HTTPHEADER, $soapHeaders);
2087 $response = @curl_exec($ch);
2090 if (curl_errno($ch)) {
2099 $clData =
"--data-binary '$soapString' ";
2102 if (is_array($soapHeaders)) {
2103 foreach ($soapHeaders as $hdrLine) {
2104 $clHeaders .=
"-H '$hdrLine' ";
2108 if (!empty($soapCertfile)) {
2109 $clCert =
"--cert '$soapCertfile' ";
2112 if (!empty($soapKeyfile)) {
2113 $clKey=
"--key '$soapKeyfile' ";
2116 if (!empty($soapCACert)) {
2117 $clCA =
"--cacert $soapCACert";
2121 $clAction =
"'$soapServer'";
2123 $curlExec =
"/usr/bin/curl $clData $clHeaders $clCert $clKey $clCA $clAction";
2125 $clCurl = popen($curlExec,
"r");
2131 while ($buff = fread ($clCurl, 1500)) {
2134 $pipe_err = pclose($clCurl);
2142 function hcuGetJXXMLResponseAll ($ipayXML,$ipayITEM, $jxSoapNS,$jxRespNS){
2144 $xml = simplexml_load_string($ipayXML,
"SimpleXMLElement",LIBXML_NOWARNING);
2145 if (!is_object($xml)) {
2146 throw new Exception(
"Invalid XML");
2148 $xml->registerXPathNamespace(
'jx', $jxSoapNS);
2149 $xml->registerXPathNamespace(
'item', $jxRespNS);
2151 $xpathquery =
"jx:Body//item:" . $ipayITEM;
2153 $dataobj = $xml->xpath($xpathquery);
2154 if (!is_array($dataobj)) {
2155 throw new Exception(
"xPath Failed");
2157 $errorresponse = $xml->xpath(
"//jx:Fault");
2159 if (is_array($errorresponse) && count($errorresponse)) {
2160 $errordetail = $errorresponse[0]->detail->HdrFault->FaultRecInfoArray->FaultMsgRec;
2161 $fault = trim( $errordetail->ErrCode[0]);
2162 $faultString = trim( $errordetail->ErrDesc[0]);
2163 $resp_arr = array(
'faultcode' => $fault,
2164 'faultstring' => $faultString);
2165 $resp_arr[
"status"][
"response"] =
'false';
2166 $resp_arr[
"status"][
"message"] = $faultString;
2167 throw new Exception($resp_arr[
'status'][
'message']);
2169 $dataresponse = objectToArray($dataobj);
2170 if (!is_array($dataresponse)) {
2171 throw new Exception(
"objectToArray conversion Failed");
2173 $resp_arr[status][response] =
'true';
2174 $resp_arr[status][message] =
'Success';
2176 $resp_arr[data] = $dataresponse[0];
2178 }
catch (Exception $e) {
2179 $resp_arr[status][response] =
'false';
2180 $resp_arr[status][message] = $e->getMessage();
2181 $resp_arr[status][line] = $e->getLine();
2187 function hcuGetJXXMLResponse ($ipayXML,$ipayITEM, $jxSoapNS,$jxRespNS){
2189 $xml = simplexml_load_string($ipayXML,
"SimpleXMLElement",LIBXML_NOWARNING);
2190 if (!is_object($xml)) {
2191 throw new Exception(
"Invalid XML");
2193 $xml->registerXPathNamespace(
'jx', $jxSoapNS);
2194 $xml->registerXPathNamespace(
'item', $jxRespNS);
2196 $xpathquery =
"jx:Body//item:" . $ipayITEM;
2198 $dataobj = $xml->xpath($xpathquery);
2199 if (!is_array($dataobj)) {
2200 throw new Exception(
"xPath Failed");
2202 $errorresponse = $xml->xpath(
"//jx:Fault");
2204 if (is_array($errorresponse) && count($errorresponse)) {
2205 $errordetail = $errorresponse[0]->detail->HdrFault->FaultRecInfoArray->FaultMsgRec;
2206 $fault = trim( $errordetail->ErrCode[0]);
2207 $faultString = trim( $errordetail->ErrDesc[0]);
2208 $resp_arr = array(
'faultcode' => $fault,
2209 'faultstring' => $faultString);
2210 $resp_arr[
"status"][
"response"] =
'false';
2211 $resp_arr[
"status"][
"message"] = $faultString;
2212 throw new Exception($resp_arr[
'status'][
'message']);
2214 $dataresponse = objectToArray($dataobj);
2215 if (!is_array($dataresponse)) {
2216 throw new Exception(
"objectToArray conversion Failed");
2218 $resp_arr[status][response] =
'true';
2219 $resp_arr[status][message] =
'Success';
2221 $resp_arr[data] = $dataresponse;
2223 }
catch (Exception $e) {
2224 $resp_arr[status][response] =
'false';
2225 $resp_arr[status][message] = $e->getMessage();
2226 $resp_arr[status][line] = $e->getLine();
2231 function objectToArray( $object )
2234 if( !is_object( $object ) && !is_array( $object ) )
2238 if( is_object( $object ) )
2240 $object = get_object_vars( $object );
2242 return array_map(
'objectToArray', $object );
2247 function ReadCheckFreeCache($dbh, $user, $subscriber, $cu, $cacheType, $session) {
2248 $sql =
"SELECT session, entry, data 2251 AND username = '$user' 2252 AND subscriber = '$subscriber' 2253 AND type = '$cacheType'";
2255 $rs = db_query( $sql, $dbh );
2260 while ($cacheRow = db_fetch_array($rs, $row++)) {
2262 if ( strlen( $returnData ) > 0 ) {
2263 DeleteCheckFreeCache($dbh, $user, $subscriber, $cu, $cacheType, $cacheRow[
"session"], $cacheRow[
"entry"]);
2264 }
else if ( $cacheRow[
"session"] == $session ) {
2266 $returnData = $cacheRow[
"data"];
2269 DeleteCheckFreeCache($dbh, $user, $subscriber, $cu, $cacheType, $cacheRow[
"session"],
"");
2273 $returnStructure = json_decode( $returnData,
true );
2275 return $returnStructure;
2280 function DeleteCheckFreeCache($dbh, $user, $subscriber, $cu, $cacheType, $session, $timestamp) {
2281 $sql =
"DELETE FROM cu_vendorcache 2283 AND username = '$user' 2284 AND subscriber = '$subscriber'";
2286 if ( strlen( $cacheType ) ) {
2287 $sql .=
" AND type = '$cacheType'";
2290 if ( strlen( $session ) ) {
2291 $sql .=
" AND session = '$session'";
2294 if ( strlen( $timestamp ) ) {
2295 $sql .=
" AND entry = '$timestamp'";
2297 db_query( $sql, $dbh );
2301 function WriteCheckFreeCache($dbh, $user, $subscriber, $cu, $cacheType, $session, $data) {
2303 if ( !$dbh || !$user || !$subscriber || !$cu || !$cacheType || !$session || !$data ) {
2309 $jsonData = json_encode( $data );
2310 }
catch ( Exception $e ) {
2314 if ( strlen( $jsonData ) ) {
2315 $jsonData = pg_escape_string($jsonData);
2317 $sql =
"INSERT INTO cu_vendorcache (cu, username, subscriber, session, type, data) 2318 VALUES ('$cu', '$user', '$subscriber', '$session', '$cacheType', '$jsonData' )";
2320 $result = db_query( $sql, $dbh );
2325 function LogJXActivity( $logData ) {
2327 $logPoint = substr( $logData[
"logPoint"], 0, 35 );
2328 $sessionId = substr( $logData[
"token"], -20 );
2329 $txnId = substr( $logData[
"txnId"], -20 );
2330 $request = pg_escape_string(trim($logData[
"request"]));
2331 $reply = pg_escape_string(trim($logData[
"reply"]));
2335 $sql =
"INSERT INTO cu_vendorlog (cu, user_id, service, sub_service, 2336 session_id, txn_id, user_ip, request, response) 2337 VALUES ('{$logData["Cu
"]}', '{$logData["memberId
"]}', 'IPAYJX', 2338 '$logPoint', '$sessionId', '$txnId', 2339 '{$logData["userIP
"]}', '$request', '$reply')";
2341 db_query($sql, $logData[
"dbConn"] );
2348 mt_srand((
double)microtime()*10000);
2349 $charid = strtoupper(md5(uniqid(rand(),
true)));
2352 .substr($charid, 0, 8).$hyphen
2353 .substr($charid, 8, 4).$hyphen
2354 .substr($charid,12, 4).$hyphen
2355 .substr($charid,16, 4).$hyphen
2356 .substr($charid,20,12)