%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
<?php class Pay extends MY_Controller { function __construct() { parent::__construct(); $this->load->model('pay_model', 'pay'); $this->load->model('user_model', 'user'); $this->load->helper('paytm'); } function load_paytm_form($appId=0, $coupanId=0){ $appDtl=$this->user->applicationDtl($appId); if(!$appDtl){ $this->json_data(array('success'=>'F', 'msg'=>'Invalid Data')); } $coupanDtl=[]; if($coupanId){ $coupanDtl=$this->db->select("title, amt")->get_where("master_coupans", array('id'=>$coupanId))->row_array(); } $usrDtl=$this->user->detail(); $amt=$appDtl['fee']; if($coupanDtl){ $amt=$amt-$coupanDtl['amt']; } $orderId=$appId.'_'.time(); $custId='CUST'.$appId.'_'.time(); $trans=array( 'applicant_id'=>$appDtl['applicant_id'], 'application_id'=>$appDtl['id'], 'pay_order_id'=>$orderId, 'pay_cust_id'=>$custId, 'txn_amt'=>$amt, 'created'=>currentDT(), 'updated'=>currentDT(), ); $trans_id=$this->dba->insert("pay_trans", $trans); $this->db->where('id', $appId)->update("applications", array('pay_trans_id'=>$trans_id, 'fee'=>$appDtl['fee'], 'coupan_used'=>$coupanDtl?$coupanDtl['title']:'', 'coupan_amt'=>$coupanDtl?$coupanDtl['amt']:0, 'updated'=>currentDT())); $inf=array( 'ORDER_ID'=>$orderId, 'CUST_ID'=>$custId, 'MOBILE_NO'=>$usrDtl['mob'], 'EMAIL'=>$usrDtl['email'], 'TXN_AMOUNT'=>$amt, 'trans_id'=>$trans_id ); $this->load->view("pages/paytm_form", $inf); } function paytm_response($trans_id){ $res=$_POST; $transdtl=$this->pay->trans_dtl($trans_id); $paytmChecksum=isset($res["CHECKSUMHASH"]) ? $res["CHECKSUMHASH"] : ""; $isValidChecksum=verifychecksum_e($res, PAYTM_MERCHANT_KEY, $paytmChecksum); $err=FALSE; $pay_success=FALSE; if($isValidChecksum == "TRUE"){ if($res["STATUS"] == "TXN_SUCCESS") { $pay_success=TRUE; } }else{ $err=TRUE; } if(!$err){ $inf=replace_null(array( 'payment_status'=>$pay_success?'SUCCESS':'FAIL', 'txn_id'=>$res['TXNID'], 'bank_txn_id'=>$res['BANKTXNID'], 'txn_amt'=>$res['TXNAMOUNT'], 'txn_date'=>$res['TXNDATE'], 'txn_status'=>$res["STATUS"], 'respcode'=>$res["RESPCODE"], 'respmsg'=>$res["RESPMSG"], 'bank_name'=>$res["BANKNAME"], 'payment_mode'=>$res["PAYMENTMODE"], 'updated'=>currentDT(), 'full_resp'=>serialize($res), )); $this->db->update("pay_trans", $inf, array('id'=>$trans_id)); if($this->db->affected_rows()){ if($pay_success){ $up_data=array('step_completed'=>3, 'payment_status'=>1, 'payment_mode'=>'ONLINE', 'updated'=>currentDT(), 'step3date'=>currentDT()); $this->db->where("id", $transdtl['application_id'])->update("applications", $up_data); $this->pay->addLeadToPS($transdtl['application_id']); $this->common->sendPaymentConfirmMsg($transdtl['application_id']); } $this->common->sendPaymentAlertToAdmin($transdtl['application_id']); }else{ $err=TRUE; } } if($err){ die("Error!"); } $lpage=$this->db->select('lpage')->order_by("id", "DESC")->limit(1)->get_where("applicants_visit_history", array('applicant_id'=>$transdtl['applicant_id']))->row()->lpage; if(!$lpage){ $lpage_id=$this->db->select('lpage_id')->get_where("applicants", array('id'=>$transdtl['applicant_id']))->row()->lpage_id; $lpage=rtrim($this->db->get_where("landing_pages", array('id'=>$lpage_id))->row()->title, "/"); } redirect($lpage.'/dashboard/pay-res/'.encode($trans_id)); } /** Check Order Status */ function checkPayTxnStatus(){ $inf=array('success'=>'F', 'statusUpdated'=>'F', 'msg'=>'No response found!'); $post=$this->input->post(); $transDtl=$this->pay->trans_dtl($post['trans_id']); if(!$transDtl){ $inf['msg']="Invalid Data"; $this->json_data($inf); } $notiFlg=true; if($this->db->select("id")->get_where("pay_trans", array('application_id'=>$transDtl['application_id'], 'payment_status'=>'SUCCESS'))->row()->id){ $notiFlg=false; } $requestParamList=array("MID"=>PAYTM_MERCHANT_MID , "ORDERID" => $transDtl['pay_order_id']); $StatusCheckSum=getChecksumFromArray($requestParamList, PAYTM_MERCHANT_KEY); $requestParamList['CHECKSUMHASH']=$StatusCheckSum; $paytmRes=getTxnStatusNew($requestParamList); if($paytmRes){ if($paytmRes['STATUS']!=$transDtl['txn_status']){ /** Table: pay_trans */ $d=array( 'id'=>$transDtl['id'], 'txn_id'=>$paytmRes['TXNID'], 'bank_txn_id'=>$paytmRes['BANKTXNID'], 'txn_amt'=>$paytmRes['TXNAMOUNT'], 'refund_amt'=>$paytmRes['REFUNDAMT'], 'txn_status'=>$paytmRes['STATUS'], 'txn_date'=>$paytmRes['TXNDATE'], 'bank_name'=>$paytmRes['BANKNAME'], 'payment_mode'=>$paytmRes['PAYMENTMODE'], 'full_resp'=>serialize($paytmRes), ); if($transDtl['respcode']!=141){ $d['respcode']=$paytmRes['RESPCODE']; $d['respmsg']=$paytmRes['RESPMSG']; } if($paytmRes['STATUS']=='TXN_SUCCESS'){ $d['payment_status']='SUCCESS'; }else{ $d['payment_status']='FAIL'; } if($paytmRes['REFUNDAMT']>0){ $d['payment_status']='REFUNDED'; } $this->common->save(replace_null($d), "pay_trans"); /** \ */ /** Table: applications and email/sms alert */ if($paytmRes['STATUS']=='TXN_SUCCESS'){ if($notiFlg){ $this->load->model('ps_model', 'ps'); $this->ps->addLeadToPS($transDtl['application_id']); $this->common->sendPaymentConfirmMsg($transDtl['application_id']); } } $successTransId=$this->db->select("id")->get_where("pay_trans", array('application_id'=>$transDtl['application_id'], 'payment_status'=>'SUCCESS'))->row()->id; if($successTransId){ $d=array('id'=>$transDtl['application_id'], 'pay_trans_id'=>$successTransId, 'step_completed'=>3, 'payment_mode'=>'ONLINE', 'payment_status'=>1, 'step3date'=>currentDT()); }else{ $d=array('id'=>$transDtl['application_id'], 'pay_trans_id'=>$transDtl['id'], 'step_completed'=>2, 'step3date'=>NULL, 'payment_status'=>0, 'payment_mode'=>''); } $this->common->save($d, "applications"); /** \ */ /** Table: admin email/sms alert */ $this->common->sendPaymentAlertToAdmin($transDtl['application_id']); /** \ */ $this->load->model("leads_model", "leads"); $inf['dtl']=$this->leads->detail($transDtl['application_id'], false); $inf['statusUpdated']='T'; } $inf['payres']=$paytmRes; $inf['success']='T'; } $this->json_data($inf); } } //EOF