> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oneclickdz.com/llms.txt
> Use this file to discover all available pages before exploring further.

# نظرة عامة على تكامل Navio

> دليل شامل لدمج نظام OneClick للدفع في تطبيقك

<div dir="rtl">
  ## مرحباً بك في Navio

  يُمكّنك OneClick Payment (Navio) من قبول المدفوعات الإلكترونية الآمنة في الجزائر بأقل جهد للتكامل. أنشئ روابط دفع، تتبع المعاملات، وأدر أموالك - كل ذلك عبر API بسيطة.

  <CardGroup cols={2}>
    <Card title="إعداد سريع" icon="rocket" color="#0D9373">
      ابدأ في دقائق مع API سهل الاستخدام
    </Card>

    <Card title="مدفوعات آمنة" icon="shield-check" color="#0D9373">
      أمان بمستوى البنوك مدعوم من SATIM
    </Card>

    <Card title="تتبع فوري" icon="chart-line" color="#0D9373">
      راقب حالة الدفع في الوقت الفعلي
    </Card>

    <Card title="رسوم مرنة" icon="money-bill-wave" color="#0D9373">
      اختر من يدفع رسوم المعاملة
    </Card>
  </CardGroup>

  ## ما ستبنيه

  باتباع هذا الدليل، ستُنفّذ سير عمل دفع كامل:

  1. **العميل ينشئ طلباً** في تطبيقك
  2. **نظامك يولّد رابط دفع** عبر API Navio
  3. **العميل يُكمل الدفع** على صفحة الدفع الآمنة
  4. **نظامك يتتبع حالة الدفع** ويُنفّذ الطلب

  ## المتطلبات المسبقة

  <Steps>
    <Step title="حساب OneClick">
      أنشئ حساباً على [app.oneclickdz.com](https://enterprise.oneclickdz.com/)
    </Step>

    <Step title="التحقق من هوية التاجر">
      أكمل التحقق على [Navio Merchant
      Info](https://enterprise.oneclickdz.com/profile)

      <Warning>
        هذه الخطوة **إلزامية** قبل إنشاء روابط الدفع
      </Warning>
    </Step>

    <Step title="مفتاح API">
      احصل على مفتاح API من لوحة التحكم (استخدم مفتاح Sandbox للاختبار)
    </Step>

    <Step title="المتطلبات التقنية">
      * خادم backend لمعالجة استدعاءات API - قاعدة بيانات لتخزين الطلبات ومراجع الدفع - فهم أساسي لـ REST APIs
    </Step>
  </Steps>

  ## كيف يعمل النظام

  1. العميل يضع طلباً → تحفظه بحالة `PENDING`
  2. تستدعي `/v3/ocpay/createLink` → تحصل على `paymentUrl` و`paymentRef`
  3. **احفظ `paymentRef` مع طلبك** (مهم!)
  4. وجّه العميل إلى `paymentUrl`
  5. العميل يدفع → يعود إلى موقعك
  6. تتحقق من الحالة عبر `/v3/ocpay/checkPayment/:ref`
  7. تُحدّث الطلب وتُنفّذه إذا كانت الحالة `CONFIRMED`

  ## المفاهيم الأساسية

  <AccordionGroup>
    <Accordion title="مرجع الدفع (paymentRef)" icon="hashtag">
      معرّف فريد لكل دفعة (الصيغة: `OCPL-XXXXXX-YYYY`). احفظه مع طلبك للتحقق من الحالة لاحقاً.
    </Accordion>

    <Accordion title="انتهاء صلاحية رابط الدفع" icon="clock">
      تنتهي صلاحية الروابط بعد 20 دقيقة. أنشئ رابطاً جديداً إذا احتاج العميل إلى إعادة المحاولة.
    </Accordion>

    <Accordion title="التحقق من الحالة" icon="rotate">
      تحقق من حالة الدفع عند عودة العميل إلى موقعك أو عند تشغيل مهمة cron كل 20 دقيقة.
    </Accordion>
  </AccordionGroup>

  ## هيكل الرسوم

  <Info>
    **رسوم منخفضة:** 0% عند الاحتفاظ بالرصيد في OneClick، فقط 1% عند السحب
  </Info>

  يمكنك اختيار من يدفع رسوم السحب:

  | وضع الرسوم     | الوصف                    | حالة الاستخدام    |
  | -------------- | ------------------------ | ----------------- |
  | `NO_FEE`       | التاجر يتحمل جميع الرسوم | أفضل تجربة للعميل |
  | `SPLIT_FEE`    | تقسيم 50/50              | مسؤولية مشتركة    |
  | `CUSTOMER_FEE` | العميل يدفع جميع الرسوم  | تعظيم أرباحك      |

  ## خطوات التكامل

  اتبع هذه الأدلة بالترتيب:

  <CardGroup cols={2}>
    <Card title="1. إعداد التاجر" icon="user-check" href="/ar/ocpay-guides/1-merchant-setup">
      أكمل التحقق من هوية التاجر واحصل على مفتاح API
    </Card>

    <Card title="2. سير الدفع" icon="diagram-project" href="/ar/ocpay-guides/2-payment-flow">
      نفّذ تكامل الدفع الكامل
    </Card>

    <Card title="3. تتبع الحالة" icon="clock-rotate-left" href="/ar/ocpay-guides/3-status-polling">
      تتبع المدفوعات وحدّث حالة الطلبات
    </Card>

    <Card title="4. أفضل الممارسات" icon="star" href="/ar/ocpay-guides/4-best-practices">
      نصائح للإنتاج ومعالجة الأخطاء
    </Card>
  </CardGroup>

  ## بداية سريعة

  <CodeGroup>
    ```javascript Node.js theme={null}
    const fetch = require("node-fetch");

    // Create payment link
    async function createPayment(orderId, amount, title) {
      const response = await fetch(
        "https://api.oneclickdz.com/v3/ocpay/createLink",
        {
          method: "POST",
          headers: {
            "Content-Type": "application/json",
            "X-Access-Token": process.env.ONECLICK_API_KEY,
          },
          body: JSON.stringify({
            productInfo: { title, amount },
            redirectUrl: `https://yoursite.com/orders/${orderId}`,
          }),
        }
      );

      const data = await response.json();

      // Save paymentRef with your order!
      await db.orders.update(orderId, {
        paymentRef: data.data.paymentRef,
      });

      return data.data.paymentUrl; // Redirect customer here
    }

    // Check payment status
    async function checkPayment(paymentRef) {
      const response = await fetch(
        `https://api.oneclickdz.com/v3/ocpay/checkPayment/${paymentRef}`,
        { headers: { "X-Access-Token": process.env.ONECLICK_API_KEY } }
      );

      const data = await response.json();
      return data.data.status; // PENDING, CONFIRMED, or FAILED
    }
    ```

    ```python Python theme={null}
    import requests
    import os

    # Create payment link
    def create_payment(order_id, amount, title):
        response = requests.post(
            'https://api.oneclickdz.com/v3/ocpay/createLink',
            headers={
                'Content-Type': 'application/json',
                'X-Access-Token': os.getenv('ONECLICK_API_KEY')
            },
            json={
                'productInfo': {'title': title, 'amount': amount},
                'redirectUrl': f'https://yoursite.com/orders/{order_id}'
            }
        )

        data = response.json()

        # Save paymentRef with your order!
        db.orders.update(order_id, {
            'paymentRef': data['data']['paymentRef']
        })

        return data['data']['paymentUrl']  # Redirect customer here

    # Check payment status
    def check_payment(payment_ref):
        response = requests.get(
            f'https://api.oneclickdz.com/v3/ocpay/checkPayment/{payment_ref}',
            headers={'X-Access-Token': os.getenv('ONECLICK_API_KEY')}
        )

        data = response.json()
        return data['data']['status']  # PENDING, CONFIRMED, or FAILED
    ```

    ```php PHP theme={null}
    <?php

    // Create payment link
    function createPayment($orderId, $amount, $title) {
        $ch = curl_init('https://api.oneclickdz.com/v3/ocpay/createLink');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, [
            'Content-Type: application/json',
            'X-Access-Token: ' . getenv('ONECLICK_API_KEY')
        ]);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
            'productInfo' => ['title' => $title, 'amount' => $amount],
            'redirectUrl' => "https://yoursite.com/orders/$orderId"
        ]));

        $response = curl_exec($ch);
        $data = json_decode($response, true);

        // Save paymentRef with your order!
        $db->orders->update($orderId, [
            'paymentRef' => $data['data']['paymentRef']
        ]);

        return $data['data']['paymentUrl']; // Redirect customer here
    }

    // Check payment status
    function checkPayment($paymentRef) {
        $ch = curl_init("https://api.oneclickdz.com/v3/ocpay/checkPayment/$paymentRef");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, [
            'X-Access-Token: ' . getenv('ONECLICK_API_KEY')
        ]);

        $response = curl_exec($ch);
        $data = json_decode($response, true);

        return $data['data']['status']; // PENDING, CONFIRMED, or FAILED
    }
    ?>
    ```
  </CodeGroup>

  ## الدعم والموارد

  <CardGroup cols={2}>
    <Card title="مرجع API" icon="book" href="/ar/api-reference/ocpay/create-link">
      توثيق API تفصيلي
    </Card>

    <Card title="التواصل مع الدعم" icon="headset" href="/ar/contact">
      احصل على مساعدة فريقنا
    </Card>

    <Card title="لوحة التحكم" icon="gauge" href="https://enterprise.oneclickdz.com/">
      أدر حسابك
    </Card>

    <Card title="دليل الأمان" icon="lock" href="/ar/security-best-practices">
      حافظ على أمان تكاملك
    </Card>
  </CardGroup>

  ## التالي: إعداد التاجر

  هل أنت مستعد للبدء؟ ابدأ بالتحقق من هوية التاجر:

  <Card title="بدء التكامل" icon="arrow-right" href="/ar/ocpay-guides/1-merchant-setup">
    أكمل إعداد التاجر والتحقق من هويته
  </Card>
</div>
