PHP code example of luizsilva-dev / partnerize-partner-sdk-php

1. Go to this page and download the library: Download luizsilva-dev/partnerize-partner-sdk-php library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

luizsilva-dev / partnerize-partner-sdk-php example snippets




use Partnerize\SDK\PartnerizeClient;
use Partnerize\SDK\Config\Configuration;

// Create configuration
$config = new Configuration(
    applicationKey: 'your_application_key',
    userApiKey: 'your_user_api_key'
);

// Initialize client
$client = new PartnerizeClient($config);

// List all campaigns
$campaigns = $client->campaigns()->list();

foreach ($campaigns->getCampaigns() as $campaign) {
    echo "Campaign: {$campaign->title}\n";
}

use Partnerize\SDK\Models\TrackingLink\CreateTrackingLinkRequest;

$request = new CreateTrackingLinkRequest(
    campaignId: '111111l13',
    destinationUrl: 'https://example.com/product'
);

$trackingLink = $client->trackingLinks()->create($request);
echo "Tracking URL: {$trackingLink->getUrl()}\n";

use Partnerize\SDK\Models\Reporting\ConversionsReportRequest;

$request = new ConversionsReportRequest(
    startDate: new \DateTime('2024-01-01'),
    endDate: new \DateTime('2024-01-31')
);

$report = $client->reporting()->conversions($request);

foreach ($report->getConversions() as $conversion) {
    echo "Conversion ID: {$conversion->conversionId}, Amount: {$conversion->saleValue}\n";
}

$partnerId = '111111l3';
$participations = $client->participations()->list($partnerId);

foreach ($participations->getParticipations() as $participation) {
    echo "Campaign: {$participation->campaignInfo->title}\n";
}

use Partnerize\SDK\Pagination\StandardPaginator;

// Automatic pagination through all results
$paginator = new StandardPaginator(
    fn($offset, $limit) => $client->campaigns()->list($offset, $limit)
);

foreach ($paginator as $campaign) {
    echo "Campaign: {$campaign->title}\n";
}

use Partnerize\SDK\Pagination\CursorPaginator;

$paginator = new CursorPaginator(
    fn($cursorId, $limit) => $client->reporting()->conversions(
        new ConversionsReportRequest(
            startDate: new \DateTime('2024-01-01'),
            endDate: new \DateTime('2024-01-31'),
            cursorId: $cursorId,
            limit: $limit
        )
    )
);

foreach ($paginator as $conversion) {
    // Process conversion
}

use Partnerize\SDK\Exceptions\ApiException;
use Partnerize\SDK\Exceptions\AuthenticationException;
use Partnerize\SDK\Exceptions\RateLimitException;
use Partnerize\SDK\Exceptions\ValidationException;

try {
    $campaigns = $client->campaigns()->list();
} catch (AuthenticationException $e) {
    // Handle authentication errors
    echo "Auth failed: {$e->getMessage()}\n";
} catch (RateLimitException $e) {
    // Handle rate limiting
    echo "Rate limited. Retry after: {$e->getRetryAfter()} seconds\n";
} catch (ValidationException $e) {
    // Handle validation errors
    foreach ($e->getErrors() as $error) {
        echo "Validation error: {$error['message']}\n";
    }
} catch (ApiException $e) {
    // Handle general API errors
    echo "API Error [{$e->getStatusCode()}]: {$e->getMessage()}\n";
}

use GuzzleHttp\Promise\Utils;

// Execute multiple requests concurrently
$promises = [
    'campaigns' => $client->campaigns()->listAsync(),
    'partner' => $client->partnerManagement()->getDetailsAsync(),
];

$results = Utils::unwrap($promises);

// Access results
$campaigns = $results['campaigns'];
$partnerDetails = $results['partner'];

'providers' => [
    // ...
    Partnerize\SDK\Bridge\Laravel\PartnerizeServiceProvider::class,
],

'aliases' => [
    // ...
    'Partnerize' => Partnerize\SDK\Bridge\Laravel\PartnerizeFacade::class,
],

use Partnerize\SDK\PartnerizeClient;

class CampaignController extends Controller
{
    public function __construct(
        private PartnerizeClient $partnerize
    ) {}

    public function index()
    {
        $campaigns = $this->partnerize->campaigns()->list();
        return view('campaigns.index', compact('campaigns'));
    }
}

// Or using Facade
use Partnerize;

$campaigns = Partnerize::campaigns()->list();

use GuzzleHttp\Client;
use Partnerize\SDK\Config\Configuration;
use Partnerize\SDK\PartnerizeClient;

// Custom Guzzle client with additional options
$httpClient = new Client([
    'timeout' => 30,
    'connect_timeout' => 10,
    'verify' => true,
]);

$config = new Configuration(
    applicationKey: 'your_application_key',
    userApiKey: 'your_user_api_key',
    baseUrl: 'https://api.partnerize.com', // Optional: override base URL
    maxRetries: 3, // Optional: configure retry attempts
    retryDelay: 1000 // Optional: delay between retries in milliseconds
);

$client = new PartnerizeClient($config, $httpClient);

use Partnerize\SDK\Webhook\WebhookVerifier;

$verifier = new WebhookVerifier('your_webhook_secret');

$payload = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_PARTNERIZE_SIGNATURE'] ?? '';

if ($verifier->verify($payload, $signature)) {
    // Process webhook
    $data = json_decode($payload, true);
} else {
    http_response_code(401);
    exit('Invalid signature');
}
bash
composer 
bash
php artisan vendor:publish --provider="Partnerize\SDK\Bridge\Laravel\PartnerizeServiceProvider"