> For the complete documentation index, see [llms.txt](https://docs.mavibot.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mavibot.ai/doc/ar/integrations/payment/stripe.md).

# Stripe

## كيفية الاتصال

للاتصال بنظام الدفع Stripe، ستحتاج إلى مفتاح API سري ومفتاح webhook.

يمكن نسخ مفتاح API السري بالانتقال إلى Developers → API keys ونسخ Secret key.

الخطوة 1. انتقل إلى Developers → API keys:

<div data-with-frame="true"><figure><img src="/files/7aef48f04378eddd86686408eb069998c629841e" alt=""><figcaption><p>الشكل 1. كيفية العثور على قسم api keys</p></figcaption></figure></div>

الخطوة 2. ابحث عن Secret key وانسخه:

<div data-with-frame="true"><figure><img src="/files/0b9c483f757f68e9e8470e3dd834b6ddd5ca1e1e" alt=""><figcaption></figcaption></figure></div>

بعد ذلك، تحتاج إلى تعيين عنوان URL للردّ. يتيح ذلك للروبوت تلقي إشعارات الدفع.

انتقل إلى قسم Webhooks وأضف عنوان URL للـ webhook.

<div data-with-frame="true"><figure><img src="/files/4dd2cc02f2dfca0d637d39bbf03c5dd73e8d58ca" alt=""><figcaption></figcaption></figure></div>

ستظهر استمارة.

<div data-with-frame="true"><figure><img src="/files/d3b0c80a3983104195addf3940049e63698d7515" alt=""><figcaption></figcaption></figure></div>

الخطوة 3. انقر على "+add destination".

الخطوة 4. اختر الأحداث.

<div data-with-frame="true"><figure><img src="/files/1673f404eebf48b6e3d22cc746001de242087618" alt=""><figcaption></figcaption></figure></div>

الخطوة 3. اختر نوع "Webhook endpoint".

<div data-with-frame="true"><figure><img src="/files/a4c91b8967220fa96cb1d7d316c0c7cc91d39f2f" alt=""><figcaption></figcaption></figure></div>

الخطوة 4. راجع نوع الطلب وانقر على "Continue".

<div data-with-frame="true"><figure><img src="/files/5d823d4575e359bbd545fe06e8fecce4a0ece53e" alt=""><figcaption></figcaption></figure></div>

الخطوة 5. أدخل اسمًا وحدد عنوان URL للنقطة النهائية.

<div data-with-frame="true"><figure><img src="/files/d7722ce2b5fdf95144ecca28bb9d09dac6acc89f" alt=""><figcaption></figcaption></figure></div>

اضبط عنوان URL على: <https://chatter.mavibot.ai/stripe\\_callback/result>

الخطوة 6. سيتم إنشاء نقطتي نهاية — يمكنك مراجعة الإعدادات قبل إضافتهما.

<div data-with-frame="true"><figure><img src="/files/6b3b24d4708efd029c36b18d58cdabf268c3a1ca" alt=""><figcaption></figcaption></figure></div>

الخطوة 7. انقر على زر "Add destinations". سيتم حفظ webhooks.

الخطوة 8. انقر على "Done".

<div data-with-frame="true"><figure><img src="/files/c20f7fb2fce102b8d3595ec430fde426d2015e95" alt=""><figcaption></figcaption></figure></div>

احفظ وسيتم نقلك إلى الصفحة التي تم فيها إعداد webhook.

<div data-with-frame="true"><figure><img src="/files/7f09a08ec11d296e59688a42771e8e731721ee72" alt=""><figcaption></figcaption></figure></div>

الخطوة 9. انقر على webhook الذي اخترت فيه جميع الأحداث.

<div data-with-frame="true"><figure><img src="/files/635f58ed62dc52aadc59e5ac399496a0a7b2a31e" alt=""><figcaption></figcaption></figure></div>

الخطوة 10. ابحث عن Signing key واحفظه (ستحتاج إليه لاحقًا للاتصال بـ MaviBot).

<div data-with-frame="true"><figure><img src="/files/987cf2f9e662ca37fc44f6c2c93a09afed7a9277" alt=""><figcaption></figcaption></figure></div>

بمجرد حصولك على المفاتيح، تابع عملية الاتصال في MaviBot.

في MaviBot، افتح قسم "Acquiring" واختر Stripe.

<div data-with-frame="true"><figure><img src="/files/036525a845091583e06800e05adbe5bcc79a5d32" alt=""><figcaption></figcaption></figure></div>

في صفحة الاتصال، أدخل المفاتيح التي حصلت عليها.

<div data-with-frame="true"><figure><img src="/files/eeaa83ea6b6c9293a750f61f6e2ddec763f098db" alt=""><figcaption></figcaption></figure></div>

انقر على "Save settings".

{% hint style="success" %}
تم! لقد قمت بتوصيل Stripe.
{% endhint %}

## كيفية توصيل ردّ حالة المعاملة

لتلقي ردّ إضافي، تحتاج إلى إضافة webhook ثانٍ إلى جانب الموجود بالفعل.

اضبط عنوان URL على: <https://chatter.mavibot.ai/stripe\\_callback/\\>\<api\_key>/charge\_status

واختر الأحداث التالية:

* `charge.failed`
* `charge.pending`
* `charge.succeeded`

<div data-with-frame="true"><figure><img src="/files/e5b9ae1498e448cbe3e4470e307d6a0bae213401" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="success" %}
مزيد من التفاصيل حول كل نوع من أنواع webhook:

