paypal/paypal-server-sdk
Official PayPal Server SDK for PHP. Integrates with a limited set of PayPal REST APIs (Orders, Payments, Vault, Transaction Search, Subscriptions). Supports sandbox/live environments, configurable timeouts, and optional retries/backoff.
The PayPal Server SDK provides integration access to the PayPal REST APIs. The API endpoints are divided into distinct controllers:
Run the following command to install the package and automatically add the dependency to your composer.json file:
composer require "paypal/paypal-server-sdk:2.2.0"
Or add it to the composer.json file manually as given below:
"require": {
"paypal/paypal-server-sdk": "2.2.0"
}
You can also view the package at: https://packagist.org/packages/paypal/paypal-server-sdk#2.2.0
Note: Documentation for the client can be found here.
The following parameters are configurable for the API Client:
| Parameter | Type | Description |
|---|---|---|
| environment | Environment |
The API environment. Default: Environment.SANDBOX |
| timeout | int |
Timeout for API calls in seconds.Default: 0 |
| enableRetries | bool |
Whether to enable retries and backoff feature.Default: false |
| numberOfRetries | int |
The number of retries to make.Default: 0 |
| retryInterval | float |
The retry time interval between the endpoint calls.Default: 1 |
| backOffFactor | float |
Exponential backoff factor to increase interval between retries.Default: 2 |
| maximumRetryWaitTime | int |
The maximum wait time in seconds for overall retrying requests.Default: 0 |
| retryOnTimeout | bool |
Whether to retry on request timeout.Default: true |
| httpStatusCodesToRetry | array |
Http status codes to retry against.Default: 408, 413, 429, 500, 502, 503, 504, 521, 522, 524 |
| httpMethodsToRetry | array |
Http methods to retry against.Default: 'GET', 'PUT' |
| loggingConfiguration | LoggingConfigurationBuilder |
Represents the logging configurations for API calls |
| proxyConfiguration | ProxyConfigurationBuilder |
Represents the proxy configurations for API calls |
| clientCredentialsAuth | ClientCredentialsAuth |
The Credentials Setter for OAuth 2 Client Credentials Grant |
The API client can be initialized as follows:
use PaypalServerSdkLib\Logging\LoggingConfigurationBuilder;
use PaypalServerSdkLib\Logging\RequestLoggingConfigurationBuilder;
use PaypalServerSdkLib\Logging\ResponseLoggingConfigurationBuilder;
use Psr\Log\LogLevel;
use PaypalServerSdkLib\Environment;
use PaypalServerSdkLib\Authentication\ClientCredentialsAuthCredentialsBuilder;
use PaypalServerSdkLib\PaypalServerSdkClientBuilder;
$client = PaypalServerSdkClientBuilder::init()
->clientCredentialsAuthCredentials(
ClientCredentialsAuthCredentialsBuilder::init(
'OAuthClientId',
'OAuthClientSecret'
)
)
->environment(Environment::SANDBOX)
->loggingConfiguration(
LoggingConfigurationBuilder::init()
->level(LogLevel::INFO)
->requestConfiguration(RequestLoggingConfigurationBuilder::init()->body(true))
->responseConfiguration(ResponseLoggingConfigurationBuilder::init()->headers(true))
)
->build();
The SDK can be configured to use a different environment for making API calls. Available environments are:
| Name | Description |
|---|---|
| Production | PayPal Live Environment |
| Sandbox | Default PayPal Sandbox Environment |
This API uses the following authentication schemes.
How can I help you explore Laravel packages today?