/** * @param RequestInterface $request * @return array */ protected function getRequestDispatchOptions(RequestInterface $request) { $url = $request->getUrl(); $options = array_replace($this->getOptions(), [CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => $this->getRequestDispatchHeaders($request), CURLOPT_TIMEOUT => $request->getTimeout()]); $options[CURLOPT_CUSTOMREQUEST] = $request->getMethod(); $params = $request->getParams(); switch ($options[CURLOPT_CUSTOMREQUEST]) { case 'POST': $options[CURLOPT_POSTFIELDS] = $request->getData(); case 'GET': $glue = strpos($url, '?') !== false ? '&' : '?'; $url .= $params ? $glue . http_build_query($params) : null; break; } $options[CURLOPT_URL] = $url; return $options; }
/** * @param RequestInterface $request * @return void */ public function prepare(RequestInterface $request) { $xml = $this->getCheckoutAsXml(); $charset = $this->checkout->getCharset(); $request->setData($xml)->setCharset($charset)->setHeaders(['Content-Type' => 'application/xml; charset=' . $charset]); }