PHP code example of santosdave / jambojet-laravel
1. Go to this page and download the library: Download santosdave/jambojet-laravel 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/ */
santosdave / jambojet-laravel example snippets
// config/jambojet.php
return [
'base_url' => env('JAMBOJET_BASE_URL', 'https://api.jambojet.com/'),
'subscription_key' => env('JAMBOJET_SUBSCRIPTION_KEY'),
'timeout' => env('JAMBOJET_TIMEOUT', 30),
'retry_attempts' => env('JAMBOJET_RETRY_ATTEMPTS', 3),
'environment' => env('JAMBOJET_ENVIRONMENT', 'test'),
'logging' => [
'enabled' => env('JAMBOJET_LOG_ENABLED', true),
'channel' => env('JAMBOJET_LOG_CHANNEL', 'stack'),
'level' => env('JAMBOJET_LOG_LEVEL', 'info'),
],
];
antosDave\JamboJet\JamboJetClient;
$client = new JamboJetClient([
'base_url' => 'https://api.jambojet.com/',
'subscription_key' => 'your-key-here'
]);
// 1. Search for flights
$searchCriteria = [
'origin' => 'NBO',
'destination' => 'MBA',
'departureDate' => '2024-12-15',
'adult' => 1
];
$availability = $client->booking()->getAvailability($searchCriteria);
// 2. Select flight and get sell key
$sellKey = $availability['data']['trips'][0]['journeysAvailable'][0]['journeys'][0]['sellKey'];
// 3. Create booking
$bookingRequest = [
'sellKeys' => [$sellKey],
'passengers' => [
[
'name' => [
'first' => 'John',
'last' => 'Doe'
],
'passengerTypeCode' => 'ADT',
'gender' => 'Male'
]
],
'contact' => [
'emails' => ['[email protected] '],
'phoneNumbers' => ['+254700000000']
]
];
$booking = $client->booking()->createBooking($bookingRequest);
$recordLocator = $booking['data']['recordLocator'];
// 4. Process payment
$paymentData = [
'paymentMethodType' => 'ExternalAccount',
'paymentMethodCode' => 'MC',
'accountNumber' => '5123456789012346',
'expiration' => '2025-12',
'accountHolderName' => 'John Doe',
'paymentFields' => [
['fieldName' => 'VerificationCode', 'fieldValue' => '123']
]
];
$payment = $client->payment()->addPaymentToBooking($recordLocator, $paymentData);
// 5. Retrieve booking confirmation
$confirmation = $client->booking()->getBooking($recordLocator);
echo "Booking successful! PNR: " . $recordLocator;
// Search flights
$availability = $client->booking()->getAvailability($criteria);
// Create booking
$booking = $client->booking()->createBooking($request);
// Modify booking
$modified = $client->booking()->updateBooking($recordLocator, $changes);
// Cancel booking
$cancelled = $client->booking()->cancelBooking($recordLocator);
// Retrieve booking
$details = $client->booking()->getBooking($recordLocator);
// Add passenger
$passenger = $client->bookingPassengers()->addPassenger($recordLocator, $passengerData);
// Add SSR (Special Service Request)
$ssr = $client->bookingPassengers()->addSSR($recordLocator, $ssrData);
// Update passenger information
$updated = $client->bookingPassengers()->updatePassenger($recordLocator, $passengerId, $updates);
// Add travel documents
$document = $client->bookingPassengers()->addTravelDocument($recordLocator, $passengerId, $documentData);
// Add payment
$payment = $client->payment()->addPaymentToBooking($recordLocator, $paymentData);
// Process refund
$refund = $client->payment()->processRefund($recordLocator, $refundData);
// Set up installments
$installment = $client->payment()->createInstallmentPlan($recordLocator, $planData);
// Get payment status
$status = $client->payment()->getPaymentStatus($recordLocator);
// Seat selection
$seat = $client->booking()->assignSeat($recordLocator, $seatData);
// Add baggage
$baggage = $client->booking()->addBaggage($recordLocator, $baggageData);
// Add meal
$meal = $client->booking()->addMeal($recordLocator, $mealData);
// Add insurance
$insurance = $client->booking()->addInsurance($recordLocator, $insuranceData);
use SantosDave\JamboJet\Exceptions\JamboJetApiException;
use SantosDave\JamboJet\Exceptions\JamboJetValidationException;
use SantosDave\JamboJet\Exceptions\JamboJetAuthenticationException;
try {
$booking = $client->booking()->createBooking($request);
} catch (JamboJetValidationException $e) {
// Handle validation errors (400)
echo "Validation Error: " . $e->getMessage();
$errors = $e->getValidationErrors();
} catch (JamboJetAuthenticationException $e) {
// Handle authentication errors (401)
echo "Authentication Error: " . $e->getMessage();
} catch (JamboJetApiException $e) {
// Handle general API errors
echo "API Error: " . $e->getMessage();
echo "Status Code: " . $e->getStatusCode();
}