daily pastebin goal
48%
SHARE
TWEET

Untitled

mr_therabbit Dec 1st, 2014 357 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. class Payment_Controller extends Base_Controller {
  4.  
  5.         public function action_index() {
  6.                 // Получим список разделов
  7.                 $VL = IoC::resolve('VL');
  8.                 $arrList = $VL->getRootGroups();
  9.                 // Разложим на строки по 6 элементов
  10.                 $arrT = array();
  11.                 $intC = 0;
  12.                 $intR = 1;
  13.                 foreach ($arrList as $arrI) {
  14.                         $intC++;
  15.                         $arrT[$intR][] = $arrI;
  16.                         if ($intC == 6) {
  17.                                 $intC = 0;
  18.                                 $intR++;
  19.                         }//\\ if
  20.                 }//\\ foreach
  21.                
  22.                 return View::make('sd.payment')->with('arrList', $arrT);
  23.         }//\\ action_index
  24.  
  25.  
  26.         public function action_vendors($intGroupID) {
  27.                 // Получим список вендоров из этого раздела
  28.                 $VL = IoC::resolve('VL');
  29.                 $arrList = $VL->getListVendors($intGroupID);
  30.                 // Разложим на строки по 6 элементов
  31.                 $arrT = array();
  32.                 $intC = 0;
  33.                 $intR = 1;
  34.                 foreach ($arrList as $arrI) {
  35.                         $intC++;
  36.                         $arrT[$intR][] = $arrI;
  37.                         if ($intC == 6) {
  38.                                 $intC = 0;
  39.                                 $intR++;
  40.                         }//\\ if
  41.                 }//\\ foreach
  42.                
  43.                 return View::make('sd.payment_vendors')->with('arrList', $arrT);
  44.         }//\\ action_index
  45.  
  46.         public function action_pay($intAcct) {
  47.                 // Получим инфу о вендоре
  48.                 $VL = IoC::resolve('VL');
  49.                 $arrVendor = $VL->getVendor($intAcct);
  50.                
  51.                 // Получим счета и карты
  52.                 $arrA = Accts::getAcctsAndCards();
  53.                 if (count($arrA['accts'])) {
  54.                         foreach ($arrA['accts'] as $arrT) {
  55.                                 if ($arrT['Type'] == 1)
  56.                                         $arrVendor['accts'][] = array(
  57.                                                 'Acct' => $arrT['Acct'],
  58.                                                 'AcctNum' => $arrT['AcctNum'],
  59.                                                 'Available' => Utils::getMoney($arrT['Available']),
  60.                                                 'Currency' => $arrT['Currency'],
  61.                                                 'CurrencyCode' => MessagesVtbi::getCurrencyCode($arrT['Currency']),
  62.                                         );
  63.                         }//\\ foreach
  64.                 }//\\ if
  65.                
  66.                 return View::make('sd.payment_pay')->with('arrVendor', $arrVendor);
  67.         }//\\ action_index
  68.        
  69.         public function action_schedule() {
  70.                 $arrResult = array();
  71.                
  72.                 $strFromAcct = Input::get('OperationAcctSelect');
  73.                 $intToAcct = intval(Input::get('ToAcct'));
  74.                 $strAmount = floatval(Input::get('Amount'));
  75.                 $strCurrency = intval(Input::get('Currency'));
  76.                 $strComment = Input::get('Comment');
  77.                
  78.                 $strSEQ = '';
  79.                 // Получим поля от вендора
  80.                 $VL = IoC::resolve('VL');
  81.                 $arrVendor = $VL->getVendor($intToAcct);
  82.                 if (count($arrVendor['fields'])) {
  83.                         $intNum = 1;
  84.                         foreach($arrVendor['fields'] as $arrField) {
  85.                                 $strSEQ .= '
  86.         <Row>
  87.                 <SEQ>'.$intNum.'</SEQ>
  88.                 <ID>'.$arrField->name.'</ID>
  89.                 <VAL>'.Input::get('FF_'.$arrField->name).'</VAL>
  90.         </Row>';
  91.                                 $intNum++;
  92.                         }//\\ foreach
  93.                 }//\\ if
  94.                
  95.                
  96.                 $strXML = '
  97. <FromAcct>'.$strFromAcct.'</FromAcct>
  98. <ToAcct>'.$intToAcct.'</ToAcct>
  99. <CustAcct>'.$strSEQ.'
  100. </CustAcct>
  101. <Amount>'.$strAmount.'</Amount>
  102. <Currency>'.$strCurrency.'</Currency>
  103. <Comment>'.$strComment.'</Comment>
  104. <Date/>
  105. <Period>0</Period>
  106. <Count>1</Count>';
  107.  
  108.                 // Сделаем запрос
  109.                 $TB = IoC::resolve('TWO');
  110.  
  111.                 // Разберемся с SMS кодом
  112.                 if (Input::has('SmsCode')) {
  113.                         // Установим динамический пароль
  114.                         $TB->setDynamicPassword(Input::get('SmsCode'));
  115.                 }//\\ if
  116.                
  117.                 try {
  118.                         $objXml = $TB->exec('Schedule', $strXML);
  119.                 } catch (Exception $e) {
  120.                         $arrResult['responseCode'] = $e->getCode();
  121.                         $arrResult['responseMessage'] = $e->getMessage();
  122.                         // требуется динамическая авторизация
  123.                         if ($e->getCode() == 18) {
  124.                                 // Запросим список получателей динамической аунтификации
  125.                                 $arrList = $TB->getDynAuthAddressList();
  126.                                 $arrAuthAddress = array();
  127.                                
  128.                                 // Найдем активного
  129.                                 if (count($arrList)) {
  130.                                         foreach ($arrList as $arrItem) {
  131.                                                 if ($arrItem['Default'] == true)
  132.                                                         $arrAuthAddress = $arrItem;
  133.                                         }//\\ foreach
  134.                                 }//\\ if
  135.                                
  136.                                 if (isset($arrAuthAddress['Channel'])) {
  137.                                         // Сгенерируем пароль
  138.                                         $objXml = $TB->exec('GenerateDynPassword', '<Channel>'.$arrAuthAddress['Channel'].'</Channel><Address>'.$arrAuthAddress['Address'].'</Address>');
  139.                                         // Получим номер SMS
  140.                                         $objResult = $objXml->xpath('//PasswordCount');
  141.                                         if (count($objResult)) {
  142.                                                 $intNumSMS = (integer)$objResult[0];
  143.                                         }//\\ if
  144.                                        
  145.                                         $arrResult['smsNum'] = $intNumSMS;
  146.                                         //return Response::make(json_encode($arrResult), 200, array('Content-type' => 'application/json'));
  147. /*                                      $intCount = 3;
  148.                                         if ($intCount > 99) $intCount = 99;
  149.                                         $strXML = '<?xml version="1.0" encoding="utf-8" ?>
  150.                                         <badge value="'.($intCount > 0 ? $intCount : 'none').'"/>';
  151.                                         return Response::make($strXML, 200, array('Content-type' => 'application/xml'));*/                                     
  152.                                        
  153.                                        
  154.                                 }//\\ if
  155.                         } else {
  156.                                 //throw $e;
  157.                         }//\\ if
  158.                 }//\\ try
  159.                
  160.                 return Response::make(json_encode($arrResult), 200, array('Content-type' => 'application/json'));
  161.         }
  162.  
  163.  
  164. }//\\ Payment_Controller
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top