وصلني هذا السؤال من أحد الأعضاء وبما أنه سؤال شائع قررت كتابة موضوع منفصل حوله.
حسناً لنبدأ، لنقم بإعادة السؤال:
هل يمكن اضافه طرق دفع في الموقع عن طريق flask؟
نعم ممكن وفلاسك ليس لها دخل حقيقة، سواء بايثون أو php أو javascript أو أي تقنية.
الفكرة في الدفع فقط في التعامل مع API
ماهي الـ API - Application Programming Interface؟
نحن البشر نتواصل باستعمال الأذن والفم، الفم يتكلم والأذن تسمع… هكذا لدينا نقطة مشتركة أو interface
لكن في عالم البرمجيات، قاموا بعمل طريقة تواصل معينة تعرف بالـ API بحيث يرسل البرنامج المعلومات حسب
- غالباً يستعمل بروتوكول HTTP (الذي نفتح به المواقع) لعمل API…
لاحظ رابط المنتدى يبدأ بـ https، ورابط سيرفر الفلاسك يبدأ بـ http
مثلاً عندنا endpoint اسمها GET /admin
تدخل لصفحة الأدمن
وendpoint اسمها POST /meals/add
تضيف وجبة
وendpoint اسمها GET /meals
تعرض الوجبات
والمتصفح يقوم بارسال طلبات على هذه الـ endpoints لكي يرسل ويستقبل البيانات ويعرضها لك على شاشة المتصفح.
- إذا كنت تريد تعلم برمجة المواقع والـ endpoints، أنصحك بالإنضمام إلى أكاديمية كورتابز لتدريب المبرمجين:
ما علاقة الـ API بطريقة الدفع؟
تتذكر حينما أخبرتك أن البشر يستعملوا الفم والأذن لارسال واستقبال المعلومات، في الواقع الأمر ليس دقيقاً.
لأن الأذن بإمكانها استقبال البيانات من التلفاز أو من الهاتف أو من أي مصدر صوت…
أي أنها لا تنتظر أن يحدث الفم, حصراً, الصوت ولكن هي تنتظر الصوت من أي مصدر.
وهنا تأتي فكرة الدفع، حيث بإمكان تطبيقك (موقعك) إرسال بيانات البطاقة الإئتمانية credit card إلى API الخاصة بتطبيق آخر لكي يقوم بمعالجة عملية الدفع.
وهذه الـ API لا تنتظر منك أي شيء غير بيانات البطاقة الائتمانية لمعالجة العملية.
مصدر الصورة: squareup.com
الخدمات المتوفرة والفروقات
الخدمات العالمية
يوجد العديد من الخدمات المتوفرة التي تعطيك API لمعالجة عمليات الدفع وتعرف هذه الخدمات بـ Payment Gateway، وأشهرها:
- موقع stripe.com: أجمل شيء في الموقع هو الدعم الكامل لجميع لغات البرمجة (خصوصاً في الـ docs).
مثلاً هذا شرح لكيفية استخدام الخدمة مع بايثون: https://stripe.com/docs/api?lang=python
وكما اخبرتك سابقاً، الأمر لا علاقة له بلغة معينة، ولكن هم يوفروا شرح لجميع لغات البرمجة
شرح لـ flask: https://testdriven.io/blog/adding-a-custom-stripe-checkout-to-a-flask-app/
وهنا شرح لـ django: https://testdriven.io/blog/django-stripe-tutorial/
-
موقع ayden.com: ويتعامل معهم شركات عملاقة مثل مايكروسوفت وspotify و uber، تفاصيل استعمال الخدمة: https://www.adyen.com/our-solution/online-payments#explore
-
موقع paypal.com: بالتأكيد أنت تعرفه، وهو يوفر خدمات معالجة الدفع الإلكتروني كذلك.
للإطلاع على التوثيق خاصتهم، ادخل على هذا الرابط: https://developer.paypal.com/docs/api/payments/v2/
تكلفة الخدمات العالمية
في الواقع هذه الخدمات مثل السحر، فكر معي…
أنت تعطيها فقط بيانات البطاقة الإئتمانية وهي تعالج لك العملية كاملة (بما يتضمن التعامل مع جميع شركات البطاقات الائتمانية MasterCard VisaCard وغيرها)، والخدمة تحتفظ لك بالأموال حتى تطلبها منهم… يا سلام
في إحدى الرويات الألمانية، هناك شخصية ساحر اسمه Rumpelstiltskin
مصدر الصورة: giphy
دائماً ما كان هذا الساحر يخبر الناس قبل أن يطلبوا منه شيء معين:
السحر دائماً يتطلب منك ثمن
الخلاصة التي أريد إيصالها لك هي أن هذه الخدمة أشبه بالسحر، لذا يجب أن تتوقع أنها باهضة الثمن
غالباً تأخذ هذه الخدمات مقابل كل عملية دفع 2.9% + 30 سنت، مثال:
لو دفع لك زبون مبلغ 100 دولار فسيأخذ منك الموقع الذي عالج عملية الدفع 2.9 دولار وثلاثين سنت = 3.2$
ولو دفع لك الزبون مبلغ 500 دولار فسيأخذ الموقع 14.5 دولار وثلاثين سنت = 14.8$
الخدمات المحلية
ربما تتساءل، طالما لدي خدمة عالمية ممتاز، لماذا أحتاج خدمة محلية ربما قد تكون أسؤأ في الجودة؟
السبب، هو تكلفة الخدمة العالمية الباهضة ربما قد تكون في مصر وتريد عمل خدمة أو تطبيق فقط لأصحاب مصر، فمن الأفضل لك وقتها أن تستعمل الخدمات المصرية لمعالجة عمليات الدفع.
- أحد هذه الخدمات في مصر مثلاً هي فودافون كاش: https://www.vodafone.com.eg/theme/Cash/online_payment-ar.html
رسوم الحوالة في خدمتهم هي فقط 1 جنية مصري (في تاريخ كتابة هذا المقال) مذكورة هنا: https://www.vodafone.com.eg/theme/Cash/money_transfer-ar.html
إذا أردت الإطلاع على أي خدمة في بلدك اكتب في قوقل مثلاً: “دفع اونلاين السعودية” وستجد الخدمات المتاحة في السعودية وهكذا
- أعتقد بأنك تعرف مسبقاً كيف تختار الخدمة الممتازة خصوصاً من تاريخها وآراء العملاء وسهولة الاستعمال وتوفر خيارات متعددة… إلخ.
سحب الأموال والمشكلة مع البنوك في المنطقة العربية
مصدر الصورة: Steemit
إذا كنت تتعامل مع شركة عالمية فإن عملية سحب الأموال (تعرف بالـ payout)، في آخر السنة مثلاً، يجب أن تأخذها في الحسبان
مثلاً، stripe لا يدعم سحب أموالك إلى البنوك العربية، أي ربما ستحتاج إلى عمل حساب بنك أجنبي ثم ترسلها إلى حساب بنك عربي… وكل هذا سيتطلب منك المزيد من الأموال.
أما بالنسبة لفودافون كاش فهو سيأخذ منك 2% من المبلغ المراد سحبه.
وكل خدمة أخرى لديها بعض النقاط التي يجب أن تفكر فيها قبل استعمال الخدمة في موقعك.