Bibliotecas SDK
SDK PHP
Instala el SDK oficial de MakePay para PHP para enlaces de pago, configuración y verificación de webhooks.
SDK PHP de MakePay
Resumen
El SDK PHP de MakePay es una biblioteca ligera de Composer para integraciones server-side de MakePay. Envuelve autenticación con clave API, operaciones de enlaces de pago, configuración MakePay y verificación de webhooks firmados.
Repositorio público:
https://github.com/makecryptoio/makepay-php-sdk
Instalación
Instala con Composer desde el repositorio público de Git:
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/makecryptoio/makepay-php-sdk"
}
],
"require": {
"makepay/makepay-php": "^0.1"
}
}
Luego ejecuta:
composer update makepay/makepay-php
Autenticación
Crea una clave API de MakePay desde el área de desarrolladores del merchant en MakeCrypto y conserva el secreto solo en variables de entorno server-side.
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',
]);
El SDK envía las cabeceras X-MakeCrypto-Key-Id y X-MakeCrypto-Key-Secret a la API partner de MakePay.
Crear enlace de pago
$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']);
Envía sendPaymentRequestEmail cuando quieras que MakePay mande un email al cliente como parte de la creación:
$makepay->createPaymentLink($payload, [
'sendPaymentRequestEmail' => true,
]);
Checkout embebido
Los backends PHP pueden generar enlaces alojados, URLs de iframe embebido y snippets HTML después de crear un enlace de pago.
$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',
]);
Usa un enlace alojado como fallback junto a cada iframe para que los compradores puedan continuar si el navegador, CMS o tema de tienda bloquea páginas de pago embebidas.
Leer y actualizar enlaces
$links = $makepay->listPaymentLinks();
$detail = $makepay->getPaymentLink('PAYMENT_LINK_UID');
$makepay->updatePaymentLink('PAYMENT_LINK_UID', [
'status' => 'paused',
]);
$makepay->sendPaymentRequestEmail(
'PAYMENT_LINK_UID',
'buyer@example.com'
);
Configuración
$settings = $makepay->getSettings();
$makepay->updateSettings([
'callbackUrl' => 'https://merchant.example/webhooks/makepay',
]);
Verificación de webhooks
MakePay firma el cuerpo bruto exacto de la solicitud. Lee php://input antes de parsear 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';
Manejo de errores
Los errores de API lanzan MakePay\MakePayException. La excepción incluye el código de estado HTTP y el cuerpo de respuesta decodificado.
use MakePay\MakePayException;
try {
$makepay->getPaymentLink('PAYMENT_LINK_UID');
} catch (MakePayException $error) {
error_log($error->getMessage());
error_log((string) $error->getStatusCode());
}
Estructura del código
El código fuente canónico del monorepo vive en apps/plugins/php-sdk. El repositorio público refleja solo los archivos del SDK para que los desarrolladores puedan instalarlo o inspeccionarlo sin el workspace completo de MakeCrypto.