/**
  * Generate end return new secure hash value
  *
  * @param Mage_Sales_Model_Order_Payment $payment
  * @return string
  */
 protected function _generateSecureSilentPostHash($payment)
 {
     $secureHash = md5(Mage::helper('core')->getRandomString(10));
     $payment->setAdditionalInformation($this->_secureSilentPostHashKey, $secureHash);
     return $secureHash;
 }
Example #2
0
 /**
  * sets the canRefund information depending on the last refund operation code
  *
  * @param Mage_Sales_Model_Order_Payment $payment
  */
 public function setCanRefundToPayment(Mage_Sales_Model_Order_Payment $payment)
 {
     $refundOperationCode = $payment->getAdditionalInformation('lastRefundOperationCode');
     if (in_array(strtoupper(trim($refundOperationCode)), array(Netresearch_OPS_Model_Payment_Abstract::OPS_REFUND_FULL, Netresearch_OPS_Model_Payment_Abstract::OPS_REFUND_PARTIAL))) {
         /*
          * a further refund is possible if the transaction remains open, that means either the merchant
          * did not close the transaction or the refunded amount is less than the orders amount
          */
         $canRefund = $refundOperationCode == Netresearch_OPS_Model_Payment_Abstract::OPS_REFUND_PARTIAL;
         Mage::helper('ops/data')->log(sprintf("set canRefund to '%s' for payment of order '%s'", var_export($canRefund, true), $payment->getOrder()->getIncrementId()));
         $payment->setAdditionalInformation('canRefund', $canRefund)->save();
     }
 }
 /**
  * If response is failed throw exception
  * Set token data in payment object
  *
  * @param Varien_Object $response
  * @param Mage_Sales_Model_Order_Payment $payment
  * @throws Mage_Core_Exception
  */
 protected function _processTokenErrors($response, $payment)
 {
     if (!$response->getSecuretoken() && $response->getResult() != self::RESPONSE_CODE_APPROVED && $response->getResult() != self::RESPONSE_CODE_FRAUDSERVICE_FILTER) {
         Mage::throwException($response->getRespmsg());
     } else {
         $payment->setAdditionalInformation('secure_token_id', $response->getSecuretokenid())->setAdditionalInformation('secure_token', $response->getSecuretoken());
     }
 }
 /**
  * 
  * @param Allopass_Hipay_Model_Api_Response_Gateway $gatewayResponse
  * @param Mage_Sales_Model_Order_Payment $payment
  */
 protected function _setFraudDetected($gatewayResponse, $customer, $payment, $amount, $addToHistory = false)
 {
     if ($fraudScreening = $gatewayResponse->getFraudScreening()) {
         if (isset($fraudScreening['result']) && isset($fraudScreening['scoring'])) {
             $order = $payment->getOrder();
             $payment->setIsFraudDetected(true);
             if (defined('Mage_Sales_Model_Order::STATUS_FRAUD')) {
                 $status = Mage_Sales_Model_Order::STATUS_FRAUD;
             }
             $payment->setAdditionalInformation('fraud_type', $fraudScreening['result']);
             $payment->setAdditionalInformation('fraud_score', $fraudScreening['scoring']);
             $payment->setAdditionalInformation('fraud_review', $fraudScreening['review']);
             if ($addToHistory) {
                 $order->addStatusToHistory($status, Mage::helper('hipay')->getTransactionMessage($payment, $this->getOperation(), null, $amount, true, $gatewayResponse->getMessage()));
             }
             $message = Mage::helper('hipay')->__($gatewayResponse->getMessage());
             if ($this->canSendFraudEmail($order->getStoreId())) {
                 $email_key = 'fraud_payment';
                 if ($fraudScreening['result'] != 'challenged' || $gatewayResponse->getState() == self::STATE_DECLINED) {
                     $email_key = 'fraud_payment_deny';
                 }
                 $this->getHelper()->sendFraudPaymentEmail($customer, $order, $message, $email_key);
             }
         }
     }
 }
Example #5
0
 /**
  * Save PostFinance Status to Payment
  * 
  * @param Mage_Sales_Model_Order_Payment $payment 
  * @param array $params PostFinance-Response
  *
  * @return void
  */
 public function savePostFinanceStatusToPayment(Mage_Sales_Model_Order_Payment $payment, $params)
 {
     $payment->setAdditionalInformation('status', $params['STATUS'])->save();
 }