PHP code example of mak8tech / dpo-payments
1. Go to this page and download the library: Download mak8tech/dpo-payments 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/ */
mak8tech / dpo-payments example snippets
use Mak8Tech\DpoPayments\Facades\DpoPayment;
// Create a one-time payment
$transaction = DpoPayment::createPayment([
'amount' => 100.00,
'currency' => 'ZMW',
'country' => 'ZM',
'customer_email' => '[email protected] ',
'customer_name' => 'John Doe',
'description' => 'Purchase of Product X',
]);
// Redirect to payment URL
return redirect($transaction->payment_url);
use Mak8Tech\DpoPayments\Services\SubscriptionService;
$subscriptionService = app(SubscriptionService::class);
$subscription = $subscriptionService->createSubscription([
'amount' => 50.00,
'frequency' => 'monthly',
'currency' => 'ZMW',
'country' => 'ZM',
'customer_email' => '[email protected] ',
'customer_name' => 'Jane Doe',
'start_date' => now()->addDay(),
]);
// In your EventServiceProvider
use Mak8Tech\DpoPayments\Events\PaymentSuccessful;
use Mak8Tech\DpoPayments\Events\PaymentFailed;
protected $listen = [
PaymentSuccessful::class => [
SendPaymentConfirmation::class,
UpdateUserSubscription::class,
],
PaymentFailed::class => [
NotifyPaymentFailure::class,
],
];
use Mak8Tech\DpoPayments\Services\DpoService;
use Mak8Tech\DpoPayments\Data\TransactionData;
$dpoService = app(DpoService::class);
$transactionData = new TransactionData(
amount: 150.00,
currency: 'ZMW',
reference: 'CUSTOM-REF-123',
description: 'Custom Payment',
customerEmail: '[email protected] ',
customerName: 'John Doe',
customerPhone: '+260977123456',
customerCountry: 'ZM',
services: [
['description' => 'Service 1', 'date' => now()->format('Y/m/d H:i')],
['description' => 'Service 2', 'date' => now()->format('Y/m/d H:i')],
],
isRecurring: false
);
$tokenResponse = $dpoService->createToken($transactionData);
if ($tokenResponse->isSuccessful()) {
// Process payment
}
use Mak8Tech\DpoPayments\Services\CountryService;
$countryService = app(CountryService::class);
// Get all countries that support recurring payments
$recurringCountries = $countryService->getRecurringCountries();
// Get currency for a specific country
$currency = $countryService->getCurrencyForCountry('KE'); // Returns 'KES'
// Format currency amount
$formatted = $countryService->formatCurrency(1000.50, 'ZMW'); // Returns 'K 1,000.50'
// config/dpo.php
'allowed_ips' => [
'41.77.245.104', // DPO IP addresses
'41.77.245.105',
],
// config/dpo.php
'logging' => [
'enabled' => true,
'channel' => 'dpo', // Create custom channel in config/logging.php
],
bash
php artisan vendor:publish --provider="Mak8Tech\DpoPayments\DpoPaymentServiceProvider"
bash
php artisan migrate
bash
php artisan vendor:publish --provider="Mak8Tech\DpoPayments\DpoPaymentServiceProvider" --tag="dpo-views"
bash
php artisan vendor:publish --provider="Mak8Tech\DpoPayments\DpoPaymentServiceProvider" --tag="dpo-react"
bash
php artisan dpo:status