Ejemplo n.º 1
0
 private function viewInterkassa()
 {
     if (!extension::getInstance()->getConfig('balance_use_ik', 'user', extension::TYPE_COMPONENT, 'boolean')) {
         exit("Interkassa API disabled");
     }
     $post_kasa_id = system::getInstance()->post('ik_co_id');
     if ($post_kasa_id != extension::getInstance()->getConfig('balance_ik_id', 'user', extension::TYPE_COMPONENT, 'str')) {
         exit("undefined id");
     }
     require_once root . '/resource/payments/interkassa2/interkassa.php';
     Interkassa::register();
     $shop = Interkassa_Shop::factory(array('id' => extension::getInstance()->getConfig('balance_ik_id', 'user', extension::TYPE_COMPONENT, 'str'), 'secret_key' => extension::getInstance()->getConfig('balance_ik_key', 'user', extension::TYPE_COMPONENT, 'str')));
     try {
         $status = $shop->receiveStatus(system::getInstance()->post(null));
         // POST is used by default
     } catch (Interkassa_Exception $e) {
         logger::getInstance()->log(logger::LEVEL_WARN, "Interkassa payment check signature fail. From ip: " . system::getInstance()->getRealIp() . ", post_data : " . json_encode(system::getInstance()->post(null)));
         header('HTTP/1.0 400 Bad Request');
         exit;
     }
     $payment = $status->getPayment();
     $mul_c = extension::getInstance()->getConfig('balance_ik_mul', 'user', extension::TYPE_COMPONENT, 'float');
     $user_id = system::getInstance()->toInt($payment->getId());
     $amount = (double) $payment->getAmount();
     $amount *= $mul_c;
     user::getInstance()->addBalance($user_id, $amount);
     $payparam = array('currency' => $payment->getCurrency(), 'amount' => $amount, 'sys_invs_id' => system::getInstance()->post('ik_inv_id'), 'sys_trans_id' => system::getInstance()->post('ik_trn_id'), 'date' => system::getInstance()->post('ik_inv_prc'));
     user::getInstance()->putLog($user_id, 'balance.ikadd', $payparam, 'Recharge balance via interkassa');
 }