PHP code example of sagapay / sdk-php
1. Go to this page and download the library: Download sagapay/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/ */
sagapay / sdk-php example snippets
// Initialize the SagaPay client
w Client('your-api-key', 'your-api-secret');
// Create a deposit address
try {
$deposit = $client->createDeposit([
'networkType' => 'BEP20',
'contractAddress' => '0', // Use '0' for native coins
'amount' => '1.5',
'ipnUrl' => 'https://yourwebsite.com/webhook.php',
'udf' => 'order-123',
'type' => 'TEMPORARY'
]);
echo "Deposit address created: " . $deposit['address'];
} catch (\SagaPay\SDK\Exception $e) {
echo "Error: " . $e->getMessage();
}
$deposit = $client->createDeposit([
'networkType' => 'BEP20', // Required: ERC20, BEP20, TRC20, POLYGON, SOLANA
'contractAddress' => '0', // Required: Contract address or '0' for native coins
'amount' => '1.5', // Required: Expected deposit amount
'ipnUrl' => 'https://example.com/webhook.php', // Required: URL for notifications
'udf' => 'order-123', // Optional: User-defined field
'type' => 'TEMPORARY' // Optional: TEMPORARY or PERMANENT
]);
$withdrawal = $client->createWithdrawal([
'networkType' => 'ERC20', // Required: ERC20, BEP20, TRC20, POLYGON, SOLANA
'contractAddress' => '0xdAC17F...', // Required: Contract address or '0' for native coins
'address' => '0x742d35C...', // Required: Destination wallet address
'amount' => '10.5', // Required: Withdrawal amount
'ipnUrl' => 'https://example.com/webhook.php', // Required: URL for notifications
'udf' => 'withdrawal-456' // Optional: User-defined field
]);
$status = $client->checkTransactionStatus('0x742d35C...', 'deposit');
$balance = $client->fetchWalletBalance(
'0x742d35C...', // Address
'ERC20', // Network type
'0xdAC17F...' // Contract address (use '0' for native currency)
);
// webhook.php
ent;
use SagaPay\SDK\WebhookHandler;
$client = new Client('your-api-key', 'your-api-secret');
$webhookHandler = new WebhookHandler($client);
try {
// Process and validate the webhook
$webhookData = $webhookHandler->processWebhook(getallheaders(), file_get_contents('php://input'));
// Handle the validated webhook data
$transactionId = $webhookData['id'];
$type = $webhookData['type']; // 'deposit' or 'withdrawal'
$status = $webhookData['status']; // 'PENDING', 'PROCESSING', 'COMPLETED', 'FAILED', 'CANCELLED'
$address = $webhookData['address'];
$amount = $webhookData['amount'];
$udf = $webhookData['udf'] ?? null; // Your custom reference field
// Update your database or trigger actions based on status
if ($status === 'COMPLETED') {
// Process successful payment
// e.g., updateOrderStatus($udf, 'paid');
}
// Send success response
$webhookHandler->sendSuccessResponse();
} catch (\SagaPay\SDK\Exception $e) {
// Log the error and send error response
error_log("Webhook error: " . $e->getMessage());
$webhookHandler->sendErrorResponse($e->getMessage(), $e->getCode());
}
try {
$client->createDeposit($params);
} catch (\SagaPay\SDK\Exception $e) {
echo "Error: " . $e->getMessage() . "\n";
echo "Code: " . $e->getCode() . "\n";
echo "HTTP Status: " . $e->getHttpCode() . "\n";
}
bash
composer