예제 #1
0
파일: PesaPi.php 프로젝트: nyashkn/pesaPi
 public function __construct()
 {
     $this->config = Configuration::instantiate();
     $this->initSyncDate = strtotime($this->config->getConfig('MpesaInitialSyncDate'));
     $this->lastSyncSetting = Base\SettingFactory::FactoryByName("LastSync");
 }
예제 #2
0
 public function forceSyncronisation()
 {
     return true;
     // determine the start time
     $lastSyncSetting = \PLUSPEOPLE\PesaPi\Base\SettingFactory::FactoryByName("LastSync");
     $lastSync = $lastSyncSetting->getValue();
     $config = \PLUSPEOPLE\PesaPi\Configuration::instantiate();
     $initSyncDate = strtotime($config->getConfig('MpesaInitialSyncDate'));
     if ($lastSync <= $initSyncDate) {
         $startSyncTime = $initSyncDate;
     } else {
         $startSyncTime = $lastSync;
     }
     $startSyncTime -= 1;
     $now = time();
     // perform file fetch
     $loader = new MpesaPaybill\Loader();
     $pages = $loader->retrieveData($startSyncTime);
     // perform analysis/scrubbing
     $scrubber = new MpesaPaybill\Scrubber();
     foreach ($pages as $page) {
         $rows = $scrubber->scrubRows($page);
         // save data to database
         foreach ($rows as $row) {
             $payment = Transaction::import($row);
             if (is_object($payment)) {
                 $this->handleCallback($payment);
             }
         }
     }
     // save last entry time as last sync
     $this->lastSyncSetting->setValueDate($now);
     $this->lastSyncSetting->update();
 }