option('lid'); $appObj = new ConsumerApplication(); if(!empty($lids)) { $appObj = $appObj->whereIn('id', $lids); } $appObj->where('lender_id', 3)->where('state','approved')->chunk(100, function($applications){ foreach($applications as $app) { // check if payment link is created and pending $opObjs = OnlinePayment::whereIn('purpose',['processing_fee','advance_amount']) ->where('status','Pending')->get(); if(!empty($opObjs)) { foreach ($opObjs as $opobj) { if(!empty($opobj->payment_id)) { $ret1 = AvanseProcesses::getPaymentStatus(['id' => $app->id, 'paymentRequestId' => $opobj->payment_id]); if (!empty($ret1)) { $opobj->response = $ret1; $output = json_decode($ret1, 1); if (!empty($output[0]['requestStatus']) && !empty($output[0]['requestStatus'])) { switch (strtolower($output[0]['requestStatus'])) { case 'new_request': // payment is still pending //return 'pending'; $opobj->save(); break; case 'payment_failed': // payment failed $opobj->status = 'failed'; $opobj->save(); break; case 'email_completed': case 'email_failed': case 'email_processing': case 'payment_completed': case 'receipt_completed': case 'receipt_failed': case 'receipt_processing': case 'sms_completed': case 'sms_failed': case 'sms_processing': // payment is success in above cases $opobj->status = 'paid'; $opobj->save(); $data = [ 'pay_id' => $opobj->id, 'amount' => $opobj->amount, 'coll_by' => 'avanse', //'pay_req_id' => $opobj->payment_id, 'id' => $app->id, 'purpose' => $opobj->purpose , 'txn_id' => !empty($output[0]['paymentId']) ? $output[0]['paymentId']: '', 'trans_ack' => !empty($output[0]['orderId']) ? $output[0]['orderId']: '', 'cf_txn_id' => !empty($output[0]['pennantReceiptNo']) ? $output[0]['pennantReceiptNo']: '', 'pay_date' => !empty($output[0]['receiptDate']) ? $output[0]['receiptDate']: '', ]; $ret = PaymentTransaction::addTransaction($data); break; default: $opobj->save(); //return 'pending'; } } } } } } } }); } }