Advertisement
Guest User

topup

a guest
Jan 22nd, 2018
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.77 KB | None | 0 0
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: AdzimZF
  5. * Date: 10/5/17
  6. * Time: 8:46 AM
  7. */
  8.  
  9. namespace App\Http\Controllers\DOKU;
  10.  
  11. use App\Models\DokuTopup;
  12. use App\Models\JukirVirtualBalance;
  13. use App\Models\JukirVirtualPayment;
  14. use Helper;
  15. use Illuminate\Http\Request;
  16. use Laravel\Lumen\Routing\Controller as BaseController;
  17. use Validator;
  18.  
  19. class NotifyController extends BaseController
  20. {
  21. public function notify(Request $request)
  22. {
  23. //update notify table
  24. $sessionId = Helper::setSessionId($request->input('SESSIONID'), $request->input('TRANSIDMERCHANT'));
  25.  
  26. $dokuTopup = DokuTopup::where(["session_id"=>$sessionId])->first();
  27.  
  28. if($dokuTopup == null){
  29. $data["status"] = 401;
  30. $data["message"] = "Data Not Found";
  31. $data["data"] = $dokuTopup;
  32.  
  33. return response()->json($data, 401) ;
  34. }
  35.  
  36. $jukirBalance = JukirVirtualBalance::where(['id_jukir' => $dokuTopup->user_id])->first();
  37.  
  38. //create balance if null
  39. if($jukirBalance == null) {
  40. $jukirBalance = new JukirVirtualBalance();
  41. $jukirBalance->id_jukir = $dokuTopup->user_id;
  42. $jukirBalance->key_access = sha1(date("YmdHis"));
  43. $jukirBalance->balance = 0;
  44. $jukirBalance->last_topup_balance = 0;
  45. $jukirBalance->last_topup_datetime = date('Y-m-d H:i:s');
  46. $jukirBalance->is_active = 1;
  47. $jukirBalance->save();
  48.  
  49. $jukirBalance = JukirVirtualBalance::where(['id_jukir' => $dokuTopup->user_id])->first();
  50. }
  51.  
  52. if (!empty($dokuTopup) and $request->input('RESPONSECODE') == '0000') {
  53.  
  54. $dokuTopup->update([
  55. 'response_code' => $request->input('RESPONSECODE'),
  56. 'trxstatus' => $request->input('RESULTMSG'),
  57. 'payment_channel' => $request->input('PAYMENTCHANNEL'),
  58. 'bank_issuer' => $request->input('BANK')
  59. ]);
  60.  
  61. //save into transaction
  62. $balanceTotal = $jukirBalance->balance+$dokuTopup->totalamount;
  63.  
  64. $jVP = new JukirVirtualPayment();
  65. $jVP->id_transaction = $dokuTopup->session_id;
  66. $jVP->jukir_id = $dokuTopup->user_id;
  67. $jVP->amount = $dokuTopup->totalamount;
  68. $jVP->payment_type = 7;
  69. $jVP->balance_before = $jukirBalance->balance;
  70. $jVP->balance_after = $balanceTotal;
  71. $jVP->status = 2;
  72. $jVP->description = 'Success topup';
  73. $jVP->qrcode = $dokuTopup->payment_code;
  74. $jVP->time_request = $dokuTopup->payment_date_time;
  75. $jVP->time_response = date('Y-m-d H:i:s');
  76. $jVP->is_active = 1;
  77.  
  78. $jukirBalance->update([
  79. 'balance' => $balanceTotal,
  80. 'last_topup_balance' => $dokuTopup->totalamount,
  81. 'last_topup_datetime' => $dokuTopup->payment_date_time
  82. ]);
  83.  
  84. if ($jVP->save()){
  85. //throw success to pusher
  86. $data["balance"] = $balanceTotal;
  87. $data["last_topup_balance"] = $dokuTopup->totalamount;
  88. $data["last_topup_datetime"] = $dokuTopup->payment_date_time;
  89.  
  90. #pusher subscribe
  91. Helper::pushRealtime('chanel-'.$dokuTopup->user_id, 'updateBalance', $data);
  92. Helper::pusher('chanel-'.$dokuTopup->user_id, 'updateBalance', $data);
  93. return "Continue";
  94. }
  95. //throw into pusher
  96. }
  97. }
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement