# Stripe

## كيفية الربط

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

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

الخطوة 1. انتقل إلى قسم Developers -> API key:

<figure><img src="/files/4239887a251b745fd17d4ef1cb6f7136fc00b977" alt="" width="563"><figcaption><p>الصورة 1. كيفية العثور على قسم API</p></figcaption></figure>

الخطوة 2. اعثر على المفتاح السري وانسخه:

<figure><img src="/files/8e7f979e0ca004adb05ccf77b7f89898f043ff8a" alt=""><figcaption></figcaption></figure>

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

انتقل إلى قسم Webhooks وأضف العنوان الخاص بـ webhooks.

<figure><img src="/files/3a68af5415c2e82e10c8c820a6fc2edeecd7d5c0" alt=""><figcaption></figcaption></figure>

يتم فتح النموذج:

<figure><img src="/files/8c0f3703bde82ee5b75113b40e53f47cdc231f13" alt=""><figcaption></figcaption></figure>

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

الخطوة 2. حدّد الأحداث:

<figure><img src="/files/cf07ff8526551a16e1eb5f9c365a6290638e130e" alt=""><figcaption></figcaption></figure>

الخطوة 3. حدّد نوع "Webhook endpoint":

<figure><img src="/files/e8a733566f917e07cd9ccc3effb7a24d45fd26f2" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/a01a86fb75f80b1815086b8d5b531e1ab60653f5" alt=""><figcaption></figcaption></figure>

الخطوة 5. نكتب الاسم ونحدد عنوان URL لنقطة النهاية:

<figure><img src="/files/07a526549929883747eb5aef8373693a94fd4f51" alt=""><figcaption></figcaption></figure>

حدد عنوان URL - <https://chatter.salebot.pro/stripe_callback/result>

الخطوة 6. سيتم إنشاء نقطتي نهاية، ويمكنك عرض الإعدادات قبل الإضافة:&#x20;

<figure><img src="/files/e438fad76ebe2036b336ae29b92105e9dfeccd16" alt="" width="563"><figcaption></figcaption></figure>

الخطوة 7. بعد ذلك، انقر على زر "Add destinations". ثم سيتم حفظ الـ webhooks.

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

<figure><img src="/files/a6caf59fa43fd3ead5758ed917e9eb3a4ef44612" alt=""><figcaption></figcaption></figure>

نحفظه وننتقل إلى الصفحة التي تحتوي على webhook المثبّت:

<figure><img src="/files/c710485c381920841134faa9b9a108da26cc0890" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/d9a8f82ced0a1aba33c4a4ab789d628681dc6c5a" alt=""><figcaption></figcaption></figure>

الخطوة 10. نعثر على Signig key ونحفظه لدينا (سنحتاجه لاحقًا للاتصال بـ Salebot):

<figure><img src="/files/ff5e34dcb430f18d0696e41acf3b6f5f08337675" alt=""><figcaption></figcaption></figure>

بعد استلام المفاتيح، ننتقل إلى الاتصال بـ Mavibot.

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

<figure><img src="/files/760e61f4be0c38261f0c4567166ec90ac9119997" alt=""><figcaption></figcaption></figure>

في صفحة الاتصال، تحتاج إلى إدخال المفاتيح المستلمة:

<figure><img src="/files/a9436ee24902702919887b049b2e5ceaa494121e" alt=""><figcaption></figcaption></figure>

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

{% hint style="success" %}
تم!&#x20;

بهذا يكتمل توصيل نظام الدفع!
{% endhint %}

## كيفية توصيل رد نداء بشأن حالة المعاملة

للحصول على رد نداء إضافي، سنحتاج إلى توصيل webhook في **إضافةً إلى الموجود بالفعل.**

حدد عنوان URL - [https://chatter.salebot.pro/stripe\_callback/\<api\_key>/charge\_status](https://chatter.salebot.pro/stripe_callback/<api_key>/charge_status)

وتحديد الأحداث:

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

<figure><img src="/files/e5b9ae1498e448cbe3e4470e307d6a0bae213401" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="success" %}
**تعرّف أكثر على كل نوع من أنواع webhook:**

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

نضيف الـ webhook الذي تم استلامه بعد الحفظ إلى حقل Mavibot - Webhook key2:

<figure><img src="/files/8b1d125f88d6e552659edb730bebcde3cced7a30" alt="" width="563"><figcaption></figcaption></figure>

**stripe\_invoice\_id** - معرّف المعاملة الذي لم يتم استلام رد نداء الدفع الناجح له مباشرة بعد الدفع.

## كيفية توصيل الضرائب

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

