SDK Client - main class
Entry point for the SDK exposing functions to interact with the NextEvent API.
getEvents()
List eventsgetWidget($hash)->generateEmbedCode($eventId)
Embed widget for specific eventgetBasket($orderId)
checkout the basketauthorizeOrder($orderId)
start payment processsettlePayment($payment, $customer, $transactionId)
settle paymentgetTicketDocuments($orderId)
get TicketDocuments with download urlsrebookOrder()
create rebooking basketgetWidget($hash)->generateEmbedCode(['basket' => $basket])
Embed widget with rebooking basket.requestCancellation()
request cancellation authorization for a given ordersettleCancellation()
settle cancellation with the authorization datagetAccessCodes($query)
get a collection of AccessCodesgetGate($gateId)
get a GategetGates($query)
get a collection GatesgetDevice($deviceId)
get a DevicegetDevices($query)
get a collection of DevicesgetScanLogs($query)
get a collection of ScanLogsgetBaseCategories($query)
get a collection of BaseCategoriesgetCategories($query)
get a collection of CategoriesgetBasePrices($query)
get a collection of BasePricesgetPrices($query)
get a collection of PricescreateEvent($event)
create a new EventcreateBaseCategory($categories)
create new BaseCategories and CategoriescreateBasePrice($prices)
create new BasePrices and PricesupdateBaseCategory($categories)
update BaseCategories and its CategoriesupdateBasePrice($prices)
update BasePrices and its PricesThrown when the requested access codes could not be found
Thrown when a request to the NextEvent API failed with an error response. The exception provides extensive information about the request sent, the response received and the reasons which it didn't succeed.
Use the toLogContext() or dumpAsString() methods for logging.
Generic Exception encapsulating an API error response
Thrown when a request to the NextEvent API failed with an error response. The exception provides extensive information about the request sent, the response received and the reasons which it didn't succeed.
Use the toLogContext() or dumpAsString() methods for logging.
Thrown when a basket could not be found or is expired
Thrown when a request to the NextEvent API failed with an error response. The exception provides extensive information about the request sent, the response received and the reasons which it didn't succeed.
Use the toLogContext() or dumpAsString() methods for logging.
Thrown when the requested device could not be found
Thrown when a request to the NextEvent API failed with an error response. The exception provides extensive information about the request sent, the response received and the reasons which it didn't succeed.
Use the toLogContext() or dumpAsString() methods for logging.
Thrown when the requested entity could not be found on the backend
Thrown when a request to the NextEvent API failed with an error response. The exception provides extensive information about the request sent, the response received and the reasons which it didn't succeed.
Use the toLogContext() or dumpAsString() methods for logging.
Thrown when the requested gate could not be found
Thrown when a request to the NextEvent API failed with an error response. The exception provides extensive information about the request sent, the response received and the reasons which it didn't succeed.
Use the toLogContext() or dumpAsString() methods for logging.
Thrown by a base price model when assigning the wrong base category.
Thrown when a given object doesn't implement the NextEvent\PHPSDK\Store\StoreInterface
SDK Client is not authorized for this API request
Thrown when a request to the NextEvent API failed with an error response. The exception provides extensive information about the request sent, the response received and the reasons which it didn't succeed.
Use the toLogContext() or dumpAsString() methods for logging.
Thrown when the requested order/basket item couldn't be found or if the basket expired
Thrown when a request to the NextEvent API failed with an error response. The exception provides extensive information about the request sent, the response received and the reasons which it didn't succeed.
Use the toLogContext() or dumpAsString() methods for logging.
Thrown when the requested order could not be found or basket is expired
Thrown when a request to the NextEvent API failed with an error response. The exception provides extensive information about the request sent, the response received and the reasons which it didn't succeed.
Use the toLogContext() or dumpAsString() methods for logging.
Thrown when referred payment authorization can't be found or is expired
Thrown when a request to the NextEvent API failed with an error response. The exception provides extensive information about the request sent, the response received and the reasons which it didn't succeed.
Use the toLogContext() or dumpAsString() methods for logging.
Thrown when the requested scan logs could not be found
Thrown when a request to the NextEvent API failed with an error response. The exception provides extensive information about the request sent, the response received and the reasons which it didn't succeed.
Use the toLogContext() or dumpAsString() methods for logging.
A class which implements the Spawnable interface can be used to define whether a Model can be created, without having specific properties set, such as a unique identifier.
Access code model
An access code is used in the entrance check process.
Each access code owns a (bar)code, a category id and a state.
A Gate is responsible for invalidating,
i.e. modifying the entry_state
, of such an access code.
The access code collection holds access code instances.
An instance of this collection can update the entry state of all access codes inside of it with one single API request.
Class APIResponse
A wrapper class for responses returned by GuzzleHttp. Adds utility functions used by the SDK
BaseCategory model
Provides the structure for a base category record.
Base categories are categories which can not be booked and are never linked to an order item. Base categories are internally used to create category records. All values which are set for a base category will automatically be applied to the related category records.
BasePrice model
Provides the structure for a base price record.
A base price is a price which applies it's data to actual price records. A base price is never linked to a category record. It rather links to a BaseCategory. Just like a base category, a base price is never linked to an order item.
BasketItem model
Model class representing a single item (ticket) of a NextEvent basket
Cancellation request model
Represents a cancellation request for a given order. Can be used to confirm cancellation in a second step.
A collection holds instances of models by converting them from raw data.
It has meta information about the total amount of items, pages and references to other pages. Further more it allows to iterate over all total items, by simply fetching the next page if the bounds of the current page have been reached.
If you want to fetch the next page manually, you can call Collection::fetchNextPage(). This will fetch the next page, if it is available and apply the content to this collection.
In order to fetch a specific page and apply it to the collection, you can fetch it with the rest client
and then apply it via Collection::setData(). Whether you want to reset the current data or not
can be controlled with the flag reset
.
Class DateTime
Extend the default DateTime class with a flag indicating that it only represent a date and the time should be ignored.
Device model
A device entity represents a real world device. It holds information such as the device UUID, platform(os) and it's version and the device name. A device can also tell on which gate it is logged in and when it has been logged in the last time.
Discount code model
Struct for a discount code record assigned to an order/basket item or a DiscountGroup relation.
Event model
Model class for an event record registered in NextEvent. Provides simplified access to event title, details, start/end dates, etc.
Gate model
A gate represents an entity which is responsible for invalidating access codes. It can only invalidate those access codes whose category id matches one of the gate's category ids.
GeoCoordinates model
Struct for a pair of geographic coordinates as defined in the World Geodetic System (WGS 84).
Class HALResponse
A wrapper class for Responses returned by GuzzleHttp. The Responses are parsed as HAL+JSON and made accessible by this class.
Base class for model classes
Data structures retrieved from the NextEvent API are wrapped into dependants of this class in order to provide a well-defined struct for accessing these informations.
With the Serializable interface implemented, all models can easily be serialized and stored in session data.
A mutable model is a model whose source attributes can be changed.
An instance of a mutable model provides setters for any property.
This means you can call e.g. $model->setFoo($val)
which will will store the value at the index foo
in the internal source array.
You can also override the whole source at once with the MutableModel::setSource().
OrderDocument model
Represents a printable PDF document attached to an order
Payment model
Represents a payment authorization record issued by the API. Can be used to process payment and finally settle orders.
ScanLog model
A scan log holds entry information of an access code. Those information contain process time, gate which scanned the code and which device has done it. Furthermore it holds connection state information and the validation message. This model can be used to analyze the entrance checks.
TicketDocument model
Represents a printable PDF document attached to a ticket
A webhook message comes from the platform the app runs on and contains data, which can be used for various processes.
The instance of this class should be used, to verify content of the incoming message to make your platform more secure. In order to verify the incoming message, you have to know the secret, you configured on the webhook in the NextEvent App.
Example:
try {
$gate = WebhookMessage::current()->verify()->getModel(Gate::class);
// Do something...
}
catch (WebhookMessageException $exception) {
// Handle this
}
Class Env
Helper for handling changing variables in different environments
Known environment variables:
string iam_service_url
the Url to the IAM Servicestring payment_service_url
the Url to the Payment Servicestring locale
language code, use only 2 letters like 'en'A filter holds information for filtering data via the API.
Example:
$filter = new Filter('created', '2018-10-23', '>=');
If you want to filter for NULL
values, you can pass the string 'NULL'
as value.
A query represents a set of query parameters for a GET request
You should use it to pass query and filter parameters to the Client's get* methods.
For example:
$myQuery = new Query();
$myQuery->set('foo', 'bar');
$myQuery->setPageSize(10);
$myQuery->addFilter(new Filter('field', 'value'));
Booking widget embedding utility
For integrating the booking process into a partner platform, a widget is available. Widgets are referenced by Widget-Hash.
You need to embed the Widget /assets/js/widgetapi.js
into your
hostpage and use the NextEventWidgetAPI
to interact with the widget.
<?php
use NextEvent\PHPSDK\Client;
$appUrl = 'https://myapp.nextevent.com';
$credentials = [...];
$widgetHash = 's67fa757df4a76s5';
$client = new Client($appUrl, $credentials, $widgetHash);
// get Widget
$widget = $client->getWidget();
// embed Widget
echo $widget->generateEmbedCode($event_id);
The NextEventWidgetAPI
is a JavaSrcipt script, which you can use to
register Message Handlers. Therefore the script has to be included into the
hostpage.
Use NextEventWidgetAPI
for retrieving the order_id
and send
it to your server.
Use NextEventWidgetAPI
to show your own payment step on
current_step
message
<script src="/assets/js/widgetapi.js"></script>
When the script is included the NextEventWidgetAPI is available by window
.NextEventWidgetAPI
function custom_handler(data) {
// do something with the data
}
// handler can be added
window.NextEventWidgetAPI.addMessageHandler('current_step', custom_handler);
// and removed
window.NextEventWidgetAPI.removeMessageHandler('current_step', custom_handler);
This message is send on changing routes.
step
current step a path
example data:
{
step: '/event/42'
}
{
step: '/payment'
}
{
step: '/checkout'
}
This message is send when the basket is updated
order_id
id from current basket
example data:
{
order_id: 5005
}
StoreInterface for implementing a key-value store
Provide own Cache for performance improvements. For example saving Session between multiple calls
// cache adapter
<?php
use NextEvent\PHPSDK\Store\StoreInterface;
class MyCache implements StoreInterface
{
public function set($key, $value)
{
// your implementation
}
public function get($key)
{
// your implementation
}
public function clear()
{
// your implementation
}
}
?>
// initialize
<?php
$my_cache = new MyCache();
// on initialize
$ne_client = new \NextEvent\PHPSDK\Client($appUrl, $credentials, $widgetHash,
$my_cache);
// or
$ne_client->setCache($my_cache);
?>
Client for the IAM service API
// Get AccessToken by IAM
<?php
use NextEvent\PHPSDK\Client;
use NextEvent\PHPSDK\Auth\IAMClient;
$credentials = ['user', 'password', 'scope']; // Your Credentials
$client = new Client($appUrl, $credentials, $widgetHash);
// stand alone
$iam_client = new IAMClient($credentials, $cache);
$token = $iam_client->getToken();
With the Token you can authorize requests to the NextEvent application by
setting the Authorization
Header.
$http->get(
$url,
['headers' => [
'Authorization' => $token->getAuthorizationHeader()
]]);