Библиотеки SDK
SDK PHP
Установите официальную SDK из MakePay для PHP для webhooks по ссылкам оплаты, настройки и проверки.
SDK PHP MakePay
Обзор
SDK MakePay — это облегченная библиотека Composer для интеграции MakePay на стороне сервера. Он включает аутентификацию ключа API, операции с платежными ссылками, настройку MakePay и проверку подписанного webhooks.
Публичный репозиторий:
https://github.com/makecryptoio/makepay-php-sdk
Средство
Установите с помощью Composer из общедоступного репозитория Git:
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/makecryptoio/makepay-php-sdk"
}
],
"require": {
"makepay/makepay-php": "^0.1"
}
}
Затем запустите:
composer update makepay/makepay-php
Аутентификация
Создайте ключ API на основе MakePay из области разработчика merchant в MakeCrypto и храните секрет только в переменных среды на стороне сервера.
use MakePay\Client;
$makepay = new Client([
'keyId' => getenv('MAKEPAY_KEY_ID'),
'keySecret' => getenv('MAKEPAY_KEY_SECRET'),
// Optional: override only when MakePay gives you a custom checkout origin.
'checkoutBaseUrl' => 'https://makepay.io',
]);
SDK отправляет заголовки X-MakeCrypto-Key-Id и X-MakeCrypto-Key-Secret в API partner из MakePay.
Создать ссылку для оплаты
$response = $makepay->createPaymentLink([
'title' => 'Order #1042',
'description' => 'Checkout for order #1042',
'amount' => '129.99',
'currency' => 'USDT',
'orderId' => 'order_1042',
'customerEmail' => 'buyer@example.com',
'returnUrl' => 'https://merchant.example/orders/1042',
'successUrl' => 'https://merchant.example/orders/1042/success',
'failureUrl' => 'https://merchant.example/orders/1042/pay',
'expirationTime' => '12h',
]);
header('Location: ' . $response['paymentLink']['publicUrl']);
Отправьте sendPaymentRequestEmail, если вы хотите, чтобы MakePay отправил электронное письмо клиенту в рамках создания:
$makepay->createPaymentLink($payload, [
'sendPaymentRequestEmail' => true,
]);
Встроенная касса
Серверные части PHP могут генерировать размещенные ссылки, встроенные URL-адреса iframe и фрагменты HTML после создания платной ссылки.
$paymentUid = $response['paymentLink']['uid'];
$hostedUrl = $makepay->hostedCheckoutUrl($paymentUid);
$embedUrl = $makepay->embeddedCheckoutUrl($paymentUid, [
'parentOrigin' => 'https://merchant.example',
]);
echo $makepay->embedButtonHtml($paymentUid, [
'buttonLabel' => 'Pay with crypto',
]);
echo $makepay->iframeHtml($paymentUid, [
'iframeTitle' => 'Secure MakePay checkout',
]);
Используйте размещенную резервную ссылку рядом с каждым iframe, чтобы покупатели могли продолжить работу, если браузер, CMS или тема магазина блокируют встроенные страницы оформления заказа.
Читать и обновлять ссылки
$links = $makepay->listPaymentLinks();
$detail = $makepay->getPaymentLink('PAYMENT_LINK_UID');
$makepay->updatePaymentLink('PAYMENT_LINK_UID', [
'status' => 'paused',
]);
$makepay->sendPaymentRequestEmail(
'PAYMENT_LINK_UID',
'buyer@example.com'
);
Конфигурация
$settings = $makepay->getSettings();
$makepay->updateSettings([
'callbackUrl' => 'https://merchant.example/webhooks/makepay',
]);
Проверка webhooks
MakePay подписывает точное необработанное тело запроса. Прочтите php://input перед анализом JSON.
use MakePay\Webhook;
$rawBody = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_MAKEPAY_SIGNATURE'] ?? null;
$event = Webhook::parse(
$rawBody,
$signature,
getenv('MAKEPAY_WEBHOOK_SECRET')
);
if (($event['event']['type'] ?? '') === 'status_changed') {
// Update the local order.
}
http_response_code(200);
echo 'ok';
Обработка ошибок
Ошибки API выдают MakePay\MakePayException. Исключение включает код состояния HTTP и декодированное тело ответа.
use MakePay\MakePayException;
try {
$makepay->getPaymentLink('PAYMENT_LINK_UID');
} catch (MakePayException $error) {
error_log($error->getMessage());
error_log((string) $error->getStatusCode());
}
Структура кода
Канонический исходный код монорепозитория находится в apps/plugins/php-sdk. Публичный репозиторий отражает только файлы SDK, поэтому разработчики могут установить или проверить его без полного рабочего пространства MakeCrypto.