Telegram bot va web loyihalaringiz uchun Humo avtomatik to'lov tizimi.
🚀 BoshlashPayHamyon API bilan ishlashni boshlash uchun quyidagi amallarni bajaring.
Telegram botda 📁 Loyiham bo'limiga o'ting va yangi loyiha yarating.
Loyiha sozlamalarida 🔗 Telegramni ulash tugmasini bosing.
Loyiha ma'lumotlari sahifasida Project ID va Project KEY ni ko'ring.
/payment/create API orqali birinchi to'lovni yarating va sinab ko'ring.
PayHamyon API — bu Telegram botlari va web loyihalar uchun mo'ljallangan avtomatik Humo to'lov tizimidir. Ushbu API orqali loyihangizga to'lov qabul qilish imkoniyatini qo'shishingiz, to'lovlar holatini kuzatishingiz va to'lovlarni bekor qilishingiz mumkin.
Har bir so'rovda ikkita parametr talab qilinadi — Project ID va Project KEY.
{
"project_id": 123,
"project_key": "abc123def456..."
}
Mavjud API endpointlari va ularning qisqa tavsifi.
| Metod | Endpoint | Tavsif |
|---|---|---|
| POST | /payment/create | Yangi to'lov yaratish |
| GET | /payment/status | To'lov holatini tekshirish |
| POST | /payment/cancel | To'lovni bekor qilish |
| GET | /project | Loyiha ma'lumotlarini olish |
Yangi to'lov yaratish uchun ushbu endpointdan foydalaning.
{
"project_id": 123,
"project_key": "abc123def456...",
"amount": 15000
}
{
"success": true,
"payment_id": 42,
"requested_amount": 15000,
"real_amount": 15123,
"card_number": "9860********3509",
"expires_at": "2026-07-05T14:30:00",
"status": "pending"
}
| Parametr | Turi | Tavsif |
|---|---|---|
| requested_amount | float | Siz so'ragan to'lov summasi (so'm) |
| real_amount | float | Haqiqiy to'lov summasi (requested_amount + random 1-200 so'm) |
| payment_id | int | Yaratilgan to'lovning unikal ID si |
| expires_at | string | To'lovning amal qilish muddati (ISO 8601) |
| status | string | To'lov holati (pending, paid, cancelled, expired) |
| card_number | string | To'lov qilish uchun karta raqami (maskirovka qilingan) |
To'lovning joriy holatini tekshirish uchun ushbu endpointdan foydalaning.
GET /payment/status?project_id=123&project_key=abc...&payment_id=42
{
"success": true,
"payment_id": 42,
"status": "pending"
}
To'lovni bekor qilish uchun ushbu endpointdan foydalaning. Faqat pending holatidagi to'lovlarni bekor qilish mumkin.
{
"project_id": 123,
"project_key": "abc123def456...",
"payment_id": 42
}
{
"success": true,
"status": "cancelled"
}
Loyiha ma'lumotlarini olish uchun ushbu endpointdan foydalaning.
GET /project?project_id=123&project_key=abc...
{
"success": true,
"project": {
"id": 123,
"name": "My Project",
"payment_type": "Humo",
"telegram_connected": true,
"card_number": "9860********3509"
}
}
So'rovda xatolik bo'lsa, quyidagi formatda javob qaytariladi:
{
"success": false,
"error": "Xatolik haqida ma'lumot"
}
| Xatolik | Tavsif |
|---|---|
| Invalid Project KEY | Project KEY noto'g'ri yoki mos kelmadi |
| Project not found | Bunday ID ga ega loyiha topilmadi |
| Payment not found | Bunday ID ga ega to'lov topilmadi |
| Payment expired | To'lov muddati tugagan (bekor qilib bo'lmaydi) |
| Payment already paid | To'lov allaqachon to'langan (bekor qilib bo'lmaydi) |
| Telegram not connected | Loyihaga Telegram profil ulanmagan |
| Amount too small | So'ralgan summa juda kichik (min: 1000 so'm) |
| Amount too large | So'ralgan summa juda katta (max: 10 000 000 so'm) |
Turli dasturlash tillarida PayHamyon API ga so'rov yuborish misollari.
<?php
$url = "http://your-server:8000/payment/create";
$data = [
"project_id" => 123,
"project_key" => "abc123def456...",
"amount" => 15000
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Content-Type: application/json"
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$result = json_decode($response, true);
echo "Payment ID: " . $result["payment_id"];
curl_close($ch);
import requests
url = "http://your-server:8000/payment/create"
payload = {
"project_id": 123,
"project_key": "abc123def456...",
"amount": 15000
}
resp = requests.post(url, json=payload)
data = resp.json()
if data["success"]:
print(f"Payment ID: {data['payment_id']}")
print(f"Real amount: {data['real_amount']} so'm")
print(f"Card: {data['card_number']}")
else:
print(f"Error: {data['error']}")
const url = "http://your-server:8000/payment/create";
const payload = {
project_id: 123,
project_key: "abc123def456...",
amount: 15000
};
const response = await fetch(url, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(payload)
});
const data = await response.json();
if (data.success) {
console.log("Payment ID:", data.payment_id);
console.log("Real amount:", data.real_amount);
console.log("Card:", data.card_number);
} else {
console.error("Error:", data.error);
}
Eng ko'p so'raladigan savollar va ularga javoblar.
Savollaringiz bo'lsa, biz bilan bog'lanishingiz mumkin.
Texnik yordam va savollar uchun Telegram orqali bog'lanishingiz mumkin.
✉️ Telegram orqali yozish