initpay / ck
Official PHP SDK for InitPay-ck: Plug. Pay. Done.
dev-main
2025-05-21 03:22 UTC
Requires
- php: >=7.4
This package is auto-updated.
Last update: 2025-05-21 03:24:38 UTC
README
Plug. Pay. Done.
Librería oficial para integrar pagos seguros con Binance Pay mediante InitPay-ck como intermediario.
🧩 Características
- 📦 Crear sesiones de pago seguras
- 🔐 Soporte para Webhooks con firma HMAC
- 💡 Generación automática de
webhook_secret
- ✅ Solo se expone
checkout_url
para máxima seguridad
⚙️ Instalación
composer require initpay/ck
🔄 Flujo básico de pago
- Crea una sesión de pago usando tus claves de Binance y tu API Key de InitPay.
- Redirige al usuario a la URL de pago (
checkout_url
). - Cuando el pago se confirme, InitPay-ck enviará una petición POST a tu
webhook_url
firmado con tuwebhook_secret
.
🚀 Crear pago
use InitPayCK\InitPay; $initpay = new InitPay( 'AldazDev', // API Key InitPay 'BINANCE_KEY', // Binance API Key 'BINANCE_SECRET' // Binance Secret ); $checkoutUrl = $initpay->createPayment([ 'amount' => 9.99, 'note' => 'ORDER-XYZ789', 'redirect_url' => 'https://yourdomain.com/thanks', 'brand' => 'Mi Marca', 'customer_name' => 'Jane Doe', 'description' => 'Membresía mensual', 'image_url' => 'https://yourdomain.com/logo.png', 'webhook_url' => 'https://yourdomain.com/webhook/initpay', // Opcional pero recomendado // 'webhook_secret' => 'whsec_tu_clave' // Opcional; si no lo defines, se genera automáticamente ]); header('Location: ' . $checkoutUrl);
📤 Respuesta esperada de la API
La respuesta de la API /api/create_payment
será un JSON con la URL del checkout:
{ "checkout_url": "https://pay.bysel.us/checkout.php?id=ck_abc123xyz" }
Esta es la única información expuesta por seguridad. Los secretos y claves permanecen protegidos.
📩 Webhook de confirmación
Cuando se confirma el pago, InitPay-ck enviará un POST a tu webhook_url
con la siguiente estructura:
Headers:
Content-Type: application/json X-InitPay-Signature: sha256-HMAC
Body (ejemplo):
{ "status": "PAID", "reference": "ORDER-XYZ789", "amount": "9.99", "currency": "USDT", "paid_at": "2025-05-20T22:16:05Z", "customer": "Jane Doe", "brand": "Mi Marca" }
✅ Validación del Webhook
$headers = getallheaders(); $rawBody = file_get_contents('php://input'); if (InitPay::isValidWebhook($headers, $rawBody, 'whsec_xxxxxx')) { $data = json_decode($rawBody, true); // procesar pago exitoso }
🛡️ Seguridad
- El
webhook_secret
puede ser definido por ti o generado automáticamente. - Solo se devuelve el
checkout_url
, evitando filtrar claves o secretos.
📄 Licencia
MIT – desarrollado con 💡 por AldazDev