PHP code example of sepay / sepay-pg
1. Go to this page and download the library: Download sepay/sepay-pg 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/ */
sepay / sepay-pg example snippets
ePay\SePayClient;
use SePay\Builders\CheckoutBuilder;
// Initialize client
$sepay = new SePayClient(
'SP-TEST-XXXXXXX',
'spsk_live_xxxxxxxxxxxo99PoE7RsBpss3EFH5nV',
SePayClient::ENVIRONMENT_SANDBOX // or ENVIRONMENT_PRODUCTION
);
// Create checkout
$checkoutData = CheckoutBuilder::make()
->currency('VND')
->orderAmount(100000) // 100,000 VND
->operation('PURCHASE')
->orderDescription('Test payment')
->orderInvoiceNumber('INV_001')
->successUrl('https://yoursite.com/success')
->build();
// Display checkout form for payment
echo $sepay->checkout()->generateFormHtml($checkoutData);
// Or manually create form fields with signature
$formFields = $sepay->checkout()->generateFormFields($checkoutData);
echo "Checkout form created with signature: " . $formFields['signature'];
use SePay\SePayClient;
$sepay = new SePayClient(
$merchantId,
$secretKey,
$environment, // 'sandbox' or 'production'
$config // Optional configuration array
);
// Enable debug mode
$sepay->enableDebugMode();
// Configure retry behavior
$sepay
->setRetryAttempts(3)
->setRetryDelay(1000); // milliseconds
// Simple checkout using CheckoutBuilder
$checkoutData = CheckoutBuilder::make()
->currency('VND')
->orderAmount(100000) // 100,000 VND
->operation('PURCHASE')
->orderDescription('Payment for order #123')
->orderInvoiceNumber('INV_123')
->customerId('customer_001')
->successUrl('https://yoursite.com/success')
->errorUrl('https://yoursite.com/error')
->cancelUrl('https://yoursite.com/cancel')
->build();
// Generate form fields with signature
$formFields = $sepay->checkout()->generateFormFields($checkoutData);
// Alternative: Pass array directly
$checkoutArray = [
'currency' => 'VND',
'order_amount' => 100000,
'operation' => 'PURCHASE',
'order_description' => 'Payment for order #123',
'order_invoice_number' => 'INV_123',
'customer_id' => 'customer_001',
'success_url' => 'https://yoursite.com/success',
'error_url' => 'https://yoursite.com/error',
'cancel_url' => 'https://yoursite.com/cancel',
];
$formFields = $sepay->checkout()->generateFormFields($checkoutArray);
// Card payment
$cardCheckout = CheckoutBuilder::make()
->paymentMethod('CARD')
// ...
->build();
// Bank transfer payment
$bankCheckout = CheckoutBuilder::make()
->paymentMethod('BANK_TRANSFER')
// ...
->build();
// Show all payment methods
$allMethodsCheckout = CheckoutBuilder::make()
// ->paymentMethod('...')
// ...
->build();
// Retrieve order by invoice number
$order = $sepay->orders()->retrieve('ORDER_INVOICE_NUMBER');
// List orders with filters
$orders = $sepay->orders()->list([
'per_page' => 10,
'order_status' => 'CAPTURED',
'from_created_at' => '2024-01-01',
'to_created_at' => '2024-12-31',
]);
// Void transaction (cancel payment)
$result = $sepay->orders()->voidTransaction('ORDER_INVOICE_NUMBER');
use SePay\Exceptions\AuthenticationException;
use SePay\Exceptions\ValidationException;
use SePay\Exceptions\NotFoundException;
use SePay\Exceptions\RateLimitException;
use SePay\Exceptions\ServerException;
try {
$order = $sepay->orders()->retrieve('ORDER_INVOICE_NUMBER');
} catch (AuthenticationException $e) {
// Invalid credentials or signature
echo "Authentication failed: " . $e->getMessage();
} catch (ValidationException $e) {
// Invalid request data
echo "Validation error: " . $e->getMessage();
// Get field-specific errors
if ($e->hasFieldError('amount')) {
$errors = $e->getFieldErrors('amount');
echo "Amount errors: " . implode(', ', $errors);
}
} catch (NotFoundException $e) {
// Resource not found
echo "Not found: " . $e->getMessage();
} catch (RateLimitException $e) {
// Rate limit exceeded
echo "Rate limited. Retry after: " . $e->getRetryAfter() . " seconds";
} catch (ServerException $e) {
// Server error (5xx)
echo "Server error: " . $e->getMessage();
}
$merchantId = 'SP-LIVE-XXXXXXX';
$secretKey = 'spsk_live_xxxxxxxxxxxo99PoE7RsBpss3EFH5nV';
$config = [
'timeout' => 60, // Request timeout in seconds
'retry_attempts' => 5, // Number of retry attempts
'retry_delay' => 2000, // Delay between retries in milliseconds
'debug' => true, // Enable debug logging
'user_agent' => 'MyApp/1.0 SePay-PHP-SDK/1.0.0',
'logger' => $customLogger, // PSR-3 compatible logger
];
$sepay = new SePayClient($merchantId, $secretKey, $environment, $config);
bash
# Overview
php examples/basic-usage.php
# Specific examples
php examples/01-checkout-basic.php # Basic payments
php examples/02-orders-management.php # Orders management
php examples/03-payment-methods.php # Payment methods