Example #1
0
 /**
  * DIRECT REFUND to credit card or Token card.
  *
  * @param Varien_Object $object
  * @param float         $amount
  *
  * @return $this
  */
 public function directRefund(Varien_Object $object, $amount)
 {
     $refundCurrency = $object->getCurrency();
     $data = array();
     $data['VPSProtocol'] = $this->getVpsProtocolVersion();
     $data['TxType'] = self::REQUEST_TYPE_DIRECT_REFUND;
     $data['PaymentType'] = self::REQUEST_TYPE_DIRECT_REFUND;
     $data['ReferrerID'] = $this->getConfigData('referrer_id');
     $data['Vendor'] = $object->getVendor();
     $data['VendorTxCode'] = $this->ss('DIRECTREFUND-' . Mage::getModel('core/date')->gmtDate('Y-m-d_H-i-s'), 40);
     $data['Amount'] = $this->formatAmount($amount, $refundCurrency);
     $data['Currency'] = $refundCurrency;
     $data['Description'] = $this->ss($object->getDescription(), 100);
     if ($object->getToken()) {
         $data['Token'] = $object->getToken();
         $data['Storetoken'] = 1;
     } else {
         $data['CardHolder'] = $object->getCardholder();
         $data['CardNumber'] = $object->getCardnumber();
         $data['StartDate'] = $object->getStartdate();
         $data['ExpiryDate'] = $object->getExpirydate();
         $data['IssueNumber'] = $object->getIssuenumber();
         $data['CardType'] = $object->getCardtype();
     }
     $data['AccountType'] = $object->getAccounttype();
     $postUrl = $this->getUrl('directrefund', false, 'sagepaydirectpro', $object->getMode());
     $result = $this->requestPost($postUrl, $data);
     if ($result['Status'] != 'OK') {
         Mage::throwException(Mage::helper('sagepaysuite')->__($result['StatusDetail']));
     }
     return array('request' => $data, 'response' => $result);
 }