تقسيم تكاليف الركوب المشترك بين الركاب
يسهل استمرار التنقل المشترك عندما يفهم جميع المشاركين طريقة توزيع التكلفة. تستقبل هذه الحاسبة إجمالي مصروف الرحلة، مثل الوقود ورسوم الطرق ومواقف السيارات، ثم توزعه على راكب واحد أو أكثر.
شغّل الأداة مجانًا
اختاروا القسمة المتساوية إذا كان الجميع يقطعون المسار نفسه، أو أدخلوا مسافة لكل راكب عندما ينزل بعضهم قبل الآخرين. تعرض النتيجة مبلغاً واضحاً لكل شخص، من دون جداول بيانات أو حسابات مرتجلة.
ابدؤوا بالتكلفة الكاملة للتنقل
اجمعوا جميع المصروفات التي اتفقت المجموعة على تقاسمها قبل إدخال الإجمالي. تشمل هذه المصروفات عادةً الوقود المستخدم في التنقل، ورسوم الطرق أو الجسور، ورسوم موقف السيارات في الوجهة. استخدموا العملة نفسها لكل المبالغ واعتمدوا القيمة المدفوعة فعلياً، ولا تخلطوا تقديراً للوقود مع مجموع الإيصالات إلا إذا وافق الجميع على هذا الأسلوب. تتعامل الحاسبة مع الرقم باعتباره وعاء تكلفة واحداً؛ لذلك لا تقرر أي المصروفات مؤهلة للتقاسم ولا تطبق قواعد مختلفة على الوقود والمواقف. أدخلوا في عدد الركاب كل الأشخاص المسؤولين عن هذا المبلغ. أدرجوا السائق إذا كان يدفع حصة، ولا تستبعدوه إلا إذا اتفقت المجموعة صراحةً على أن الركاب الآخرين سيتحملون الإجمالي كاملاً. العدد الأقل من واحد غير صالح، إذ لا يوجد حينها شخص يمكن توزيع المصروف عليه. وفي التنقل المنتظم، يؤدي اعتماد قواعد الإدراج نفسها يومياً أو أسبوعياً إلى سجلات واضحة يمكن مقارنتها وفهمها بسهولة.
اختاروا القسمة المتساوية أو الترجيح بالمسافة
اتركوا المسافات من دون إدخال عندما ينبغي أن يدفع الجميع المبلغ نفسه. تقسم الحاسبة التكلفة الإجمالية على عدد الركاب، ثم تعيد الحصة الموحدة وقائمة مرتبة بمبالغ الأشخاص. استخدموا الترجيح بالمسافة عندما تختلف نقاط الصعود أو النزول وترى المجموعة أن المسافة داخل السيارة أساس عادل للدفع. قدموا مسافة موجبة واحدة بالضبط لكل راكب وبالترتيب نفسه المستخدم للتعريف بهم. تصلح الكيلومترات والأميال لأن النسب وحدها هي المهمة، لكن يجب أن تستخدم جميع القيم الوحدة ذاتها. يساوي وزن كل راكب مسافته مقسومة على مجموع مسافات الجميع، وتساوي حصته ذلك الوزن مضروباً في إجمالي تكلفة التنقل. وبذلك يدفع من يقطع المسار كاملاً أكثر ممن ينزل في منتصفه. لا يحاكي هذا الأسلوب مقاطع الطريق المنفصلة أو انتقال السيارة فارغة أو ملكية المركبة أو الخصومات الخاصة؛ لذا ينبغي تمثيل هذه الاتفاقات في المدخلات أو تسويتها خارج الحساب.
اقرؤوا النتيجة وقرّبوها وسوّوا المبالغ
توضح النتيجة ما إذا كان الحساب متساوياً أم مرجحاً بالمسافة، وتسرد الركاب حسب ترتيب الإدخال نفسه. وعند استخدام الترجيح، يتضمن كل صف مسافة الراكب ووزنه النسبي والمبلغ المحسوب له. تُضبط القيم على دقة عشرية ثابتة كي ينتج الإدخال نفسه دائماً JSON مطابقاً، سواء في المتصفح أو ضمن إجراء آلي. قد يؤدي تقريب مبالغ الأفراد، بحسب العملة وعدد الركاب، إلى فرق ضئيل عن الإجمالي الأصلي. وإذا كان الدفع يجب أن يتم بوحدات العملة الصغرى الصحيحة، فاتفقوا على قاعدة بسيطة للتسوية، مثل إسناد الفرق الأخير إلى السائق أو التناوب عليه بين الركاب. احتفظوا بالإجمالي الأصلي وترتيب الأشخاص والمسافات إلى جانب النتيجة حتى يستطيع أي شخص إعادة الحساب لاحقاً. يناسب المتصفح الحسابات العرضية، بينما تبلغ تكلفة API مقدار $0.002 لكل طلب، وهو ملائم لسجلات التنقل المتكررة وأدوات المصروفات وإجراءات التعويض الآلية التي تحتاج إلى صيغة شفافة وثابتة.
حالات الاستخدام
تقسيم تكلفة التنقل اليومي إلى المكتب
وزعوا الوقود ورسوم الطرق والمواقف بالتساوي بين الزملاء الذين يقطعون المسار كاملاً.
احتساب عادل لنقاط نزول مختلفة
رجحوا مساهمة كل راكب حسب المسافة عندما ينزل بعض الأشخاص قبل الآخرين.
أتمتة سجل تعويضات التنقل
أنشئوا مبالغ متسقة لكل راكب من أجل سجل مصروفات متكرر أو إجراء دفع آلي.
الأسئلة الشائعة
ما المصروفات التي تدخل في total_cost؟
استخدموا المبلغ الكامل الذي اتفقت المجموعة على تقاسمه، وعادةً ما يشمل الوقود ورسوم الطرق والمواقف بعملة واحدة.
هل يُحسب السائق ضمن الركاب؟
أدرجوا السائق في rider_count عندما يدفع حصة. استبعدوه فقط إذا اتفقت المجموعة على أن الركاب الآخرين سيتحملون الإجمالي.
كيف يعمل الترجيح بالمسافة؟
تُقسم مسافة كل راكب على مجموع المسافات كلها، ثم تُضرب النسبة الناتجة في total_cost.
هل يمكن الجمع بين الأميال والكيلومترات؟
لا. تصلح كلتا الوحدتين، لكن يجب توحيد جميع المسافات في الطلب الواحد حتى تبقى النسب صحيحة.
لماذا قد تختلف المدفوعات المقربة قليلاً عن الإجمالي؟
تستخدم المدفوعات النقدية منازل عشرية أقل من الحساب النسبي. اتفقوا على من يتلقى أو يدفع أصغر وحدة متبقية.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/final3/commute-carpool-cost-split \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"total_cost":72,"rider_count":3}'const res = await fetch("https://api.kit.forhosting.com/final3/commute-carpool-cost-split", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"total_cost": 72,
"rider_count": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/final3/commute-carpool-cost-split",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"total_cost": 72,
"rider_count": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/final3/commute-carpool-cost-split", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"total_cost":72,"rider_count":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"total_cost":72,"rider_count":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/final3/commute-carpool-cost-split", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"total_cost": 72,
"rider_count": 3
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "final3.commute_carpool_cost_split",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |