Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * Created by PhpStorm.
- * User: AdzimZF
- * Date: 10/5/17
- * Time: 8:46 AM
- */
- namespace App\Http\Controllers\DOKU;
- use App\Models\DokuTopup;
- use App\Models\JukirVirtualBalance;
- use App\Models\JukirVirtualPayment;
- use Helper;
- use Illuminate\Http\Request;
- use Laravel\Lumen\Routing\Controller as BaseController;
- use Validator;
- class NotifyController extends BaseController
- {
- public function notify(Request $request)
- {
- //update notify table
- $sessionId = Helper::setSessionId($request->input('SESSIONID'), $request->input('TRANSIDMERCHANT'));
- $dokuTopup = DokuTopup::where(["session_id"=>$sessionId])->first();
- if($dokuTopup == null){
- $data["status"] = 401;
- $data["message"] = "Data Not Found";
- $data["data"] = $dokuTopup;
- return response()->json($data, 401) ;
- }
- $jukirBalance = JukirVirtualBalance::where(['id_jukir' => $dokuTopup->user_id])->first();
- //create balance if null
- if($jukirBalance == null) {
- $jukirBalance = new JukirVirtualBalance();
- $jukirBalance->id_jukir = $dokuTopup->user_id;
- $jukirBalance->key_access = sha1(date("YmdHis"));
- $jukirBalance->balance = 0;
- $jukirBalance->last_topup_balance = 0;
- $jukirBalance->last_topup_datetime = date('Y-m-d H:i:s');
- $jukirBalance->is_active = 1;
- $jukirBalance->save();
- $jukirBalance = JukirVirtualBalance::where(['id_jukir' => $dokuTopup->user_id])->first();
- }
- if (!empty($dokuTopup) and $request->input('RESPONSECODE') == '0000') {
- $dokuTopup->update([
- 'response_code' => $request->input('RESPONSECODE'),
- 'trxstatus' => $request->input('RESULTMSG'),
- 'payment_channel' => $request->input('PAYMENTCHANNEL'),
- 'bank_issuer' => $request->input('BANK')
- ]);
- //save into transaction
- $balanceTotal = $jukirBalance->balance+$dokuTopup->totalamount;
- $jVP = new JukirVirtualPayment();
- $jVP->id_transaction = $dokuTopup->session_id;
- $jVP->jukir_id = $dokuTopup->user_id;
- $jVP->amount = $dokuTopup->totalamount;
- $jVP->payment_type = 7;
- $jVP->balance_before = $jukirBalance->balance;
- $jVP->balance_after = $balanceTotal;
- $jVP->status = 2;
- $jVP->description = 'Success topup';
- $jVP->qrcode = $dokuTopup->payment_code;
- $jVP->time_request = $dokuTopup->payment_date_time;
- $jVP->time_response = date('Y-m-d H:i:s');
- $jVP->is_active = 1;
- $jukirBalance->update([
- 'balance' => $balanceTotal,
- 'last_topup_balance' => $dokuTopup->totalamount,
- 'last_topup_datetime' => $dokuTopup->payment_date_time
- ]);
- if ($jVP->save()){
- //throw success to pusher
- $data["balance"] = $balanceTotal;
- $data["last_topup_balance"] = $dokuTopup->totalamount;
- $data["last_topup_datetime"] = $dokuTopup->payment_date_time;
- #pusher subscribe
- Helper::pushRealtime('chanel-'.$dokuTopup->user_id, 'updateBalance', $data);
- Helper::pusher('chanel-'.$dokuTopup->user_id, 'updateBalance', $data);
- return "Continue";
- }
- //throw into pusher
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement