function buildSample($settings = array())
 {
     list($status, $code, $amount, $currency, $partial_approval, $timestamp) = array_replace(array('', 00, 314, 'USD', false, '1970-01-01T00:00:00Z'), $settings);
     $payment_response = array('payment_response' => array('transaction_type' => 'authorize', 'code' => $code, 'status' => $status, 'unique_id' => md5(time()), 'transaction_id' => md5(microtime(true)), 'technical_message' => 'TESTMODE: No real money will be transferred!', 'message' => 'TESTMODE: No real money will be transferred!', 'mode' => 'test', 'timestamp' => $timestamp, 'amount' => $amount, 'currency' => $currency, 'partial_approval' => $partial_approval, 'sent_to_acquirer' => ''));
     $xml = new \Genesis\Builder('xml');
     $xml->parseStructure($payment_response);
     return $xml->getDocument();
 }
 /**
  * Generate Builder response (Echo) required for acknowledging
  * Genesis's Notification
  *
  * @return string
  */
 public function generateResponse()
 {
     $type = $this->isWPFNotification() ? 'wpf_unique_id' : 'unique_id';
     $structure = array('notification_echo' => array($type => $this->unique_id));
     $builder = new \Genesis\Builder('xml');
     $builder->parseStructure($structure);
     return $builder->getDocument();
 }