<figure><img src="/files/b13d026e04cdadc666cd052da4172ad8e3e021a0" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/40cd4ea125cf28a76afa65bb603aa68ede086769" alt=""><figcaption></figcaption></figure>

بعد ذلك، حدّد معدل الضريبة المطبق:

<figure><img src="/files/09ec88fb04130a8f2a24c2f517962ec9dc57d1b3" alt=""><figcaption></figcaption></figure>

في القائمة المفتوحة، حدّد نوع الضريبة والمنطقة التي تنطبق عليها ومعدل الضريبة وخيار ما إذا كان يجب تضمين هذه الضريبة في مبلغ الدفع 'Inclusive' أو إضافتها فوق المبلغ - exclusive:

<figure><img src="/files/1fc3e95784b192e2b3067841e4898659967d38e7" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/058e7daefab34f55903eb215b6ee43f5027fcc2b" alt=""><figcaption></figcaption></figure>

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

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

<figure><img src="/files/94b69fa60f09d734aafd5f9d585487cd471106ce" alt=""><figcaption><p>مثال على دفعة بمعدل ضريبة exclusive</p></figcaption></figure>

## **كيفية الحصول على رابط الدفع**&#x20;

لإنشاء رابط دفع، تحتاج إلى تعيين قيمة **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="255">معلمات الدالة</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="#kak-podklyuchit-nalogi">كيفية توصيل الضرائب</a>"</td></tr><tr><td><strong>stripe_invoice_enable</strong> </td><td>يشير هذا المعامل إلى ضرورة حفظ الفواتير (الفواتير، الإيصالات). أدخل أي قيمة — وستكون جميع المستندات الضرورية متاحة بعد ذلك في حسابك الشخصي في Stripe.</td></tr><tr><td><strong>stripe_locale</strong></td><td>يضبط لغة رابط الدفع: en، ru، de. جميع اللغات المتاحة موجودة هنا: <a href="https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-locale ">https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-locale </a><br>إذا كان <strong>stripe_local</strong> إذا لم يتم توفير القيمة، فسيتم استخدام لغة متصفح العميل افتراضيًا.</td></tr><tr><td><strong>stripe_payment_method_type</strong></td><td><p>هي طريقة الدفع، وطريقة الدفع الافتراضية هي البطاقة. يمكنك استبدالها بطرق دفع أخرى متاحة في Stripe. الطرق المتاحة مدرجة أدناه</p><p>على سبيل المثال، <code>stripe_payment_method_type = "customer_balance"</code></p></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". يمكن العثور على معلومات مفصلة حول هذا الإعداد في وثائق Stripe. الرابط <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*** المتغيرا&#x62A;***، فيجب أن تكون القيم فيهما مختلفة!***
{% endhint %}

<details>

<summary><em><mark style="color:green;"><strong>قائمة القيم لـ</strong></mark><strong>  </strong><strong>stripe_payment_method_type</strong> و <strong>stripe_additional_payment_method_type</strong></em></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>

يمكنك معرفة المزيد عن كل طريقة ولأي البلدان هي متاحة في وثائق Stripe: [عرض على الموقع ](https://stripe.com/docs/api/payment_methods/object#payment_method_object-type)

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

لننشئ رابط دفع بقيمة 1000 روبل (الافتراضي هو الدولار)

<figure><img src="/files/87d42c045d01aa18b935835a6150aacd8f8d974f" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
**انتبه:** \
\- أولاً تحدد المعلمات الاختيارية  **first\_name, payment\_description** وهكذا.\
\- وأخيرًا نُسند قيمة إلى المتغير **payment\_sum**

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

بعد ذلك، في المكان المطلوب نعرض المتغير **stripe\_pay\_url**، والذي يحتوي على الرابط داخل الكتلة أو في الزر:

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

<figure><img src="/files/4a4f2607c5b65d63a13f06cab4388501598ee838" alt=""><figcaption></figcaption></figure>

الاختبار في البوت:

<figure><img src="/files/6b8560b4dfb9abf52cbd4040e9a0f6384a7864c6" alt="" width="563"><figcaption></figcaption></figure>

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

<figure><img src="/files/c7a0f66a43527390d8759d5a785cb30f8055f11e" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/1fb43507153a7c972eff3e3ed12c14141bfeca2d" alt="" width="563"><figcaption></figcaption></figure>

مثال 3. نضيف الرابط كمرفق إلى الرسالة:

<figure><img src="/files/0e5c3c219e1ec0a258eef7a4d83d5cf65348a336" alt=""><figcaption></figcaption></figure>

الاختبار في البوت:

<figure><img src="/files/6b0dfd670975a0c3e9c16e9cbf56b58e1e164f0c" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="success" %}
جميع الخيارات الثلاثة مقبولة لإرسال رابط الدفع في البوت.&#x20;
{% endhint %}

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

