SmartPay ni bir necha daqiqada REST API, webhook va to‘lov havolalari orqali saytga ulang.
Foydalanuvchi so‘rovlari (invoice yaratishdan tashqari) quyidagi sarlavhani talab qiladi:
X-Api-Key: spk_sizning_api_kalitingiz
API kalitini Boshqaruv paneli → Sozlamalar bo‘limida toping.
Invoice yaratib, to‘lov sahifasiga havolani qaytaradi.
| Parametr | Turi | Majburiy | Tavsif |
|---|---|---|---|
| merchant_id | string | ✔ | Sizning merchant UUID |
| amount | float | ✔ | To‘lov summasi |
| currency | string | ✔ | Valyuta kodi (UZS, USD, EUR...) |
| order_id | string | ✔ | Sizdagi noyob buyurtma ID |
| sign | string | ✔ | SHA256 imzo (pastda aytilganidek) |
| description | string | — | To‘lov tavsifi |
| success_url | string | — | Muvaffaqiyatli qaytish URL |
| fail_url | string | — | Rad etilganda qaytish URL |
| webhook_url | string | — | Webhook URL ni almashtirish |
| lang | string | — | To‘lov sahifasi tili (ru/uz/en) |
| string | — | Mijozning emaili (majburiy emas) | |
| user_data | string | — | Qo‘shimcha ma’lumot |
sign = SHA256(merchant_id:amount:currency:secret_key1:order_id)
// PHP example
$sign = hash('sha256',
$merchant_id.':'.$amount.':'.$currency.':'.$secret_key1.':'.$order_id
);
{
"type": "success",
"invoice_id": "SP3a7f...",
"url": "https://your-domain.com/pay/?id=SP3a7f...",
"amount": 50000,
"currency": "UZS",
"order_id": "ORD-123",
"expires_at": "2024-01-01 12:00:00"
}
X-Api-Key va invoice_id parametrlari talab qilinadi.
{
"type": "success",
"invoice_id": "SP3a7f...",
"order_id": "ORD-123",
"amount": 50000,
"currency": "UZS",
"status": "paid",
"paid_at": "2024-01-01 11:45:00"
}
Mumkin holatlar: pending, awaiting, checking, paid, rejected, expired.
GET /api/methods faollashtirilgan kassirlarni qaytaradi.
SmartPay to‘lov holati o‘zgarganda webhook URL ga POST yuboradi.
POST https://yoursite.com/webhook Content-Type: application/x-www-form-urlencoded invoice_id=SP3a7f...&order_id=ORD-123&amount=50000¤cy=UZS&status=paid&sign=SHA256...
sign = SHA256(tartiblangan qiymatlar + ":" + secret_key2).
$data = ['invoice_id'=>..., 'order_id'=>..., 'amount'=>..., 'currency'=>..., 'status'=>...];
ksort($data);
$sign = hash('sha256', implode(':', array_values($data)).':'.$secret_key2);