/**
  * Builds a transaction reporting request the transaction will be query by id
  *
  * @param parameters The parameters to be sent to the server
  * @param string $lang language of request see SupportedLanguages class
  * @return The complete reporting request to be sent to the server
  */
 public static function buildTransactionResponse($parameters, $lang = null)
 {
     if (!isset($lang)) {
         $lang = PayU::$language;
     }
     $request = CommonRequestUtil::buildCommonRequest($lang, PayUCommands::TRANSACTION_RESPONSE_DETAIL);
     $transactionId = CommonRequestUtil::getParameter($parameters, PayUParameters::TRANSACTION_ID);
     $request->details = CommonRequestUtil::addMapEntry(null, PayUKeyMapName::TRANSACTION_ID, $transactionId);
     return $request;
 }
 /**
  * Builds a create credit card token remove request
  *
  * @param parameters The parameters to be sent to the server
  * @param string $lang language of request see SupportedLanguages class
  * @return the request built
  */
 public static function buildRemoveTokenRequest($parameters, $lang)
 {
     if (!isset($lang)) {
         $lang = PayU::$language;
     }
     $request = CommonRequestUtil::buildCommonRequest($lang, PayUCommands::REMOVE_TOKEN);
     $removeCreditCardToken = new stdClass();
     $removeCreditCardToken->creditCardTokenId = CommonRequestUtil::getParameter($parameters, PayUParameters::TOKEN_ID);
     $removeCreditCardToken->payerId = CommonRequestUtil::getParameter($parameters, PayUParameters::PAYER_ID);
     $request->removeCreditCardToken = $removeCreditCardToken;
     return $request;
 }
 /**
  * Build a payment request
  * @param array $parameters the parameters to build a request
  * @param string $transactionType the transaction type
  * @param strng $lang to be used
  * @return the request built
  */
 static function buildPaymentRequest($parameters, $transactionType, $lang = null)
 {
     if (!isset($lang)) {
         $lang = PayU::$language;
     }
     $request = CommonRequestUtil::buildCommonRequest($lang, PayUCommands::SUBMIT_TRANSACTION);
     $transaction = null;
     if (TransactionType::AUTHORIZATION_AND_CAPTURE == $transactionType || TransactionType::AUTHORIZATION == $transactionType) {
         $transaction = RequestPaymentsUtil::buildTransactionRequest($parameters, $lang);
     } else {
         if (TransactionType::VOID == $transactionType || TransactionType::REFUND == $transactionType || TransactionType::CAPTURE == $transactionType) {
             $transaction = RequestPaymentsUtil::buildTransactionRequestAfterAuthorization($parameters);
         }
     }
     $transaction->type = $transactionType;
     $request->transaction = $transaction;
     return $request;
 }