예제 #1
0
 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
예제 #3
0
 /**
  * @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;
 }