1. `charge.succeeded` — يحتوي على معلومات حول معاملة اكتملت بنجاح (مشابه لردّ الدفع الناجح)
2. `charge.pending` — "المعاملة قيد المعالجة"، وقد يستغرق إكمالها حتى 7 أيام. سيكون webhook بالتنسيق {أول 10 أحرف}{نوع webhook} على سبيل المثال: sk\_test\_45LDPJLKT95d\_charge.pending
3. `charge.failed` — "فشلت المعاملة". سيكون webhook بالتنسيق {أول 10 أحرف}{نوع webhook} على سبيل المثال: sk\_test\_45LDPJLKT95d\_charge.failed
   {% endhint %}

أضف مفتاح webhook الذي حصلت عليه بعد الحفظ إلى حقل MaviBot — Webhook key2.

<div data-with-frame="true"><figure><img src="/files/5146a40f61a03c18c18c9827a37ab735ebc3106c" alt=""><figcaption></figcaption></figure></div>

**stripe\_invoice\_id** — معرّف المعاملة التي لم يتم تلقي ردّ الدفع الناجح لها مباشرةً بعد الدفع.

## كيفية إعداد الضرائب

لاستخدام الضرائب في المدفوعات، تحتاج أولًا إلى إنشائها في لوحة تحكم Stripe الخاصة بك. للقيام بذلك، اكتب "tax rates" في شريط البحث:

<div data-with-frame="true"><figure><img src="/files/b13d026e04cdadc666cd052da4172ad8e3e021a0" alt=""><figcaption></figcaption></figure></div>

وانقر على "+ Add tax rates".

<div data-with-frame="true"><figure><img src="/files/40cd4ea125cf28a76afa65bb603aa68ede086769" alt=""><figcaption></figcaption></figure></div>

ثم أدخل معدل الضريبة المناسب.

<div data-with-frame="true"><figure><img src="/files/09ec88fb04130a8f2a24c2f517962ec9dc57d1b3" alt=""><figcaption></figcaption></figure></div>

في القائمة التي تفتح، اختر نوع الضريبة، والمنطقة التي تنطبق عليها، ونسبة الضريبة، وما إذا كانت الضريبة ستُدرج ضمن مبلغ الدفع (Inclusive) أم ستُضاف إليه (Exclusive).

<div data-with-frame="true"><figure><img src="/files/1fc3e95784b192e2b3067841e4898659967d38e7" alt=""><figcaption></figcaption></figure></div>

