예제 #1
0
 /**
  * @param array $fields
  *
  * @return array
  */
 public function createTransaction(array $fields)
 {
     $sofort = new Sofortueberweisung($this->options['config_key']);
     $sofort->setAmount($fields['amount']);
     $sofort->setCurrencyCode($fields['currency_code']);
     $sofort->setReason($fields['reason'], isset($fields['reason_2']) ? $fields['reason_2'] : '');
     $sofort->setSuccessUrl($fields['success_url'], true);
     $sofort->setAbortUrl(isset($fields['abort_url']) ? $fields['abort_url'] : $this->options['abort_url']);
     $sofort->setNotificationUrl($fields['notification_url'], implode(',', array(self::STATUS_PENDING, self::STATUS_LOSS, self::STATUS_RECEIVED, self::STATUS_REFUNDED, self::STATUS_UNTRACEABLE)));
     $sofort->sendRequest();
     if ($sofort->isError()) {
         $fields['error'] = $sofort->getError();
     } else {
         $fields['transaction_id'] = $sofort->getTransactionId();
         $fields['payment_url'] = $sofort->getPaymentUrl();
     }
     return $fields;
 }