source: pro-violet-viettel/sourcecode/application/modules/services/controllers/recharge.php @ 704

Last change on this file since 704 was 698, checked in by dungnv, 10 years ago
File size: 3.7 KB
RevLine 
[520]1<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
2
3class Recharge extends MX_Controller
4{
5        public function __construct()
6        {
7                parent::__construct();
[620]8                $this->load->model('frontend/user_model', 'objUserModel');
9                $this->load->helper('lockfile');
10                $this->load->model('services_model');
[636]11                $this->load->helper('language');
12                $this->lang->load('messages', 'message');
[520]13        }
14       
15        public function recharge_card()
16        {
17                $userID = $this->uri->segment(4);
18                $input = $this->input->post();
19                $cardSerial = $input['card_serial'];
20                $pinCard = $input['pin_card'];
[620]21                $isLocked = 0;
[520]22               
[620]23                $user = $this->objUserModel->get_user_by_id($userID);
24                $lockFilePreFix = $user['cellphone'];
25                $lockFilePath = $this->config->item('topup_lock_path');
26                $maxReach = $this->config->item('topup_lock_max_reach');
27                $timeToUnlock = $this->config->item('topup_unlock_minute');
28
[627]29                $isLocked = createLockFile($lockFilePreFix, $maxReach, $timeToUnlock, $lockFilePath, TRUE);
[620]30                $chargCard = _SBG_CARD_PAY_SUCCESS;
31                $result = array();
32                $result['maxReach'] = $maxReach;
33                $result['timeToUnlock'] = $timeToUnlock;
34                $result['isLocked'] = $isLocked;
35                $result['tmp'] = $maxReach;
[520]36               
[636]37                //$lockedMsg = 'QuÜ vị đã nhập sai thÃŽng tin thẻ cào '. $maxReach .' lần liên tiếp.<br />Xin chờ '. $timeToUnlock .' phút sau để thao tác lại!';
38                $aryPatterns = array('/:maxReach:/', '/:timeToUnlock:/');
39                $lockedMsg = preg_replace($aryPatterns, array($maxReach, $timeToUnlock), lang('_SBG_CHARGING_FROM_CARD_LOCKED_MSG'));
40                //$chargErrMsg = 'Mã thẻ hoặc Serial khÃŽng đúng hoặc đã được sá»­ dụng. QuÜ vị vui lòng kiểm tra lại!';
41                $chargErrMsg = lang('_SBG_CHARGING_FROM_CARD_FAIL_MSG');
[620]42                $errMsg = '';
[695]43                $cardValue = 0;
[698]44                $updatedTime = date('Y-m-d H:i:s');
45                $status = -1;
46
[620]47                if ($isLocked == 0) {
48                        $aryParams = array(
49                                        'EWalletID' => $this->config->item('EWalletID'),
50                                        'CardSerial' => $cardSerial,
51                                        'PinCard' => $pinCard,
52                        );
53                       
54                        $aryResult = array();
[698]55
[620]56                        $chargCard = $this->services_model->cardPaidProcess($aryParams,  $aryResult);
[695]57                        $status = $chargCard;
[698]58
[620]59                        $paidType = 2;
60                        $amount = $aryResult['TransactionAmount'];
[695]61                        $cardValue = $amount;
[620]62                        $paidTime = date('Y-m-d H:i:s');
63                        $user['acc_balanced'] = $user['acc_balanced'] + $amount;
[698]64                        $user['updated_time'] = $updatedTime;
[695]65                        if ($amount > 0){
66                                $updateData = array('acc_balanced' => $user['acc_balanced'], 'updated_time' => $user['updated_time'] );
67                                $updated = $this->objUserModel->updateUser($userID, $updateData);
[620]68                        }
69                       
70                        $result['success'] = $chargCard;
71                       
72                        if ($chargCard == _SBG_CARD_PAY_SUCCESS){
[636]73                                //$result['username'] = $user['cellphone'];
[620]74                                $result['acc_balanced'] = $user['acc_balanced'];
[636]75                                //$result['amount'] = $amount;
76                                $aryPatterns = array('/:amount:/', '/:username:/', '/:acc_balanced:/');
77                                $result['message'] = preg_replace($aryPatterns, array($amount, $user['cellphone'], $user['acc_balanced']), lang('_SBG_CHARGING_FROM_CARD_SUCCESS_MSG'));
[620]78                                $this->objUserModel->insertPaidlog($user['cellphone'], $user['cellphone'], $paidType, $amount, $paidTime);
79                                releaseLockFile($lockFilePreFix, $lockFilePath);
80                        }
81                        else {
[627]82                                $isLocked = createLockFile($lockFilePreFix, $maxReach, $timeToUnlock, $lockFilePath, FALSE);
[698]83                                $errMsg = $isLocked == 1 ? $chargErrMsg .'<br />'.$lockedMsg : $chargErrMsg;                           
[620]84                        }
85                }else if ($isLocked == 1) {
86                        $errMsg = $lockedMsg;
87                        $result['success'] = _SBG_CARD_PAY_FAIL;
[698]88                        $status = 0;
[520]89                }
[695]90
[698]91                $this->objUserModel->insertCardlog($user['cellphone'],$userID, $status, $pinCard, $cardSerial, $cardValue, $updatedTime);
[611]92               
[695]93                $result['us_id'] = $userID;
94                $result['UPDATED_DATA'] = $user;
[620]95                $result['errMsg'] = $errMsg;
[520]96                echo json_encode($result);
97        }
98}
Note: See TracBrowser for help on using the repository browser.