/** * @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; }
/** * @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; }