2 namespace PayPal\Rest;
\r
4 use PayPal\Common\PPApiContext;
\r
9 * Call level parameters such as
\r
10 * request id, credentials etc
\r
12 class ApiContext extends PPApiContext {
\r
15 * OAuth Credentials to use for this call
\r
16 * @var PayPal/Api/OAuthTokenCredential
\r
18 private $credential;
\r
21 * Unique request id to be used for this call
\r
22 * The user can either generate one as per application
\r
23 * needs or let the SDK generate one
\r
31 public function getCredential() {
\r
32 return $this->credential;
\r
35 public function getrequestId() {
\r
36 if($this->requestId == null) {
\r
37 $this->requestId = $this->generateRequestId();
\r
39 return $this->requestId;
\r
45 * @param PayPal/Api/OAuthTokenCredential $credential
\r
46 * @param string $requestId
\r
48 public function __construct($credential, $requestId=null) {
\r
49 $this->credential = $credential;
\r
50 $this->requestId = $requestId;
\r
54 * Generates a unique per request id that
\r
55 * can be used to set the PayPal-Request-Id header
\r
56 * that is used for idemptency
\r
59 private function generateRequestId() {
\r
68 if(array_key_exists('SERVER_ADDR', $_SERVER)) {
\r
69 $addr = ip2long($_SERVER['SERVER_ADDR']);
\r
71 $addr = php_uname('n');
\r
75 return $addr . $pid . $_SERVER['REQUEST_TIME'] . mt_rand(0, 0xffff);
\r