コード例 #1
0
ファイル: Callback.php プロジェクト: kirkbauer2/kirkxc
 /**
  * Send current cart details back to X-Payments.   
  *
  * @return void
  */
 protected function doActionCheckCart()
 {
     $refId = \XLite\Core\Request::getInstance()->refId;
     $transaction = $this->detectTransaction();
     $xml = '';
     if ($transaction) {
         $cart = $transaction->getOrder();
         $response = array('status' => 'cart-changed', 'ref_id' => $refId);
         $clientXpayments = \XLite\Module\CDev\XPaymentsConnector\Core\XPaymentsClient::getInstance();
         if (method_exists($transaction, 'isAntiFraudApplied') && method_exists($transaction, 'checkBlockOrder') && $transaction->isAntiFraudApplied() && $transaction->checkBlockOrder(true)) {
             // ANTIFRAUD RELATED CHANGES
             // This makes a error top messsage at checkout
             $transaction->setDataCell('status', 'AF Error #1: Cannot process this order. Contact administrator', null, 'C');
         } else {
             // Prepare cart
             $preparedCart = $clientXpayments->prepareCart($cart, $transaction->getPaymentMethod(), $refId);
             if ($cart && $preparedCart) {
                 $response['cart'] = $preparedCart;
             }
         }
         try {
             // Convert array to XML and encrypt it
             $xml = $clientXpayments->encryptRequest($response);
         } catch (\XLite\Module\CDev\XPaymentsConnector\Core\XpcResponseException $exception) {
             // Doesn't matter, but al least we can send something
             $xml = $exception->getMessage();
         }
         print $xml;
         die(0);
     }
 }
コード例 #2
0
ファイル: Cart.php プロジェクト: kewaunited/xcart
 /**
  * If we can proceed with checkout with current cart
  *
  * @return boolean
  */
 public function checkCart()
 {
     $result = parent::checkCart();
     if (\XLite\Module\CDev\XPaymentsConnector\Core\XPaymentsClient::getInstance()->isModuleConfigured() && !$result) {
         \XLite\Module\CDev\XPaymentsConnector\Core\XPaymentsClient::getInstance()->clearInitDataFromSession();
     }
     return $result;
 }
コード例 #3
0
ファイル: Iframe.php プロジェクト: kewaunited/xcart
 /**
  * Finalize X-Payments iframe
  *
  * @return void
  */
 public function finalize()
 {
     if ($this->getError()) {
         \XLite\Module\CDev\XPaymentsConnector\Core\XPaymentsClient::getInstance()->clearInitDataFromSession();
     }
     print $this->getHTML();
     \XLite\Core\Database::getEM()->flush();
     die(0);
 }
コード例 #4
0
ファイル: Settings.php プロジェクト: kewaunited/xcart
 /**
  * Import payment methods from X-Payments and return error or warning message (if any)
  *
  * @return void
  */
 public function importPaymentMethods()
 {
     $list = \XLite\Module\CDev\XPaymentsConnector\Core\XPaymentsClient::getInstance()->requestPaymentMethods();
     if (is_array($list) && !empty($list)) {
         foreach ($this->getPaymentMethods() as $pm) {
             if (!$this->checkMethodInImportedList($pm, $list)) {
                 \XLite\Core\Database::getEM()->remove($pm);
             }
         }
         foreach ($list as $settings) {
             if (!isset($settings['paymentMethodId'])) {
                 // Create new payment method
                 $pm = new \XLite\Model\Payment\Method();
                 \XLite\Core\Database::getEM()->persist($pm);
                 $xpModuleClass = $this->detectModuleClass($settings);
                 $pm->setClass('Module\\CDev\\XPaymentsConnector\\Model\\Payment\\Processor\\XPayments');
                 $pm->setServiceName('XPayments.' . $xpModuleClass);
                 $pm->setName($settings['moduleName']);
                 $pm->setType(\XLite\Model\Payment\Method::TYPE_CC_GATEWAY);
                 $pm->setOrderby(static::getPaymentMethodOrderby('XPayments.' . $xpModuleClass));
                 $pm->setAdded(true);
                 // Tokenization is disabled by default
                 $pm->setSetting('saveCards', 'N');
             } else {
                 // Use existsting payment method
                 $pm = \XLite\Core\Database::getRepo('XLite\\Model\\Payment\\Method')->find($settings['paymentMethodId']);
             }
             $this->setPaymentMethodSettings($pm, $settings);
         }
         \XLite\Core\Database::getEM()->flush();
         \XLite\Core\TopMessage::addInfo('Payment methods have been imported successfully');
     } elseif (is_array($list)) {
         \XLite\Core\TopMessage::addWarning('There are no payment configurations for this store.');
     } else {
         \XLite\Core\TopMessage::addError('Error had occured during the requesting of payment methods from X-Payments. See log files for details.');
     }
 }
