public function generateLaunchData() { if (!$this->hasRequiredParams()) { throw new InvalidLTIConfigurationException("Some required parameters are missing"); } $this->parameters['lti_version'] = array_key_exists('lti_version', $this->parameters) ? $this->parameters['lti_version'] : 'LTI-1p0'; $this->parameters['lti_message_type'] = array_key_exists('lti_message_type', $this->parameters) ? $this->parameters['lti_message_type'] : 'basic-lti-launch-request'; $url = $this->toolConfiguration->getLaunchUrl(); //@TODO: Remove query string parameters and append them to parameters $consumer = new \OAuth($this->consumerKey, $this->consumerSecret, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_URI); $timestamp = time(); $nonce = md5($timestamp); $consumer->setTimestamp($timestamp); $consumer->setNonce($nonce); $signature = $consumer->generateSignature('POST', $url, $this->parameters); $this->parameters[LaunchParameters::OAUTH_CONSUMER_KEY] = $this->consumerKey; $this->parameters[LaunchParameters::OAUTH_SIGNATURE_METHOD] = 'HMAC-SHA1'; $this->parameters[LaunchParameters::OAUTH_VERSION] = '1.0'; $this->parameters[LaunchParameters::OAUTH_TIMESTAMP] = $timestamp; $this->parameters[LaunchParameters::OAUTH_NONCE] = $nonce; $this->parameters[LaunchParameters::OAUTH_SIGNATURE] = $signature; return $this->parameters; }
$api_url = "https://mysite.byappdirect.com/api/hostedCheckout/v1/transactions"; $http_method = "POST"; $returnUrl = "http://saralam.com"; $nonce_range = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; $nonce = ''; for ($i = 0; $i < 15; ++$i) { $rind = floor((double) rand() / (double) getrandmax() * strlen($nonce_range)); $nonce .= substr($nonce_range, $rind, 1); } $timestamp = time(); $version = "1.0"; $oauth = new OAuth($consumer_key, $consumer_secret); $oauth->setNonce($nonce); $oauth->setTimestamp($timestamp); $oauth->setversion($version); $sign = $oauth->generateSignature('POST', $api_url); $oauth_header = 'Authorization: OAuth oauth_version=1.0, oauth_nonce=' . $nonce . ',oauth_timestamp=' . $timestamp . ',oauth_consumer_key=mykey, oauth_signature_method=HMAC-SHA1,oauth_signature=' . $sign; $ch = curl_init($api_url); $to_postdata = array("productId" => "37392", "token" => '123446788-dgfgfgfg-uytt', "type" => "PURCHASE", "user" => array("email" => '*****@*****.**', "firstName" => "Test", "lastName" => "Test"), "company" => array("name" => "Saralam"), "returnUrl" => $returnUrl); $data_string = json_encode($to_postdata); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Accept: application/json', $oauth_header)); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_HEADER, true); // DO NOT RETURN HTTP HEADERS curl_setopt($ch, CURLINFO_HEADER_OUT, true); // enable tracking
/** * @see OAuthHanlder::GetSignedRequestParameters() */ public function GetSignedRequestParameters($credentials, $url, $method = NULL) { if (empty($method)) { $method = 'POST'; } $params = array(); $params['oauth_consumer_key'] = $credentials['oauth_consumer_key']; $params['oauth_token'] = $credentials['oauth_token']; $params['oauth_signature_method'] = 'HMAC-SHA1'; $params['oauth_timestamp'] = time(); $params['oauth_nonce'] = uniqid(); $params['oauth_version'] = '1.0a'; $oauth = new OAuth($credentials['oauth_consumer_key'], $credentials['oauth_consumer_secret'], OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_AUTHORIZATION); $oauth->setRequestEngine(OAUTH_REQENGINE_CURL); $oauth->setVersion('1.0a'); $oauth->setToken($credentials['oauth_token'], $credentials['oauth_token_secret']); $oauth->setTimestamp($params['oauth_timestamp']); $oauth->setNonce($params['oauth_nonce']); $oauth->setVersion($params['oauth_version']); $signature = $oauth->generateSignature(self::$OAUTH_METHOD_ENUMS[$method], $url); $params['oauth_signature'] = $signature; return $params; }