# Make

> المدفوعات في أي سيناريو Make: مشغّلات فورية للفواتير المدفوعة والاستردادات والاشتراكات والعملاء؛ ووحدات تنشئ الفواتير وروابط الدفع وتجدها.

يجلب تطبيق Perly Pay مدفوعاتك إلى Make. يمكن لفاتورة مدفوعة أن تملأ جدولًا، أو تحدّث نظام CRM، أو تمنح دورًا في Discord؛ ويمكن لنموذج أن ينشئ فاتورة ويرسل صفحة الدفع. لا شيء لاستضافته، ولا كود.

> **ملاحظة:** مفتاح الاختبار والمفتاح الحقيقي اتصالان منفصلان. السيناريو على اتصال الاختبار يرى مدفوعات الاختبار فقط.

## الاتصال

1. **خذ مفتاحًا** — في Perly Pay: Dashboard → Developers → API keys. `sk_test_…` لـ[وضع الاختبار](https://pay.perly.io/docs/test-mode.md)، و`sk_live_…` للأموال الحقيقية.
2. **أضف Perly Pay إلى السيناريو** — التطبيق في طريقه إلى قائمة تطبيقات Make. وحتى يصل، [راسلنا](https://pay.perly.io/ar/contact) للحصول على رابط الدعوة؛ افتحه مرة، ثم ابحث عن **Perly Pay** حين تضيف وحدة.
3. **اربط** — اضغط **Add** لإضافة اتصال والصق المفتاح. سمّه بحيث تميّز الاختباري من الحقيقي.

## المشغّلات الفورية

| الوحدة | متى | الحدث |
| --- | --- | --- |
| Watch paid invoices | دُفعت بالكامل، وفُحص المُرسل. حان وقت منح الوصول أو شحن الطلب. | `invoice.fulfilled` |
| Watch underpaid invoices | أرسل المشتري أقل مما تطلبه الفاتورة. | `invoice.underpaid` |
| Watch opened refunds | فتحت [استردادًا](https://pay.perly.io/docs/refunds.md). | `refund.requested` |
| Watch confirmed refunds | تأكد على الشبكة الاسترداد الذي أرسلته. | `refund.confirmed` |
| Watch started subscriptions | بدأ [اشتراك](https://pay.perly.io/docs/subscriptions.md). | `subscription.created` |
| Watch renewed subscriptions | دفع المشترك الفترة التالية. | `subscription.renewed` |
| Watch ended subscriptions | انتهى الاشتراك. حان وقت سحب الوصول. | `subscription.ended` |
| Watch new customers | مشترٍ جديد. | `customer.created` |

حين تضيف ويب هوك لمشغّل في Make، يظهر في Dashboard → Developers → Webhooks ويب هوك مثل **Make: Paid invoices**؛ وحين تحذفه في Make — يختفي. قبل تشغيل السيناريو، يأخذ Make كل تسليم من Perly Pay بمفتاحك، ويسلّم Perly Pay كل تسليم مرة واحدة فقط: لا يشغّل أي طلب ليس من Perly Pay، أو أُرسل مرة أخرى، شيئًا. كل ويب هوك واحد من 16 يمكن أن يملكها الوضع.

يُخرج كل مشغّل الحدث والكائن الذي يخصه — فاتورة، أو استرداد، أو اشتراك، أو عميل — كما تعرضها [API](https://pay.perly.io/docs/api.md). المبالغ بالعملة بالسنتات (`total` 4900 تعني 49.00): اقسم على 100 في الربط. والمبالغ بالعملات المشفرة بأصغر وحدات العملة، ومعها `decimals`.

## الوحدات

| الوحدة | ما تعطيه | ما تحصل عليه |
| --- | --- | --- |
| Create an invoice | المبلغ (مثل 49.00)، والوصف؛ واختياريًا العملة، وبريد العميل، وعنوان العودة، والبيانات الوصفية | فاتورة بصفحة دفع (**Payment page URL**) للمشتري |
| Create a payment link | سعرًا، أو اسم منتج جديد ومبلغه | صفحة تبيعه — انشرها حيث تشاء |
| Get an invoice | معرّف الفاتورة | حالتها، وما وصل، وصفحة الدفع |
| Search customers | بريدًا إلكترونيًا، أو لا شيء — للجميع | العملاء، الأحدث أولًا |
| Make an API call | مسار مثل `/invoices`، وطريقة، ومحتوى JSON إن لزم | ردّ الـ API كما هو، لكل ما لا تفعله الوحدات الأخرى |

## وصفات

### دفعة ← صف في Google Sheets

1. **المشغّل** — Perly Pay → **Watch paid invoices**. أضف الويب هوك؛ شغّل السيناريو مرة وادفع فاتورة اختبار ليتعرف Make على الحقول.
2. **الإجراء** — Google Sheets → **Add a Row**، في جدول بأعمدة مثل التاريخ، والبريد، والمبلغ، والعملة.
3. **اربط الحقول** — التاريخ ← Invoice: Paid at، البريد ← Customer email، المبلغ ← `Total (cents) / 100`، العملة ← Payment: Coin. فعّل.

### دفعة ← دور في Discord

يجب أن يعرف Discord من دفع. ضع معرّف Discord للمشتري في الفاتورة حين تنشئها، واقرأه مجددًا حين تُدفع.

1. **السيناريو 1: الفاتورة** — المشغّل: نموذج التسجيل لديك مع البريد ومعرّف Discord. Perly Pay → **Create an invoice**، مفتاح البيانات الوصفية `discord_user_id`، والقيمة — الإجابة من النموذج. ثم أرسل إلى المشتري **Payment page URL**.
2. **السيناريو 2: الدور** — Perly Pay → **Watch paid invoices**. Discord → **Add a Role to a Member** (أو **Make an API call** إلى Discord): خادمك، والدور، والعضو = Invoice: Metadata → `discord_user_id`.
3. **اسحب الدور** — للاشتراك، يزيل **Watch ended subscriptions** الدور بالطريقة نفسها.

## الاختبار

على اتصال الاختبار، أنشئ فاتورة (بالوحدة أو في لوحة التحكم) وادفعها بعملات تجريبية أو عبر API بمعرّف الفاتورة:

```bash
curl -X POST https://pay.perly.io/api/v1/invoices/inv_…/simulate \
  -H "Authorization: Bearer $PERLY_PAY_SECRET_KEY" -H "Content-Type: application/json" -d '{}'
```

خلال ثوانٍ يعمل السيناريو. يُظهر History كل تشغيل وما وصل.

## المدفوعات الحقيقية

- فعّل الوضع الحقيقي في Perly Pay واربط المفاتيح العامة للمحفظة.
- أضف اتصالًا بمفتاح `sk_live_…`. في كل سيناريو، أضف عليه ويب هوك جديدًا للمشغّل وانقل إليه وحدات Perly Pay الأخرى.
- ادفع فاتورة حقيقية صغيرة وشاهد وصولها.
