PayWithAmazon\Client::invokePost PHP Method

invokePost() private method

* invokePost takes the parameters and invokes the httpPost function to POST the parameters Exponential retries on error 500 and 503 The response from the POST is an XML which is converted to Array
private invokePost ( $parameters )
    private function invokePost($parameters)
    {
        $response = array();
        $statusCode = 200;
        $this->success = false;
        // Submit the request and read response body
        try {
            $shouldRetry = true;
            $retries = 0;
            do {
                try {
                    $this->constructUserAgentHeader();
                    $httpCurlRequest = new HttpCurl($this->config);
                    $response = $httpCurlRequest->httpPost($this->mwsServiceUrl, $this->userAgent, $parameters);
                    $curlResponseInfo = $httpCurlRequest->getCurlResponseInfo();
                    $statusCode = $curlResponseInfo["http_code"];
                    $this->logMessage($this->userAgent);
                    $response = array('Status' => $statusCode, 'ResponseBody' => $response);
                    $statusCode = $response['Status'];
                    if ($statusCode == 200) {
                        $shouldRetry = false;
                        $this->success = true;
                    } elseif ($statusCode == 500 || $statusCode == 503) {
                        $shouldRetry = true;
                        if ($shouldRetry && strtolower($this->config['handle_throttle'])) {
                            $this->pauseOnRetry(++$retries, $statusCode);
                        }
                    } else {
                        $shouldRetry = false;
                    }
                } catch (\Exception $e) {
                    throw $e;
                }
            } while ($shouldRetry);
        } catch (\Exception $se) {
            throw $se;
        }
        $this->logMessage($this->sanitizeResponseData($response['ResponseBody']));
        return $response;
    }