---
title: "أرسل أول طلب مدفوع عبر x402"
description: "أرسل طلبًا إلى x402.erpc.global، واقرأ السعر في استجابة 402، وادفعه باستخدام عميل x402، ثم احصل على نتيجة RPC مع إيصال التسوية."
canonical: "https://erpc.global/ar/doc/x402/quickstart/"
locale: "ar"
---

# أرسل أول طلب مدفوع عبر x402

يتتبّع هذا الدليل طلب Solana واحدًا عبر x402: قراءة السعر، ثم دفعه، ثم الحصول على الإجابة مع إيصال التسوية. وتعمل السلاسل الـ15 الأخرى بالطريقة نفسها، كلٌّ على مسارها.

تحتاج إلى محفظة فيها USDC على Solana، أو USDC أو EURC على Base، وإلى عميل x402: البرنامج الذي يقرأ استجابة 402، ويوقّع دفعة من محفظتك، ثم يعيد إرسال الطلب معها. لمعرفة المزيد عن عملاء x402، راجع وثائق x402 على [x402.org](https://x402.org/).

## 1. أرسل الطلب

أرسل طلب RPC دون دفعة:

```bash
curl -i https://x402.erpc.global/v1/solana-mainnet \
  --header 'Content-Type: application/json' \
  --data '{"jsonrpc":"2.0","id":1,"method":"getSlot"}'
```

الاستجابة هي 402 Payment Required. وتذكر ترويساتها الطريقة والسعر:

```http
HTTP/2 402
x-payment-required: eyJ4NDAyVmVyc2lvbiI6Mi…
x-rpc-methods: getSlot
x-rpc-weight: 1000
x-rpc-price-usd: 0.001
```

يسرد جسم الاستجابة خيارات الدفع في `accepts`، خيارًا لكل عملة مستقرة يمكن دفع ثمن الطلب بها. ويُعبَّر عن `amount` بأصغر وحدة للعملة المستقرة، لذا فإن القيمة 1000 تساوي 0.001 USDC، أو 0.001 EURC:

```json
{
  "error": { "code": "payment_required", "message": "Payment required", "request_id": "…" },
  "x402Version": 2,
  "accepts": [
    { "scheme": "exact", "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp", "amount": "1000", "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", … },
    { "scheme": "exact", "network": "eip155:8453", "amount": "1000", "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", … },
    { "scheme": "exact", "network": "eip155:8453", "amount": "1000", "asset": "0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42", … }
  ],
  "pricing": { "methods": ["getSlot"], …, "weight": 1000, "rawWeight": 42, …, "price": "$0.001", … },
  …
}
```

## 2. ادفع باستخدام عميل x402

سلّم استجابة 402 إلى عميل x402. يختار العميل خيارًا تستطيع محفظتك الدفع به، ويوقّع دفعة بذلك المبلغ، ثم يرمّزها لترويسة `X-Payment`. ولا تحتاج الدفعة إلى SOL أو ETH لرسوم الشبكة.

## 3. أعد إرسال الطلب مع الدفعة

أرسل جسم الطلب نفسه مرة أخرى، مع الدفعة في ترويسة `X-Payment`:

```bash
curl -i https://x402.erpc.global/v1/solana-mainnet \
  --header 'Content-Type: application/json' \
  --header 'X-Payment: <PAYMENT_PAYLOAD>' \
  --data '{"jsonrpc":"2.0","id":1,"method":"getSlot"}'
```

لا تغيّر جسم الطلب. فالسعر يُحسب من جسم الطلب، وإذا كان لجسم معدَّل سعر مختلف، فلن تطابقه الدفعة فيُرَدّ عليه بالخطأ `price_mismatch`.

بعد التحقق من الدفعة وتسويتها، تعود إجابة RPC مع إيصال التسوية في ترويسة `X-Payment-Response`:

```http
HTTP/2 200
x-payment-response: <RECEIPT>
```

```json
{ "jsonrpc": "2.0", "id": 1, "result": … }
```

كل دفعة موقّعة لا تغطي إلا طلبًا واحدًا. إذا أرسلت الدفعة نفسها مرة أخرى، فسيُرفض الطلب برمز 402 `payment_invalid` أو 409 `duplicate_payment`، ولن يُمرَّر الطلب مرة أخرى.

## الاستجابات

الطلب الذي يردّ عليه x402.erpc.global بخطأ قبل أن يطلب الدفع لا يكلّف شيئًا.

| الحالة | `error.code` | ما حدث |
| --- | --- | --- |
| 402 | `payment_required` | لم تُرسَل أي دفعة. يذكر جسم الاستجابة السعر وخيارات الدفع. |
| 402 | `payment_invalid` | لم تجتز الدفعة التحقق. وقّع دفعة جديدة وأعد إرسال الطلب. |
| 402 | `price_mismatch` | لا تطابق الدفعة أي خيار عرضته استجابة 402 لهذا الطلب، من حيث السعر مثلًا. |
| 402 | `payment_amount_too_low` | المبلغ أقل من أصغر دفعة يسوّيها x402.erpc.global. |
| 402 | `settlement_failed` | أُبلغ عن فشل التسوية. تعرض الاستجابة خيارات الدفع مرة أخرى. |
| 409 | `duplicate_payment` | سبق استخدام الدفعة. |
| 400 | `method_not_supported`، `invalid_request` | لا يبيع المسار هذه الطريقة، أو لا يقبل جسم الطلب. لا يُحتسب أي مبلغ. |
| 413 | `batch_too_large` | يضم الطلب المجمّع أكثر من 100 استدعاء. لا يُحتسب أي مبلغ. |
| 500 | `configuration_error` | لا يستطيع المسار خدمة الطلبات حاليًا. لا يُحتسب أي مبلغ. |
| 503 | `payment_unavailable` | لا يمكن عرض أي خيار دفع حاليًا. لا يُحتسب أي مبلغ. أعد المحاولة بعد عدد الثواني المذكور في ترويسة `Retry-After`. |
| 503 | `service_busy` | طلبات كثيرة جدًا في الوقت نفسه. لا يُحتسب أي مبلغ. أعد المحاولة بعد عدد الثواني المذكور في ترويسة `Retry-After`. |
| 502 | `settlement_failed` | نتيجة التسوية غير معروفة: ربما تمت الدفعة، ولا يُرفق أي إيصال. تحقّق على Solana أو Base مما إذا كانت الدفعة التي وقّعتها قد تمت قبل أن توقّع دفعة جديدة. |
| 502، 504 | `upstream_error`، `upstream_timeout` | تمت تسوية الدفعة، لكن السلسلة لم تُجب، أو لم تُجب في الوقت المحدد. ويظل الإيصال مرفقًا. إعادة إرسال الطلب تتطلب دفعة جديدة. |

على Solana، يُردّ على الاستدعاء الذي من شأنه أن يقرأ بيانات أكثر من اللازم، مثل `getProgramAccounts` دون مرشّح على برنامج كبير، باستجابة HTTP 200 وخطأ JSON-RPC قبل طلب أي دفعة، لذا لا يكلّف شيئًا.

## الخطوات التالية

- [كيف يسعّر x402 الطلب](https://erpc.global/ar/doc/x402/pricing/): سعر الاستدعاء الواحد، والحد الأدنى البالغ \$0.001، والطلبات المجمّعة.
- [نظرة عامة على x402](https://erpc.global/ar/doc/x402/overview/): مسار كل سلسلة وخيارات الدفع.
- [مستند OpenAPI](https://x402.erpc.global/doc): شكل الطلب والاستجابة لكل مسار.
