Пример #1
0
 /**
  * pretty much a helper function to set up the request
  */
 public static function from_consumer_and_token($consumer, $token, $http_method, $http_url, $parameters = NULL)
 {
     @$parameters or $parameters = [];
     $defaults = ["oauth_version" => OAuthRequest::$version, "oauth_nonce" => OAuthRequest::generate_nonce(), "oauth_timestamp" => OAuthRequest::generate_timestamp(), "oauth_consumer_key" => $consumer->key];
     if ($token) {
         $defaults['oauth_token'] = $token->key;
     }
     $parameters = array_merge($defaults, $parameters);
     return new OAuthRequest($http_method, $http_url, $parameters);
 }
Пример #2
0
 /**
  * @param $pesapal_merchant_reference
  *
  * @return mixed
  */
 function getMerchantStatus($pesapal_merchant_reference)
 {
     $consumer_key = config('pesapal.consumer_key');
     $consumer_secret = config('pesapal.consumer_secret');
     $statusrequestAPI = $this->api_link('querypaymentstatusbymerchantref');
     $token = $params = NULL;
     $consumer = new OAuthConsumer($consumer_key, $consumer_secret);
     $signature_method = new OAuthSignatureMethod_HMAC_SHA1();
     //get transaction status
     $request_status = OAuthRequest::from_consumer_and_token($consumer, $token, "GET", $statusrequestAPI, $params);
     $request_status->set_parameter("pesapal_merchant_reference", $pesapal_merchant_reference);
     $request_status->sign_request($signature_method, $consumer, $token);
     $ch = curl_init();
     curl_setopt($ch, CURLOPT_URL, $request_status);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     curl_setopt($ch, CURLOPT_HEADER, 1);
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
     if (defined('CURL_PROXY_REQUIRED')) {
         if (CURL_PROXY_REQUIRED == 'True') {
             $proxy_tunnel_flag = defined('CURL_PROXY_TUNNEL_FLAG') && strtoupper(CURL_PROXY_TUNNEL_FLAG) == 'FALSE' ? false : true;
             curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, $proxy_tunnel_flag);
             curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
             curl_setopt($ch, CURLOPT_PROXY, CURL_PROXY_SERVER_DETAILS);
         }
     }
     $response = curl_exec($ch);
     $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
     $raw_header = substr($response, 0, $header_size - 4);
     $headerArray = explode("\r\n\r\n", $raw_header);
     $header = $headerArray[count($headerArray) - 1];
     //transaction status
     $elements = preg_split("/=/", substr($response, $header_size));
     $status = $elements[1];
     curl_close($ch);
     return $status;
 }