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