protected static function handleReponse(TransactionData $txnData, $fields = array())
 {
     if (!$txnData->getTransaction()) {
         return array();
     }
     $methods = array('getAmount', 'getAmountRefunded', 'getCount', 'getPaymentMethod', 'getConsumerProtection', 'getStatus', 'getStatusReason', 'getStatusModifiedTime', 'getLanguageCode', 'getCurrency', 'getTransaction', 'getReason', 'getTime', 'getProjectId', 'getRecipientHolder', 'getRecipientAccountNumber', 'getRecipientBankCode', 'getRecipientCountryCode', 'getRecipientBankName', 'getRecipientBic', 'getRecipientIban', 'getSenderHolder', 'getSenderAccountNumber', 'getSenderBankCode', 'getSenderCountryCode', 'getSenderBankName', 'getSenderBic', 'getSenderIban');
     // apply field list
     if ($fields) {
         $methods = array_intersect($methods, $fields);
     }
     $output = array();
     foreach ($methods as $method) {
         $key = lcfirst(substr($method, 3));
         switch ($method) {
             case 'getReason':
                 $output[$key . '1'] = $txnData->{$method}(0, 0);
                 $output[$key . '2'] = $txnData->{$method}(0, 1);
                 break;
             default:
                 $output[$key] = $txnData->{$method}();
         }
     }
     return $output;
 }
Esempio n. 2
0
File: Api.php Progetto: payum/sofort
 /**
  * @param $transactionId
  *
  * @return array
  */
 public function getTransactionData($transactionId)
 {
     $transactionData = new TransactionData($this->options['config_key']);
     $transactionData->addTransaction($transactionId);
     $transactionData->setApiVersion('2.0');
     $transactionData->sendRequest();
     $fields = array();
     $methods = array('getAmount' => '', 'getAmountRefunded' => '', 'getCount' => '', 'getPaymentMethod' => '', 'getConsumerProtection' => '', 'getStatus' => '', 'getStatusReason' => '', 'getStatusModifiedTime' => '', 'getLanguageCode' => '', 'getCurrency' => '', 'getTransaction' => '', 'getReason' => array(0, 0), 'getUserVariable' => 0, 'getTime' => '', 'getProjectId' => '', 'getRecipientHolder' => '', 'getRecipientAccountNumber' => '', 'getRecipientBankCode' => '', 'getRecipientCountryCode' => '', 'getRecipientBankName' => '', 'getRecipientBic' => '', 'getRecipientIban' => '', 'getSenderHolder' => '', 'getSenderAccountNumber' => '', 'getSenderBankCode' => '', 'getSenderCountryCode' => '', 'getSenderBankName' => '', 'getSenderBic' => '', 'getSenderIban' => '');
     foreach ($methods as $method => $params) {
         $varName = $method;
         $varName = strtolower(preg_replace('/([^A-Z])([A-Z])/', '$1_$2', substr($varName, 3)));
         if (count($params) == 2) {
             $fields[$varName] = $transactionData->{$method}($params[0], $params[1]);
         } elseif ($params !== '') {
             $fields[$varName] = $transactionData->{$method}($params);
         } else {
             $fields[$varName] = $transactionData->{$method}();
         }
     }
     if ($transactionData->isError()) {
         $fields['error'] = $transactionData->getError();
     }
     return $fields;
 }
Esempio n. 3
0
 /**
  * @param array|ArrayAccess $fields
  * @return TransactionData
  */
 public function getTxnData($fields)
 {
     if (!is_array($fields) && !$fields instanceof \ArrayAccess) {
         throw new \RuntimeException('$fields must be array or implement ArrayAccess.');
     }
     $data = new TransactionData($this->options['configkey']);
     $data->addTransaction($fields['txn']);
     $data->sendRequest();
     return $data;
 }