コード例 #5
0
ファイル: AXPayments.php プロジェクト: kewaunited/xcart
 /**
  * Check - payment method is configured or not
  *
  * @param \XLite\Model\Payment\Method $method Payment method
  *
  * @return boolean
  */
 public function isConfigured(\XLite\Model\Payment\Method $method)
 {
     return parent::isConfigured($method) && \XLite\Module\CDev\XPaymentsConnector\Core\XPaymentsClient::getInstance()->isModuleConfigured();
 }
コード例 #6
0
ファイル: ApiRequest.php プロジェクト: kewaunited/xcart
 /**
  * Check response for errors 
  *
  * @param array $response Formatted response from X-Payments
  *
  * @return void 
  */
 protected function checkError($response)
 {
     $message = $code = '';
     if (!empty($response['error_message'])) {
         $message = $response['error_message'];
     }
     if (!empty($response['error'])) {
         $code = $response['error'];
     }
     if ($code || $message) {
         $error = \XLite\Module\CDev\XPaymentsConnector\Core\XPaymentsClient::getInstance()->composeErrorMessage($code, $message);
         self::throwError($error);
     }
 }
コード例 #7
0
ファイル: PopupAddInfo.php プロジェクト: kirkbauer2/kirkxc
 /**
  * Get X-Payments connector transactions
  *
  * @return boolean
  */
 public function getXpcTransactionsAddInfo()
 {
     $transaction = \XLite\Core\Database::getRepo('XLite\\Model\\Payment\\Transaction')->find(\XLite\Core\Request::getInstance()->transaction_id);
     $result = false;
     if ($transaction && $transaction->isXpc(true) && $transaction->getDataCell('xpc_txnid')) {
         $client = \XLite\Module\CDev\XPaymentsConnector\Core\XPaymentsClient::getInstance();
         $info = $client->requestPaymentAdditionalInfo($transaction->getDataCell('xpc_txnid')->getValue());
         if ($info->isSuccess()) {
             $response = $info->getResponse();
             if (!empty($response['transactions']) && is_array($response['transactions'])) {
                 $result = $response['transactions'];
             }
         }
     }
     return $result;
 }
コード例 #8
0
ファイル: Checkout.php プロジェクト: kirkbauer2/kirkxc
 /**
  * Clear init data from session and redirrcet back to checkout
  *
  * @return void
  */
 protected function doActionClearInitData()
 {
     \XLite\Module\CDev\XPaymentsConnector\Core\XPaymentsClient::getInstance()->clearInitDataFromSession();
     $this->setHardRedirect();
     $this->setReturnURL($this->buildURL('cart', 'checkout'));
     $this->doRedirect();
 }
コード例 #9
0
ファイル: Welcome.php プロジェクト: kirkbauer2/kirkxc
 /**
  * Display connection steps or not 
  *
  * @return boolean
  */
 public function isDisplaySteps()
 {
     return !\XLite\Module\CDev\XPaymentsConnector\Core\XPaymentsClient::getInstance()->isModuleConfigured();
 }
コード例 #10
0
ファイル: XpcPopup.php プロジェクト: kirkbauer2/kirkxc
 /**
  * Check if this is error for unaccepted changes of templates in X-Payments
  *
  * @param string $message Message
  *
  * @return array
  */
 public function isUnacceptedTemplateError($message)
 {
     list($code, $message) = \XLite\Module\CDev\XPaymentsConnector\Core\XPaymentsClient::getInstance()->parseErrorMessage($message);
     return '505' == $code;
 }
コード例 #11
0
ファイル: ZeroAuth.php プロジェクト: kewaunited/xcart
 /**
  * Get X-Payments client 
  *
  * @return object
  */
 protected static function getClient()
 {
     return \XLite\Module\CDev\XPaymentsConnector\Core\XPaymentsClient::getInstance();
 }
コード例 #12
0
ファイル: Import.php プロジェクト: kirkbauer2/kirkxc
 /**
  * Check if widget is visible
  *
  * @return boolean
  */
 protected function isVisible()
 {
     return parent::isVisible() && \XLite\Module\CDev\XPaymentsConnector\Core\XPaymentsClient::getInstance()->isModuleConfigured();
 }