بعد إنشاء معدل الضريبة، انسخ معرّفه إلى المتغير stripe\_tax\_id قبل إعلان مبلغ الدفع.

<div data-with-frame="true"><figure><img src="/files/058e7daefab34f55903eb215b6ee43f5027fcc2b" alt=""><figcaption></figcaption></figure></div>

لتجنب الأخطاء، يُنصح بتعيين المتغير stripe\_tax\_id إلى سلسلة فارغة ("") بعد الحصول على الرابط — وبهذه الطريقة يمكنك تطبيق الضريبة فقط عند الحاجة.

إذا تم ذلك بشكل صحيح، ففي حالة معدل ضريبة مع المعامل exclusive، سترى ما يلي:

<div data-with-frame="true"><figure><img src="/files/c4ac0fa89d407012399e5df49e2e92ffc1624970" alt=""><figcaption></figcaption></figure></div>

كيفية الحصول على رابط دفع

لإنشاء رابط دفع، اضبط قيمة المتغير payment\_sum (مثلًا 150 أو 100.55 — استخدم نقطة وليس فاصلة!). بعد ذلك سيظهر المتغير stripe\_pay\_url. يمكنك عرض هذا المتغير كرابط أو وضعه على زر بالنص "Pay".

يبدو الرابط بهذا الشكل:

`https://checkout.stripe.com/pay/cs_test_a17mskKFFRwEuo3WgBSAUjfk7xaZZIrct9B3Ds2AdODVq1I8aRiqYEBdrU#fidkdWxOYHwnPyd1blpxYHZxWjA0TGFsVzFPVmpmMzJAbVYzUkp1Y0lLYDVgfzR2Q0NxcWZBNUNnTnRSVVRJSGFobEB1UExSczRMMTc8PWRLMGBddl8xalxyPDRoUGhnZm9xXXZANDZyaF0wNTVBVExsPHZyfycpJ2N3amhWYHdzYHcnP3F3cGApJ2lkfGpwcVF8dWAnPyd2bGtiaWBabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl`

{% hint style="warning" %}
افتراضيًا، تكون العملة مضبوطة على USD. لاستخدام عملة مختلفة، اضبط قيمة المتغير currency.
{% endhint %}

يمكنك أيضًا تعيين المتغيرات الاختيارية التالية قبل ضبط قيمة payment\_sum لتكوين عملية الدفع.

<table><thead><tr><th width="271.8984375">معلمات الوظيفة</th><th>وصف المعلمة</th></tr></thead><tbody><tr><td><strong>currency</strong></td><td>عملة الطلب. القيم المسموح بها هنا —<a href="https://stripe.com/docs/currencies">https://stripe.com/docs/currencies</a></td></tr><tr><td><strong>payment_description</strong></td><td>وصف الدفع</td></tr><tr><td> <strong>stripe_tax_id</strong></td><td>معرّف معدل الضريبة المُعدّ في لوحة تحكم Stripe الخاصة بك.<br>توجد تعليمات الإعداد في قسم "<a href="#how-to-set-up-taxes">كيفية إعداد الضرائب</a>".</td></tr><tr><td><strong>stripe_invoice_enable</strong> </td><td>علامة لتفعيل حفظ الفواتير (الإيصالات). ضع أي قيمة لتفعيل ذلك — ستكون جميع المستندات ذات الصلة متاحة في لوحة تحكم Stripe الخاصة بك.</td></tr><tr><td><strong>stripe_locale</strong></td><td><p>تعيين لغة صفحة الدفع: en، de، إلخ. جميع الخيارات المتاحة: https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-locale</p><p>إذا لم يتم تعيين stripe_locale، فسيتم استخدام لغة متصفح العميل.</p></td></tr><tr><td><strong>stripe_payment_method_type</strong></td><td>طريقة الدفع؛ الافتراضي هو الدفع بالبطاقة. يمكن استبدالها بطرق دفع أخرى متاحة في Stripe. الطرق المتاحة مذكورة أدناه. على سبيل المثال، <code>stripe_payment_method_type = "customer_balance"</code></td></tr><tr><td><strong>stripe_additional_payment_method_type</strong> </td><td>إضافة طريقة دفع إضافية. الطرق المتاحة مذكورة أدناه. على سبيل المثال، <code>stripe_additional_payment_method_type = "sepa_debit"</code></td></tr><tr><td><strong>coupon_id</strong></td><td>معرّف قسيمة الخصم</td></tr><tr><td>stripe_expired </td><td>مدة انتهاء صلاحية رابط الدفع. تُحدد بالثواني. الحد الأدنى 30 دقيقة، والحد الأقصى 24 ساعة. القيمة الافتراضية 24 ساعة.</td></tr><tr><td>stripe_automatic_tax</td><td>تفعيل الحساب والتحصيل التلقائي للضريبة عند الدفع. استخدم "1" للتفعيل. لمزيد من التفاصيل، راجع <a href="https://docs.stripe.com/tax/set-up">مقالات Stripe.</a></td></tr></tbody></table>