<figure><img src="/files/651693278bffa456211cb6203121efc5097f694a" alt=""><figcaption></figcaption></figure>

في المثال، يتضح أن المعلمات التي أشرنا إليها في الآلة الحاسبة ضمن إعدادات الكتلة قد تم تطبيقها: وصف الطلب، العملة، والمبلغ.&#x20;

إذا قمت بتمرير معلمة معدل الضريبة (**stripe\_tax\_id)** في الكتلة:&#x20;

<figure><img src="/files/90e6eec0d2758407cce34f1084c552c7148af35c" alt=""><figcaption></figcaption></figure>

فسيتم أيضًا عرض معدل الضريبة في نموذج الدفع:

<figure><img src="/files/3c53a39fca24fd769ef67348ee9a50b47a258916" alt=""><figcaption></figcaption></figure>

<details>

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

`payment_description = 'دفعة اختبارية في Stripe'` \
`currency = 'RUB'` \
`stripe_tax_id = 'انسخ هنا معرّف الضريبة الخاص بك tax ID'` \
`payment_sum = 1000`

أين تجد tax ID:

<figure><img src="/files/03320c3f3b9cf4eadb29fc6101e2727693a20314" alt=""><figcaption></figcaption></figure>

</details>

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

بالنسبة للمدفوعات المتكررة (الاشتراكات)، يجب قبل تعريف المتغير **payment\_sum** تعريف المتغير **stripe\_subscription** وإسناد اسم الاشتراك إليه.&#x20;

يمكن أيضًا إضافة المتغيرات التالية: \
**interval** – مدة فترة الاشتراك، ويجب تمرير القيمة التالية إلى هذا المتغير **‘day’** - للأيام، **‘week’** - للأسابيع، **‘month’** - للأشهر، **‘year’** - للسنوات. \
إذا لم يتم تعريف المتغير، فسيتم ***افتراضيًا*** تمرير المعامل **‘month’.**

{% hint style="warning" %}
**مهم!** لا يمكن أن تتجاوز مدة دورة اشتراك واحدة سنة واحدة (للمعامل ‘year’)، أو 12 شهرًا (للمعامل ‘month’)، أو 52 أسبوعًا (للمعامل ‘week’).
{% endhint %}

<figure><img src="/files/52c2be24c7f4c5eb204b7987fdb5c3cb12b871ae" alt=""><figcaption></figcaption></figure>

**interval\_count** – عدد الفترات المحددة، أي عدد الأيام أو الأسابيع أو الأشهر التي ستكون في الاشتراك مقابل المبلغ المحدد. ***افتراضيًا*** سيتم تمرير معامل يساوي واحدًا (**1**);

**stripe\_payment\_method\_type** - طريقة الدفع، والافتراضي هو الدفع بالبطاقة (card). يمكن استبدالها بطرق دفع أخرى متاحة في 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><em><mark style="color:green;"><strong>قائمة القيم لـ</strong></mark><strong>  </strong><strong>stripe_payment_method_type</strong> و  <strong>stripe_additional_payment_method_type:</strong></em></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' بسعر 90 دولارًا أمريكيًا لمدة 3 أشهر، وسيتم إجراء دفعة متكررة بنفس المبلغ بعد هذا الشهر الواحد:

<figure><img src="/files/bb16d06a306bd23f76b4fddc3082d431af85f2c8" alt=""><figcaption></figcaption></figure>

مثال للنسخ:

`stripe_subscription = 'My_subscription'` \
`interval = 'month'` \
`interval_count = 3` \
`payment_sum = 90`&#x20;

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

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

