PHP code example of payzcore / payzcore-php
1. Go to this page and download the library: Download payzcore/payzcore-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/ */
payzcore / payzcore-php example snippets
ayzCore\PayzCore;
$payzcore = new PayzCore('pk_live_your_api_key');
// Create a payment monitoring request (network specified)
$result = $payzcore->payments->create([
'amount' => 50,
'externalRef' => 'user-123',
'network' => PayzCore::NETWORK_TRC20, // optional
'metadata' => ['type' => 'topup'],
]);
echo $result['payment']['address']; // Deposit address
echo $result['payment']['amount']; // Amount with random cents
echo $result['payment']['token']; // 'USDT'
// Or let the customer choose the network on the payment page
$result = $payzcore->payments->create([
'amount' => 50,
'externalRef' => 'user-123',
]);
echo $result['payment']['awaitingNetwork']; // true
echo $result['payment']['paymentUrl']; // 'https://app.payzcore.com/pay/xxx'
print_r($result['payment']['availableNetworks']); // [{network, name, tokens}, ...]
// Create payment (USDT on TRC20)
$result = $payzcore->payments->create([
'amount' => 100,
'externalRef' => 'order-456',
'network' => PayzCore::NETWORK_TRC20, // optional
]);
// Create payment with explicit token
$result = $payzcore->payments->create([
'amount' => 100,
'externalRef' => 'order-456',
'network' => PayzCore::NETWORK_BEP20,
'token' => PayzCore::TOKEN_USDC, // optional, defaults to 'USDT'
'externalOrderId' => 'INV-001', // optional
'expiresIn' => 3600, // optional, seconds (300-86400)
'metadata' => ['plan' => 'pro'], // optional
'address' => 'Txxxx...', // optional, static wallet dedicated mode only
]);
echo $result['payment']['network']; // 'BEP20'
echo $result['payment']['token']; // 'USDC'
// Static wallet projects may also return: $result['payment']['notice'],
// $result['payment']['original_amount'], $result['payment']['rm('payment-uuid', 'abc123def456...');
// $result['verified'], $result['status'], $result['amount_received']
use PayzCore\PayzCore;
$admin = new PayzCore('mk_your_master_key', ['masterKey' => true]);
// Create project
$result = $admin->projects->create([
'name' => 'My Store',
'slug' => 'my-store',
'webhookUrl' => 'https://example.com/webhook',
]);
echo $result['project']['apiKey']; // pk_live_xxx
echo $result['project']['webhookSecret']; // whsec_xxx
// List projects
$result = $admin->projects->list();
use PayzCore\Webhook;
use PayzCore\Exceptions\WebhookSignatureException;
$body = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_PAYZCORE_SIGNATURE'] ?? '';
$secret = 'whsec_your_webhook_secret';
try {
$event = Webhook::constructEvent($body, $signature, $secret);
switch ($event['event']) {
case 'payment.completed':
// Handle completed payment
$paymentId = $event['paymentId'];
$amount = $event['paidAmount'];
$ref = $event['externalRef'];
$network = $event['network']; // e.g. 'TRC20'
$token = $event['token']; // e.g. 'USDT' or 'USDC'
break;
case 'payment.overpaid':
// Handle overpayment
break;
case 'payment.expired':
// Handle expiry
break;
case 'payment.partial':
// Handle partial payment
break;
case 'payment.cancelled':
// Handle cancellation
break;
}
http_response_code(200);
echo json_encode(['ok' => true]);
} catch (WebhookSignatureException $e) {
http_response_code(401);
echo json_encode(['error' => 'Invalid signature']);
}
$isValid = Webhook::verifySignature($body, $signature, $secret);
$payzcore = new PayzCore('pk_live_xxx', [
'baseUrl' => 'https://api.payzcore.com', // API base URL
'timeout' => 30, // Request timeout in seconds
'maxRetries' => 2, // Max retries on 5xx errors
'masterKey' => false, // Use x-master-key header
]);
use PayzCore\Exceptions\PayzCoreException;
use PayzCore\Exceptions\AuthenticationException;
use PayzCore\Exceptions\ForbiddenException;
use PayzCore\Exceptions\NotFoundException;
use PayzCore\Exceptions\ValidationException;
use PayzCore\Exceptions\RateLimitException;
use PayzCore\Exceptions\IdempotencyException;
try {
$result = $payzcore->payments->create([...]);
} catch (ValidationException $e) {
// 400 - Invalid parameters
echo $e->getMessage();
print_r($e->getDetails()); // Validation error details
} catch (AuthenticationException $e) {
// 401 - Invalid API key
} catch (ForbiddenException $e) {
// 403 - Access denied
} catch (NotFoundException $e) {
// 404 - Resource not found
} catch (RateLimitException $e) {
// 429 - Rate limited
echo $e->getRetryAfter(); // Seconds until reset (or null)
echo $e->isDaily(); // Whether this is a daily limit
} catch (IdempotencyException $e) {
// 409 - external_order_id reused with different external_ref
} catch (PayzCoreException $e) {
// Other API errors (5xx, etc.)
echo $e->getStatusCode();
echo $e->getErrorCode();
}
bash
composer