{% hint style="warning" %}
مهم! إذا كنت تستخدم المتغيرين stripe\_payment\_method\_type وstripe\_additional\_payment\_method\_type معًا، فيجب أن تكون القيم فيهما مختلفة!
{% endhint %}

<details>

<summary>قائمة القيم لـ stripe_payment_method_type وstripe_additional_payment_method_type</summary>

card\
acss\_debit\
affirm \
afterpay\_clearpay \
alipay\
au\_becs\_debit \
bacs\_debit \
bancontact \
blik \
boleto \
cashapp \
customer\_balance \
eps \
fpx \
giropay \
grabpay \
ideal \
klarna \
konbini \
link \
oxxo \
p24 \
paynow \
paypal \
pix \
promptpay \
sepa\_debit \
sofort \
us\_bank\_account \
wechat\_pay zip

</details>

{% hint style="info" %}
[لمزيد من التفاصيل حول كل طريقة والبلدان التي تتوفر فيها، راجع وثائق Stripe](https://stripe.com/docs/api/payment_methods/object#payment_method_object-type)
{% endhint %}

### مثال على إنشاء رابط دفع

لننشئ رابط دفع لمبلغ 1000 AED (العملة الافتراضية هي USD).

<div data-with-frame="true"><figure><img src="/files/e886412217389289d28d73a5408561a3643ec7f4" alt=""><figcaption></figcaption></figure></div>

{% hint style="warning" %}
ملاحظة:&#x20;

— أولًا، حدّد المعلمات الاختيارية مثل first\_name وpayment\_description، إلخ.&#x20;

— ثم، عيّن القيمة لمتغير payment\_sum في النهاية.

يمكن أيضًا تعيين المتغيرات في وقت أبكر ضمن السلسلة، وليس بالضرورة في الكتلة نفسها — هذا مجرد مثال.
{% endhint %}

ثم اعرض المتغير stripe\_pay\_url، الذي يحتوي على الرابط، في الموضع المطلوب — إما في كتلة رسالة أو على زر:

المثال 1. عرض رابط الدفع مباشرةً في رسالة:

<div data-with-frame="true"><figure><img src="/files/9f8bbc857530c4e5be7ede809257a3c0ae837f0e" alt=""><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/ccb42153128606f97d61a4bbc9b91b7eda229872" alt="" width="563"><figcaption><p>الاختبار داخل الروبوت.</p></figcaption></figure></div>

المثال 2. أضف رابط الدفع إلى زر.

<div data-with-frame="true"><figure><img src="/files/9adfd5c1b2cfadc5edb1d33e0832e374e2f86744" alt=""><figcaption></figcaption></figure></div>

عند النقر على الزر أو فتح الرابط، سيتم تحويل الدافع إلى صفحة الدفع.

<div data-with-frame="true"><figure><img src="/files/acbcc847492db49b00c2872831864ef3315a3d49" alt=""><figcaption></figcaption></figure></div>

يوضح المثال أن المعلمات التي حددناها في الحاسبة ضمن إعدادات الكتلة قد طُبّقت: وصف الطلب، العملة، والمبلغ.

إذا مرّرت معامل معدل الضريبة (stripe\_tax\_id) في الكتلة.

<div data-with-frame="true"><figure><img src="/files/409a357ecefbfc2df391fae8aae52ad0d740a060" alt=""><figcaption></figcaption></figure></div>

سيظهر معدل الضريبة أيضًا في نموذج الدفع.

<div data-with-frame="true"><figure><img src="/files/bb01a45ec48788a9459670a1419d4df476009dc6" alt=""><figcaption></figcaption></figure></div>

<details>

<summary>مثال كود للنسخ</summary>

payment\_description = "test payment"&#x20;

currency = 'AED'&#x20;

stripe\_tax\_id = 'enter\_your\_stripe\_id\_tax'&#x20;

payment\_sum = 1000

</details>

أين تجد معرّف الضريبة.

<div data-with-frame="true"><figure><img src="/files/3b1bf3ae5ecb0f09a9e601dd47f46469e65685aa" alt=""><figcaption></figcaption></figure></div>

## كيفية إعداد المدفوعات المتكررة

للمدفوعات المتكررة (الاشتراكات)، عرّف المتغير stripe\_subscription قبل المتغير payment\_sum وامنحه اسم الاشتراك.

يمكنك أيضًا إضافة المتغيرات التالية: interval — مدة فترة الاشتراك. استخدم 'day' للأيام، أو 'week' للأسابيع، أو 'month' للأشهر، أو 'year' للسنوات. إذا لم يتم تعيين المتغير، فسيُستخدم 'month' افتراضيًا.

{% hint style="warning" %}
مهم!

لا يمكن أن تتجاوز مدة دورة اشتراك واحدة سنة واحدة (للمعامل 'year')، أو 12 شهرًا (للمعامل 'month')، أو 52 أسبوعًا (للمعامل 'week').
{% endhint %}

<div data-with-frame="true"><figure><img src="/files/42c963af3701c34cb9fe8e790455ebc0750f84e4" alt=""><figcaption></figcaption></figure></div>

interval\_count — عدد الفترات المحددة: كم يومًا أو أسبوعًا أو شهرًا يتضمنها الاشتراك مقابل المبلغ المحدد. القيمة الافتراضية هي 1.

stripe\_payment\_method\_type — طريقة الدفع؛ الافتراضي هو الدفع بالبطاقة. يمكن استبدالها بطرق دفع أخرى متاحة في Stripe. الطرق المتاحة مذكورة أدناه.

على سبيل المثال، `stripe_payment_method_type = 'customer_balance'`

stripe\_additional\_payment\_method\_type — إضافة طريقة دفع إضافية. الطرق المتاحة مذكورة أدناه.

على سبيل المثال، `stripe_additional_payment_method_type = 'sepa_debit'`

{% hint style="warning" %}
مهم! إذا كنت تستخدم المتغيرين stripe\_payment\_method\_type وstripe\_additional\_payment\_method\_type معًا، فيجب أن تكون القيم فيهما مختلفة حتمًا!
{% endhint %}

<details>

<summary>قائمة القيم لـ stripe_payment_method_type وstripe_additional_payment_method_type:</summary>

card\
acss\_debit\
affirm \
afterpay\_clearpay \
alipay\
au\_becs\_debit \
bacs\_debit \
bancontact \
blik \
boleto \
cashapp \
customer\_balance \
eps \
fpx \
giropay \
grabpay \
ideal \
klarna \
konbini \
link \
oxxo \
p24 \
paynow \
paypal \
pix \
promptpay \
sepa\_debit \
sofort \
us\_bank\_account \
wechat\_pay zip

</details>

{% hint style="info" %}
[لمزيد من التفاصيل حول كل طريقة والبلدان التي تتوفر فيها، راجع وثائق Stripe](https://stripe.com/docs/api/payment_methods/object#payment_method_object-type).
{% endhint %}

{% hint style="warning" %}
مهم!

لا يمكن أن تتجاوز مدة دورة اشتراك واحدة سنة واحدة (للمعامل 'year')، أو 12 شهرًا (للمعامل 'month')، أو 52 أسبوعًا (للمعامل 'week').
{% endhint %}

في هذا المثال، سيتم إنشاء اشتراك باسم 'My\_subscription' بسعر 1000 AED لكل شهر واحد، وسيتم تحصيل دفعة متكررة بنفس المبلغ بعد شهر واحد.

<div data-with-frame="true"><figure><img src="/files/0b1b67720a96ded8b5fb6251a5b6a19364a24c24" alt=""><figcaption></figcaption></figure></div>

مثال للنسخ:

`stripe_subscription = 'My_subscription' interval = 'month' payment_sum = 90`

لتحصيل دفعة الاشتراك مرة واحدة كل شهرين أو ثلاثة أو أربعة أشهر، مرّر المعامل interval\_count:

`stripe_subscription = 'My_subscription'`

`interval = 'month'`

`interval_count = 3`

`payment_sum = 90`

لتغيير فترة دفع الاشتراك من شهرية إلى أسبوعية، مرّر كلمة week في المعامل interval:

`stripe_subscription = 'My_subscription'`

`interval = 'week'`

`interval_count = 3`

`payment_sum = 90`

بعد الدفع، ستتضمن متغيرات معاملة العميل stripe\_subscription\_id، وهو مطلوب لإعداد إلغاء الاشتراك، وstripe\_customer\_id، والذي يمكن استخدامه لاحقًا للتحقق من حالة الاشتراك.

{% hint style="warning" %}
يتم إرسال الإشعار (callback) للدفع المتكرر الأول فقط!

لن يكون هناك أي callback للمدفوعات اللاحقة. يتم التتبع عبر الدالة وstripe\_customer\_id.
{% endhint %}

<figure><img src="/files/e0c2faa3cc546e011c85ba55e8656982da7e2287" alt="" width="371"><figcaption></figcaption></figure>

## إعدادات العودة إلى المدفوعات العادية

للعودة إلى المدفوعات العادية، عيّن سلسلة فارغة لمتغير الاشتراك: stripe\_subscription = ''. في هذه الحالة، لن تؤثر المتغيرات interval وinterval\_count في إنشاء الرابط.

<div data-with-frame="true"><figure><img src="/files/53795581042552c48c83ed400f6c8a917c1e22d0" alt=""><figcaption></figcaption></figure></div>

## إعدادات إلغاء الاشتراك

لإلغاء اشتراك في الحاسبة، استخدم الطريقة stripe\_remove\_subscription(stripe\_subscription\_id)، حيث إن stripe\_subscription\_id هو المعرّف المحفوظ في متغيرات المعاملة بعد الدفع.

سيُبقي هذا الاشتراك المدفوع نشطًا حتى نهاية فترة الفوترة الحالية، ولكن لن تحدث أي رسوم إضافية، وسيُلغى الاشتراك بمجرد انتهاء الفترة.

<div data-with-frame="true"><figure><img src="/files/66cf03c4ce4f9c7441a14d99da8760a7cf64116d" alt=""><figcaption></figcaption></figure></div>

answer = stripe\_remove\_subscription('#{stripe\_subscription\_id}')

stripe\_remove\_subscription — عند النجاح، يُرجع استجابة تحتوي على معلومات حول التاريخ الذي سيظل الاشتراك الملغى نشطًا حتى بلوغه.

في هذا المثال، سيتم تخزين نتيجة الدالة في المتغير answer، مما يتيح لك التحقق من النتيجة.

## التحقق من حالة الاشتراك

stripe\_check\_subscription(subscription\_id, customer\_id)، حيث

stripe\_subscription\_id — معرّف الاشتراك stripe\_customer\_id — معرّف العميل في Stripe (معامل اختياري)

<div data-with-frame="true"><figure><img src="/files/3e4a44397d67e49c2c6301b57ab6f057e3370c25" alt=""><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/21d9732f7e3f2f16c0ecd1ceaee73f2f5e42924d" alt=""><figcaption></figcaption></figure></div>

## كيفية إنشاء قسيمة والحصول على معرّف خصم

للحصول على معرّف خصم، أنشئ قسيمة في لوحة التحكم الخاصة بك ضمن قسم "Coupons". ”[coupons](https://dashboard.stripe.com/coupons)”.

<div data-with-frame="true"><figure><img src="/files/e8e8ad3a1a455739a58f1e9004e0adf2a95fdd78" alt=""><figcaption></figcaption></figure></div>

سيؤدي النقر على زر "New" إلى فتح صفحة تحتاج فيها إلى تحديد:

1. Name — اسم الخصم;
2. ID — المعرّف، ويتم إنشاؤه تلقائيًا;
3. Type — نوع الخصم: نسبة مئوية أو مبلغ ثابت;
4. Duration — مدة الخصم (مرة واحدة أو مستمر، مثلًا للاشتراكات) ومعلمات أخرى.

<div data-with-frame="true"><figure><img src="/files/f28952df5b8d3cc7aea7fb93c193d3e8bb55fbed" alt=""><figcaption></figcaption></figure></div>

ستظهر قسيمة الخصم في "Product catalogue" ضمن قسم "Coupons"، ويمكنك عرض معرّف الخصم بفتح قائمة القسيمة.

<div data-with-frame="true"><figure><img src="/files/31ed1acd02b56a1ba7eb3b6a4cd087a7da49cdf6" alt=""><figcaption></figcaption></figure></div>

انقر على القسيمة لنسخ معرّف القسيمة.

<div data-with-frame="true"><figure><img src="/files/d387fdfefcf968a6e669f78925def811068c2326" alt=""><figcaption></figcaption></figure></div>

## كيفية تطبيق خصم على طلب

1. عند إنشاء رابط دفع (يعمل لكل من الاشتراكات والمدفوعات لمرة واحدة).

في حاسبة الكتلة، قبل تعريف المتغير payment\_sum، عيّن المتغير coupon\_id ومرّر معرّف الخصم من لوحة تحكم Stripe الخاصة بك.

<div data-with-frame="true"><figure><img src="/files/351549e9d559456909dc6ec2bc51ff312176b70f" alt=""><figcaption></figcaption></figure></div>

2. لاشتراك موجود باستخدام الدالة stripe\_add\_subscription\_discount.

عيّن شروط التشغيل للكتلة واستدعِ الدالة المحددة في الحاسبة، مع تمرير المعاملين stripe\_subscription\_id (معرّف الاشتراك) وcoupon\_id (معرّف خصم القسيمة). سيتم تطبيق الخصم على دفعات الاشتراك اللاحقة.

<div data-with-frame="true"><figure><img src="/files/9210ff070af2e60b20f855430b572ebc3f9b0284" alt=""><figcaption></figcaption></figure></div>

<details>

<summary>مثال كود للنسخ</summary>

stripe\_subscription = 'test subscription'&#x20;

interval = 'month'&#x20;

payment\_description = 'test payment'&#x20;

currency = 'AED'&#x20;

coupon\_id = 'BD8VIwi8' stripe\_add\_subscription\_discount(stripe\_subscription\_id, coupon\_id)

stripe\_tax\_id = 'Qfkiwiki29jcs'

payment\_sum = 90

</details>

إذا تم تطبيق الخصم بنجاح، فستُرجع الدالة رسالة تتضمن معرّف الاشتراك، ونوع الخصم، والمبلغ أو النسبة المئوية، وتاريخ الانتهاء.

<div data-with-frame="true"><figure><img src="/files/527e718f0c3a792f9052d6c84b4e4aacb3e7b095" alt=""><figcaption></figcaption></figure></div>

## كيفية إزالة خصم أو تغييره للاشتراك

يمكن إزالة الخصم المرتبط بالاشتراك أو استبداله بخصم آخر.

لإيقاف خصم، عيّن شروط التشغيل للكتلة واستدعِ الدالة stripe\_remove\_subscription\_discount في الحاسبة، مع تمرير المعامل stripe\_subscription\_id (معرّف الاشتراك).

<div data-with-frame="true"><figure><img src="/files/b71d83d70b263bd62843e8217f7a3a52a0680640" alt=""><figcaption></figcaption></figure></div>

إذا تمت العملية بنجاح، فستُرجع الدالة رسالة تحتوي على معرّف الاشتراك وتاريخ إلغاء الخصم.

يتم استبدال الخصم، مثل إضافة خصم جديد، باستخدام الدالة stripe\_add\_subscription\_discount. تأكد من تمرير المعاملين stripe\_subscription\_id وcoupon\_id. سيؤدي الطلب الناجح إلى تحديث القسيمة المرتبطة بالاشتراك وإرجاع رسالة بالتفاصيل المحدّثة.

## كيفية التعامل مع النتيجة

بعد الدفع الناجح، سيتلقى الروبوت callbacks تشير إلى نجاح المعاملة. في النظام، تظهر هذه callbacks كرسائل من المستخدم. ولمنع المستخدمين من إرسالها يدويًا، فهي تتكون من أول 20 حرفًا من المفتاح السري متبوعة بـ \_success، على سبيل المثال: sk\_live\_d35gky6d8ers\_success

<div data-with-frame="true"><figure><img src="/files/240b49db6af433a9148810eaa647560652f482c1" alt="" width="563"><figcaption></figcaption></figure></div>

هذه callbacks غير مرئية للمستخدم — فهي مرئية للمشغّل فقط.

يجب ضبط نوع المقارنة على "Exact match".

بعد الدفع الناجح، يتم أيضًا تعيين المتغير stripe\_payment\_completed إلى True.

على سبيل المثال، يمكنك معالجة الدفع الناجح باستخدام كتلة شرطية وعرض الرسالة المناسبة للمستخدم.

<div data-with-frame="true"><figure><img src="/files/c5bbf08c739e101dfd011d7c89526d9d171d39a4" alt=""><figcaption></figcaption></figure></div>

بعد إتمام الدفع، سيتم إضافة المتغير stripe\_callback\_data إلى بيانات العميل، ويحتوي على استجابة نظام الدفع للمعاملة المكتملة. يمكن استخراج البيانات المطلوبة من القاموس الناتج باستخدام method get.

{% hint style="warning" %}
لمعالجة دفعة متكررة، يجب أولًا إعادة ضبط payment\_sum والرابط الذي تم إنشاؤه سابقًا، وبعد ذلك فقط أعد تعيين المتغير payment\_sum للحصول على رابط جديد. يمكنك استخدام القيمة السابقة.
{% endhint %}

## كيفية اختبار المدفوعات

لاختبار التكامل، يمكنك استخدام المفتاح السري من بيئة الاختبار. للقيام بذلك، بدّل إلى بيئة الاختبار في لوحة تحكم Stripe باستخدام القائمة الموجودة على اليمين.

![](https://lh5.googleusercontent.com/r-tuJboMES8alkTUpKwA4HKrmL_epNtSXdENrv12EyR9dGCtvRLBK6qw4UGcr59GA3unxc1cV1otCu80nqHEw9VhbEK05ovPQ1Ad8chBv50LAWPO16nEPC2hFhCAsCe3khtBJrob=s0)

ثم اتبع خطوات الإعداد الموضحة في بداية هذا الدليل. أدخل المفتاح السري التجريبي وأضف عنوان URL الخاص بالـ webhook في بيئة الاختبار.

للاختبار، استخدم رقم بطاقة دفع تجريبية ([يمكنك العثور على رقم البطاقة الخاص ببلدك على الموقع الرسمي لـ Stripe](https://stripe.com/docs/testing#regulatory-cards)).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/ar/integrations/payment/stripe.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
