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\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');
}