/**
  * Get document
  *
  * @see Pronamic_Gateways_IDealAdvanced_XML_RequestMessage::getDocument()
  */
 public function get_document()
 {
     $document = parent::get_document();
     // Merchant
     $merchant = $this->get_merchant();
     $element = self::add_element($document, $document->documentElement, 'Merchant');
     self::add_elements($document, $element, array('merchantID' => $merchant->get_id(), 'subID' => $merchant->get_sub_id()));
     // Return
     return $document;
 }
 /**
  * Get document
  *
  * @return DOMDocument
  */
 public function get_document()
 {
     $document = parent::get_document();
     // Root
     $root = $document->documentElement;
     // Merchant
     $merchant = $this->get_merchant();
     $element = self::add_element($document, $document->documentElement, 'Merchant');
     self::add_elements($document, $element, array('merchantID' => $merchant->get_id(), 'subID' => $merchant->get_sub_id()));
     // Transaction
     $transaction = $this->transaction;
     $element = self::add_element($document, $document->documentElement, 'Transaction');
     self::add_element($document, $element, 'transactionID', $transaction->get_id());
     // Return
     return $document;
 }
 /**
  * Get document
  *
  * @see Pronamic_WP_Pay_Gateways_IDealAdvancedV3_XML_RequestMessage::get_document()
  */
 public function get_document()
 {
     $document = parent::get_document();
     // Root
     $root = $document->documentElement;
     // Issuer
     $issuer = $this->issuer;
     $element = self::add_element($document, $document->documentElement, 'Issuer');
     self::add_element($document, $element, 'issuerID', $issuer->get_id());
     // Merchant
     $merchant = $this->get_merchant();
     $element = self::add_element($document, $document->documentElement, 'Merchant');
     self::add_elements($document, $element, array('merchantID' => $merchant->get_id(), 'subID' => $merchant->get_sub_id(), 'merchantReturnURL' => $merchant->get_return_url()));
     // Transaction
     $transaction = $this->transaction;
     $element = self::add_element($document, $document->documentElement, 'Transaction');
     self::add_elements($document, $element, array('purchaseID' => $transaction->get_purchase_id(), 'amount' => Pronamic_WP_Pay_Gateways_IDealAdvancedV3_IDeal::format_amount($transaction->get_amount()), 'currency' => $transaction->get_currency(), 'expirationPeriod' => $transaction->get_expiration_period(), 'language' => $transaction->get_language(), 'description' => $transaction->get_description(), 'entranceCode' => $transaction->get_entrance_code()));
     // Return
     return $document;
 }
Пример #4
0
 /**
  * Send an specific request message to an specific URL
  *
  * @param string $url
  * @param Pronamic_WP_Pay_Gateways_IDealAdvancedV3_XML_RequestMessage $message
  *
  * @return Pronamic_WP_Pay_Gateways_IDealAdvancedV3_XML_ResponseMessage
  */
 private function send_message($url, Pronamic_WP_Pay_Gateways_IDealAdvancedV3_XML_RequestMessage $message)
 {
     $result = false;
     // Sign
     $document = $message->get_document();
     $document = $this->sign_document($document);
     if (false !== $document) {
         // Stringify
         $data = $document->saveXML();
         // Remote post
         $response = wp_remote_post($url, array('method' => 'POST', 'headers' => array('Content-Type' => 'text/xml; charset=' . Pronamic_WP_Pay_Gateways_IDealAdvancedV3_XML_Message::XML_ENCODING), 'body' => $data));
         // Handle response
         if (!is_wp_error($response)) {
             if (200 === wp_remote_retrieve_response_code($response)) {
                 $body = wp_remote_retrieve_body($response);
                 $xml = Pronamic_WP_Pay_Util::simplexml_load_string($body);
                 if (is_wp_error($xml)) {
                     $this->error = $xml;
                 } else {
                     $document = self::parse_document($xml);
                     if (is_wp_error($document)) {
                         $this->error = $document;
                     } else {
                         $result = $document;
                     }
                 }
             } else {
                 $this->error = new WP_Error('wrong_response_code', __('The response code (<code>%s<code>) from the iDEAL provider was incorrect.', 'pronamic_ideal'));
             }
         } else {
             $this->error = $response;
         }
     }
     return $result;
 }