option('con'); $param = $this->option('param'); if(!empty($con)) { switch ($con) { case 'jobs': try { $this->paytmpaymentupdate(new Request($param)); }catch (\Exception $e){ return Utility::handlerSendFailed([\Config::get("constants.txt.txt_errors") => [$e->getMessage().'|'.$e->getFile().'|'.$e->getLine().'|'.$e->getLine()]]); } break; default: return Utility::handlerSendFailed([\Config::get("constants.txt.txt_errors") => ['No case found to handle in ExecuteJob']]); } } else { return Utility::handlerSendFailed([Config::get("constants.txt.txt_errors") => ['Context is missing']]); } } public function paytmpaymentupdate(Request $request){ $data = ($request->all()); (new Slack(new Request(['title' => 'PAYTM Webhook', 'fields' => ['data' => json_encode($data)], 'group' => Slack::$STAGE_TESTING])))->send(); if ($data) { $order_data = explode("_",$data['ORDERID']); $application = ProFormaInvoice::where('loan_application_no', $order_data['0'])->first(['application_id']); $application_id = $application->application_id; if (isset($order_data[3]) and ($order_data[3] != "")){ $payment_id_array = array($order_data[1], $order_data[2]); } else { $payment_id_array = array($order_data[1]); } foreach ($payment_id_array as $payment_id) { $onlinepayment = OnlinePayment::find($payment_id); // (new ConsumerApplicationController())->vendorWebhook($application_id, ['type' => 'Paytm-Webhook','status' => $data['STATUS'], 'data' => ['purpose' => $onlinepayment->purpose]]); try{ $vendorWebhook = new VendorWebhook(); $payload = (new ConsumerApplicationController())->vendorWebhook($application_id, ['type' => 'Paytm-Webhook','status' => $data['STATUS'], 'data' => ['purpose' => $onlinepayment->purpose]]); if (isset($payload)) { $vendorWebhook->handle('Paytm-Webhook', $payload); } } catch (\Exception $e){ $cwFactory = new CloudWatchLoggerFactory(); $cwFactory->logger(json_encode(['message' => $e->getMessage(), 'line' => $e->getLine(), 'trace' => $e->getTraceAsString()])); } if (($onlinepayment->status != 'TXN_SUCCESS') or (!isset($onlinepayment->response))){ $onlinepayment->status = $data['STATUS']; $onlinepayment->response = json_encode($data); $onlinepayment->save(); //(new Slack(new Request(['title' => 'PAYTM Webhook 1', 'fields' => ['data' => json_encode($data), "STATUS" => $data['STATUS']], 'group' => Slack::$STAGE_TESTING])))->send(); if($data['STATUS'] == 'TXN_SUCCESS'){ try { //(new Slack(new Request(['title' => 'PAYTM Webhook 2', 'fields' => ['data' => json_encode($data), "STATUS" => $data['STATUS']], 'group' => Slack::$STAGE_TESTING])))->send(); $data_reuse['amount'] = (int)$data['TXNAMOUNT'] ?? $onlinepayment->amount; $data_reuse['payment_date'] = date('Y-m-d'); $data_reuse['mode'] = "Paytm"; $data_reuse['paid_by'] = ""; $data_reuse['collected_by'] = ""; $data_reuse['bank_id'] = (new ConsumerApplicationController())->getTransactionBank($application_id); $data_reuse['wallet_name'] = ""; $data_reuse['application_id'] = $application_id; $data_reuse['trasanction_id'] = $data['TXNID']; $data_reuse['online_payment_id'] = $onlinepayment->id; $data_reuse['fore_closure_date'] = isset($onlinepayment->foreclosure_date) ? $onlinepayment->foreclosure_date : ''; $data_reuse['trasanction_acknowledgement'] = ""; $data_reuse['payment_type'] = $onlinepayment->purpose ?? ''; (new Slack(new Request(['title' => 'PAYTM Webhook 3', 'fields' => ['data' => json_encode($data_reuse), "STATUS" => $data['STATUS']], 'group' => Slack::$STAGE_TESTING])))->send(); $payment_emi = new LoanManagement(); $payment_emi->paymentReconcile($data_reuse); } catch (\Exception $e) { (new Slack(new Request(['title' => 'Paytm Entry Error', 'fields' => ['Message' => $e->getMessage(), 'Line' => $e->getLine(), 'File' => $e->getFile()], 'group' => Slack::$STAGE_TESTING])))->send(); } } } } $cwFactory = new CloudWatchLoggerFactory(); $cwFactory->logger(json_encode($data)); } return response()->json(['status'=>'OK'], 200); } }