/** * Get the Signature Base String for signing. This is basically just all params (including the generated oauth ones) * ordered by key, then concatenated with the method and URL * GET&https%3A%2F%2Fapi.xero.com%2Fapi.xro%2F2.0%2FContacts&oauth_consumer etc. * * @return string */ public function getSBS() { $oauth_params = $this->getOAuthParams(); $request_params = $this->request->getParameters(); $sbs_params = array_merge($request_params, $oauth_params); //Params need sorting so signing order is the same ksort($sbs_params); $sbs_string = Helpers::flattenAssocArray($sbs_params, '%s=%s', '&', true); $url = $this->request->getUrl()->getFullURL(); //Every second thing seems to need escaping! return sprintf('%s&%s&%s', $this->request->getMethod(), Helpers::escape($url), Helpers::escape($sbs_string)); }