لن يكون هناك callback للمدفوعات المتكررة اللاحقة. يتم التحكم عبر الدالة و stripe\_customer\_id. [عبر الدالة](#proverka-statusa-podpiski) رابط
{% endhint %}

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

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

للعودة إلى المدفوعات العادية، عيّن للمتغير subscription سلسلة فارغة **stripe\_subscription = "**&#x200C;. في هذه الحالة، لن تؤثر المتغيرات interval و interval\_count على إنشاء الرابط.

<figure><img src="/files/587958caaf4e789f081c3031f1b090fae8e732f8" alt=""><figcaption></figcaption></figure>

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

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

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

<figure><img src="/files/878b1f40357db4411e30b366676fd8aa01fc4717" alt=""><figcaption></figcaption></figure>

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

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

في هذا المثال، سيتم وضع نتيجة تنفيذ الدالة في المتغير answer وسيكون من الممكن التحقق من نتيجة التنفيذ.&#x20;

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

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

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

<figure><img src="/files/73cae9e060040c64be9ffb2f75dbecaa73733846" alt=""><figcaption></figcaption></figure>

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

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

<figure><img src="/files/e8e8ad3a1a455739a58f1e9004e0adf2a95fdd78" alt=""><figcaption></figcaption></figure>

بعد النقر على زر “New”، تُفتح صفحة تحتاج فيها إلى تحديد:

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

<figure><img src="/files/6c7148e9e545233d6ba7d1704f602798da7db54a" alt=""><figcaption></figcaption></figure>

ستظهر قسيمة الخصم في “Product catalog“ ضمن قسم “Coupons”، ويمكنك عرض معرّف الخصم بالانتقال إلى قائمة القسيمة:

<figure><img src="/files/02c8177a89f87df9e2d8b329b6c95142b06015dd" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/417267815654a99ffe502f96c02a224cdb114b1d" alt=""><figcaption></figcaption></figure>

### كيفية إضافة خصم إلى الطلب

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

في الآلة الحاسبة الخاصة بالكتلة، قبل تعريف **payment\_sum** المتغير، عيّن المتغير **coupon\_id** المتغير بإسناد معرّف الخصم من الحساب الشخصي في Stripe إليه.

<figure><img src="/files/e31e9bef715b5c2665bd7ddfac75286d4807a540" alt=""><figcaption></figcaption></figure>

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

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

<figure><img src="/files/a8b8b347fbbac0679705ca78a62f85f62dec5928" alt=""><figcaption></figcaption></figure>

<details>

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

`stripe_subscription = 'اشتراك بريميوم'` \
`interval = 'month'` \
`payment_description = 'دفعة اختبارية في Stripe'` \
`currency = 'USD'` \
`coupon_id = 'معرّف قسيمتك'` \
`stripe_add_subscription_discount(stripe_subscription_id, coupon_id)` \
`stripe_tax_id = 'معرّف الضريبة'` \
`payment_sum = 90`

</details>

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

<figure><img src="/files/f2ee7a6da7ec52c70fa048d2c1ca7bffa919f4ce" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
لمزيد من المعلومات حول إنشاء اشتراك، راجع قسم "كيفية إعداد المدفوعات المتكررة" الرابط "[كيفية إعداد المدفوعات المتكررة](#kak-nastroit-rekurrentnye-platezhi)"
{% endhint %}

### كيفية حذف/تغيير خصم الاشتراك

يمكن حذف الخصم المرفق بالاشتراك أو استبداله بخصم آخر.

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

<figure><img src="/files/bf152c5e28d854cd4b4ea84ed6a427f2cd24c3d9" alt=""><figcaption></figcaption></figure>

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

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

{% hint style="info" %}
يمكنك قراءة كيفية الحصول على معرّف الخصم في قسم "كيفية إنشاء قسيمة والحصول على معرّف الخصم". الرابط "[كيفية إنشاء قسيمة والحصول على معرّف الخصم](#kak-sozdat-kupon-i-poluchit-id-skidki)".
{% endhint %}

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

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

<figure><img src="/files/756c1b6b61c267f0e934bf2decee014ffec19bdb" alt="" width="563"><figcaption></figcaption></figure>

هذه الردود غير مرئية للمستخدم، وتظهر للمشغّل فقط.

يجب أن يكون نوع المقارنة "**مطابقة تامة"**

كذلك، بعد نجاح الدفع، يتم تعيين المتغير **stripe\_payment\_completed** إلى **True.**

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

<figure><img src="/files/f5aa77521fb014f9556f9200416b69ad93621fe9" alt=""><figcaption></figcaption></figure>

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

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

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

لاختبار التكامل، يمكنك استخدام المفتاح السري من بيئة الاختبار. للقيام بذلك، بدّل إلى وضع الاختبار في الحساب الشخصي لـ Stripe باستخدام المفتاح الموجود في القائمة اليمنى&#x20;

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

بعد ذلك، نفّذ الإعداد الموضح في بداية هذا الدليل. أدخل المفتاح السري الاختباري وأضف عنوان الـ webhook إلى بيئة الاختبار.

رقم بطاقة الاختبار

4242 4242 4242 4242\
أي تاريخ في المستقبل\
CVC - أي ثلاثة أرقام

إذا لم يعمل شيء ما، فقارن البيانات بالبيانات الموجودة على الموقع الرسمي. الرابط[ على الموقع الرسمي.](https://stripe.com/docs/testing#regulatory-cards)


---

# Agent Instructions: 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/aldfa/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.
