/**
  * Refund money
  *
  * @param   Varien_Object $invoicePayment
  * @return  Mage_GoogleCheckout_Model_Payment
  */
 public function refund(Varien_Object $payment, $amount)
 {
     $transactionId = $payment->getAdditionalInformation('sofort_transaction');
     $order = $payment->getOrder();
     if (!empty($transactionId)) {
         $PnagInvoice = new PnagInvoice(Mage::getStoreConfig('payment/sofort/configkey'), $transactionId);
         $PnagInvoice->cancelInvoice($transactionId);
         if ($PnagInvoice->isError()) {
             Mage::throwException($PnagInvoice->getError());
         } else {
             $payment->setTransactionId($transactionId . '-refund')->setShouldCloseParentTransaction(true)->setIsTransactionClosed(0);
             $order->addStatusHistoryComment(Mage::helper('pnsofortueberweisung')->__('The invoice has been canceled.'))->setIsVisibleOnFront(true);
             $order->save();
             Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('pnsofortueberweisung')->__('Successfully canceled invoice. Credit memo created: %s', $transactionId));
             return $this;
         }
     }
     Mage::getSingleton('adminhtml/session')->addError(Mage::helper('pnsofortueberweisung')->__('Could not cancel invoice.'));
     return $this;
 }
     $_POST['sofort_action'] = 'sofort_buttons';
     $_POST['sofort_button'] = 'cancel';
 }
 if ($_POST['sofort_action'] == 'sofort_buttons') {
     switch ($_POST['sofort_button']) {
         case 'invoice':
         case 'preview':
         case 'credit':
             $PnagInvoice->getInvoice();
             break;
         case 'confirm':
             $errors = $PnagInvoice->confirmInvoice();
             $warnings = $PnagInvoice->getWarnings();
             break;
         case 'cancel':
             $errors = $PnagInvoice->cancelInvoice();
             $warnings = $PnagInvoice->getWarnings();
             break;
         default:
             break;
     }
     $errorCodes = "";
     $successCodes = "";
     if ($errors) {
         $errorCodes .= "<div class='sofort_error'>";
         foreach ($errors as $oneError) {
             if (defined('MODULE_PAYMENT_SOFORT_MULTIPAY_XML_FAULT_' . $oneError['code'])) {
                 $errorCodes .= constant('MODULE_PAYMENT_SOFORT_MULTIPAY_XML_FAULT_' . $oneError['code']) . "<br/>";
             } else {
                 $errorCodes .= MODULE_PAYMENT_SOFORT_MULTIPAY_XML_FAULT_0 . "<br/>";
             }
$PnagInvoice->setReason('Invoice', 'Invoice');
$PnagInvoice->setEmailCustomer('*****@*****.**');
$PnagInvoice->addItemToInvoice(md5('unique'), 'Art01', 'a simple title', 1.2, 0, 'a simple description', 6, 19);
$PnagInvoice->setAbortUrl('http://127.0.0.1');
$PnagInvoice->setSuccessUrl('http://127.0.0.1');
$PnagInvoice->setTimeoutUrl('http://127.0.0.1');
$PnagInvoice->setNotificationUrl('http://127.0.0.1');
try {
    $err = $PnagInvoice->checkout();
    getWebPage($PnagInvoice->getPaymentUrl());
} catch (XmlToArrayException $e) {
}
$transactionId = $PnagInvoice->getTransactionId();
$PnagInvoice = new PnagInvoice(CONFIGKEY, $transactionId);
$creditNoteNumber = '13214';
$PnagInvoice->cancelInvoice($transactionId, $creditNoteNumber);
/**
 * Get a web file (HTML, XHTML, XML, image, etc.) from a URL.  Return an
 * array containing the HTTP server response header fields and content.
 */
function getWebPage($url)
{
    $options = array(CURLOPT_RETURNTRANSFER => true, CURLOPT_HEADER => false, CURLOPT_FOLLOWLOCATION => true, CURLOPT_ENCODING => "", CURLOPT_USERAGENT => "sofort example", CURLOPT_AUTOREFERER => true, CURLOPT_CONNECTTIMEOUT => 120, CURLOPT_TIMEOUT => 120, CURLOPT_MAXREDIRS => 10, CURLOPT_SSL_VERIFYPEER => false);
    $ch = curl_init($url);
    curl_setopt_array($ch, $options);
    $content = curl_exec($ch);
    $err = curl_errno($ch);
    $errmsg = curl_error($ch);
    $header = curl_getinfo($ch);
    curl_close($ch);
    $header['errno'] = $err;
Exemplo n.º 4
0
 /**
  * cancel PNAG invoice
  * 
  * @param Varien_Event_Observer $observer
  * @return $this
  */
 public function sales_order_payment_cancel($observer)
 {
     // dont trigger if we are notifyed
     if (!empty($GLOBALS['isNotificationAction'])) {
         return $this;
     }
     //get payment
     $payment = $observer->getEvent()->getPayment();
     $method = $payment->getMethod();
     if ($method != 'sofortrechnung') {
         return $this;
     }
     $transactionId = $payment->getAdditionalInformation('sofort_transaction');
     if (!empty($transactionId)) {
         $PnagInvoice = new PnagInvoice(Mage::getStoreConfig('payment/sofort/configkey'), $transactionId);
         if ($PnagInvoice->getStatus() != 'loss') {
             $PnagInvoice->cancelInvoice($transactionId);
         }
         if ($PnagInvoice->isError()) {
             Mage::throwException($PnagInvoice->getError());
         } else {
             Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('pnsofortueberweisung')->__('Successfully canceled invoice: %s', $transactionId));
             return $this;
         }
     }
     Mage::getSingleton('adminhtml/session')->addError(Mage::helper('pnsofortueberweisung')->__('Could not cancel invoice.'));
     return $this;
 }