1. Go to this page and download the library: Download xsolla/xsolla-sdk-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/ */
xsolla / xsolla-sdk-php example snippets
use Xsolla\SDK\Webhook\WebhookServer;
use Xsolla\SDK\Webhook\Message\Message;
use Xsolla\SDK\Webhook\Message\NotificationTypeDictionary;
use Xsolla\SDK\Exception\Webhook\XsollaWebhookException;
$callback = function (Message $message) {
switch ($message->getNotificationType()) {
case NotificationTypeDictionary::USER_VALIDATION:
/** @var Xsolla\SDK\Webhook\Message\UserValidationMessage $message */
// TODO if user not found, you should throw Xsolla\SDK\Exception\Webhook\InvalidUserException
break;
case NotificationTypeDictionary::PAYMENT:
/** @var Xsolla\SDK\Webhook\Message\PaymentMessage $message */
// TODO if the payment delivery fails for some reason, you should throw Xsolla\SDK\Exception\Webhook\XsollaWebhookException
break;
case NotificationTypeDictionary::REFUND:
/** @var Xsolla\SDK\Webhook\Message\RefundMessage $message */
// TODO if you cannot handle the refund, you should throw Xsolla\SDK\Exception\Webhook\XsollaWebhookException
break;
default:
throw new XsollaWebhookException('Notification type not implemented');
}
};
$webhookServer = WebhookServer::create($callback, PROJECT_KEY);
$webhookServer->start();
public function handleRequest()
{
$request = Request::createFromGlobals();
$message = Message::fromArray($request->toArray());
switch ($message->getNotificationType()) {
case NotificationTypeDictionary::USER_VALIDATION:
/**
* https://developers.xsolla.com/webhooks/operation/user-validation/
* @var Xsolla\SDK\Webhook\Message\UserValidationMessage $message
*/
if ($message->getUserId() !== 'our_user_id') {
return YourResponseClass(json_encode(['error' => ['code' => 'INVALID_USER', 'message' => 'Invalid user']]), 400);
}
break;
case NotificationTypeDictionary::PAYMENT:
/** @var Xsolla\SDK\Webhook\Message\PaymentMessage $message */
break;
case NotificationTypeDictionary::REFUND:
/** @var Xsolla\SDK\Webhook\Message\RefundMessage $message */
break;
default:
throw new \Exception('Notification type not implemented');
}
return YourResponseClass('', 200);
}
php
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.