コード例 #1
0
 /**
  * Authorize payment
  *
  * @param Mage_Sales_Model_Order_Payment | Mage_Sales_Model_Quote_Payment $payment
  * @param mixed $amount
  * @return Mage_Paypal_Model_Payflowlink
  */
 public function authorize(Varien_Object $payment, $amount)
 {
     $txnId = $payment->getAdditionalInformation('authorization_id');
     /** @var $transaction Mage_Paypal_Model_Payment_Transaction */
     $transaction = Mage::getModel('paypal/payment_transaction');
     $transaction->loadByTxnId($txnId);
     $payment->setTransactionId($txnId)->setIsTransactionClosed(0);
     if ($payment->getAdditionalInformation('paypal_fraud_filters') !== null) {
         $payment->setIsTransactionPending(true);
         $payment->setIsFraudDetected(true);
     }
     if ($transaction->getId() && $payment->getAdditionalInformation('authorization_amount') != Mage_Paypal_Model_Config::AUTHORIZATION_AMOUNT_FULL) {
         $this->_addTransaction($payment, $txnId);
     }
     $this->_authorize($payment, $amount, $transaction, $txnId);
     if ($payment->getAdditionalInformation('authorization_amount') != Mage_Paypal_Model_Config::AUTHORIZATION_AMOUNT_FULL) {
         $payment->setParentTransactionId($txnId);
         parent::authorize($payment, $amount);
         if ($payment->getTransactionId()) {
             $payment->setAdditionalInformation('authorization_id', $payment->getTransactionId());
         }
     }
     $transaction->delete();
     return $this;
 }