ابدأ بجني الأموال بإضافة الدفع الإلكتروني إلى موقعك في 5 دقائق

وصلني هذا السؤال من أحد الأعضاء وبما أنه سؤال شائع قررت كتابة موضوع منفصل حوله.

حسناً لنبدأ، لنقم بإعادة السؤال:

هل يمكن اضافه طرق دفع في الموقع عن طريق flask؟

نعم ممكن وفلاسك ليس لها دخل حقيقة، سواء بايثون أو php أو javascript أو أي تقنية.

الفكرة في الدفع فقط في التعامل مع API

ماهي الـ API - Application Programming Interface؟

نحن البشر نتواصل باستعمال الأذن والفم، الفم يتكلم والأذن تسمع… هكذا لدينا نقطة مشتركة أو interface :smile:

لكن في عالم البرمجيات، قاموا بعمل طريقة تواصل معينة تعرف بالـ 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، وأشهرها:

  1. موقع stripe.com: أجمل شيء في الموقع هو الدعم الكامل لجميع لغات البرمجة (خصوصاً في الـ docs).
    مثلاً هذا شرح لكيفية استخدام الخدمة مع بايثون: https://stripe.com/docs/api?lang=python
    وكما اخبرتك سابقاً، الأمر لا علاقة له بلغة معينة، ولكن هم يوفروا شرح لجميع لغات البرمجة :wink:

شرح لـ flask: https://testdriven.io/blog/adding-a-custom-stripe-checkout-to-a-flask-app/
وهنا شرح لـ django: https://testdriven.io/blog/django-stripe-tutorial/

  1. موقع ayden.com: ويتعامل معهم شركات عملاقة مثل مايكروسوفت وspotify و uber، تفاصيل استعمال الخدمة: https://www.adyen.com/our-solution/online-payments#explore

  2. موقع paypal.com: بالتأكيد أنت تعرفه، وهو يوفر خدمات معالجة الدفع الإلكتروني كذلك.
    للإطلاع على التوثيق خاصتهم، ادخل على هذا الرابط: https://developer.paypal.com/docs/api/payments/v2/

تكلفة الخدمات العالمية

في الواقع هذه الخدمات مثل السحر، فكر معي…
أنت تعطيها فقط بيانات البطاقة الإئتمانية وهي تعالج لك العملية كاملة (بما يتضمن التعامل مع جميع شركات البطاقات الائتمانية MasterCard VisaCard وغيرها)، والخدمة تحتفظ لك بالأموال حتى تطلبها منهم… يا سلام :heart_eyes:

في إحدى الرويات الألمانية، هناك شخصية ساحر اسمه Rumpelstiltskin

rumple
مصدر الصورة: giphy

دائماً ما كان هذا الساحر يخبر الناس قبل أن يطلبوا منه شيء معين:

السحر دائماً يتطلب منك ثمن

الخلاصة التي أريد إيصالها لك هي أن هذه الخدمة أشبه بالسحر، لذا يجب أن تتوقع أنها باهضة الثمن :smile:

غالباً تأخذ هذه الخدمات مقابل كل عملية دفع 2.9% + 30 سنت، مثال:

لو دفع لك زبون مبلغ 100 دولار فسيأخذ منك الموقع الذي عالج عملية الدفع 2.9 دولار وثلاثين سنت = 3.2$
ولو دفع لك الزبون مبلغ 500 دولار فسيأخذ الموقع 14.5 دولار وثلاثين سنت = 14.8$

الخدمات المحلية

ربما تتساءل، طالما لدي خدمة عالمية ممتاز، لماذا أحتاج خدمة محلية ربما قد تكون أسؤأ في الجودة؟

السبب، هو تكلفة الخدمة العالمية الباهضة ربما قد تكون في مصر وتريد عمل خدمة أو تطبيق فقط لأصحاب مصر، فمن الأفضل لك وقتها أن تستعمل الخدمات المصرية لمعالجة عمليات الدفع.

إذا أردت الإطلاع على أي خدمة في بلدك اكتب في قوقل مثلاً: “دفع اونلاين السعودية” وستجد الخدمات المتاحة في السعودية وهكذا :wink:

  • أعتقد بأنك تعرف مسبقاً كيف تختار الخدمة الممتازة خصوصاً من تاريخها وآراء العملاء وسهولة الاستعمال وتوفر خيارات متعددة… إلخ.

سحب الأموال والمشكلة مع البنوك في المنطقة العربية

image
مصدر الصورة: Steemit

إذا كنت تتعامل مع شركة عالمية فإن عملية سحب الأموال (تعرف بالـ payout)، في آخر السنة مثلاً، يجب أن تأخذها في الحسبان :thinking:

مثلاً، stripe لا يدعم سحب أموالك إلى البنوك العربية، أي ربما ستحتاج إلى عمل حساب بنك أجنبي ثم ترسلها إلى حساب بنك عربي… وكل هذا سيتطلب منك المزيد من الأموال.

أما بالنسبة لفودافون كاش فهو سيأخذ منك 2% من المبلغ المراد سحبه.

وكل خدمة أخرى لديها بعض النقاط التي يجب أن تفكر فيها قبل استعمال الخدمة في موقعك.

17 Likes

موضوع رائع في الوقت المناسب

3 Likes

بارك الله فيك الشرح كافي و وافي

2 Likes

ما هذه الصدفة الجميلة :smile::smile:
لقد طرحت سؤالا منذ 10 دقائق في قسم الاستفسارات أسأل فيه عن ما هو API ؟

2 Likes

سعيد بأنكم استفدتم @asmaa_salih @Tahamohmmed :blush:

2 Likes

ما أحسن الصدف :smile:

سأقوم بالإشارة إليه في الموضوع الآخر للزوار الآخرين

3 Likes

رائع كالعادة بشمهندس ياسر … محدد و بسيط … شكرا ليك :ok_hand::clap:

2 Likes

على الرحب والسعة يا نورا :blush:

3 Likes

استاذ لو سمحت عندي سؤال … هل يجب ان اتعلم الفوتوشوب مع البرمجه ( سمعت انه مهم خاصه في ال front end )

4 Likes

تصميم الواجهات وتجربة المستخدم يعتبر مسار منفصل بحد ذاته ويسمى بـ UI/UX Design

دورك كمطور واجهات Front-end developer هو أن تبدأ من حيث إنتهاء المصمم لذلك لا يجب عليك أن تكون متعمق التصميم ومفاهيمة ولكن أن تكون ملم بالفوتوشوب أو الـ XD هو إضافة كبيرة تحسب لصالحك وتساعدك على أن تكون مطور واجهات أفضل وستساعدك على إنجاز الكثير بفاعلية أكبر.

لذا نصيحتي لك هي أن تتعلم أساسيات هذه الأدوات ومع الوقت ستجد نفسك مرتاح للتعامل معها بما يساعدك على إنجاز مهامك كمطور واجهات.

وخلي في بالك أن مصمم الواجهات الذي ليس لديه خلفية عن تطوير الواجهات يواجه صعوبة في الحصول على فرص كثير وكذلك بالنسبة لمطور الواجهات

@Tahamohmmed

7 Likes

شكرا جزيلا على النصيحه ولكن استاذ هذه العباره لم افهمها
“وخلي في بالك أن مصمم الواجهات الذي ليس لديه خلفية عن تطوير والواجهات يواجه صعوبة في الحصول على فرص كثير وكذلك بالنسبة لمطور الواجهات”
هل تقصد ان front end developer يجب ان يتعلم في البدايه full stack web develop

4 Likes

لا شكر على واجب.

اعتذر عن ذلك كان في حرف واو زائد يجعل الجملة مربكة. خليني اعيد صياغتها

"خلي في بالك أن مصمم الواجهات (UI/UX Designr) الذي ليس لديه خلفية عن تطوير الواجهات (front end) يواجه صعوبة في الحصول على فرص كثيرة.

وكذلك بالنسبة لمطور الواجهات (Front-end developer) لذي ليس لديه خلفية عن تصميم الواجهات (UI/UX Design) ) يواجه صعوبة في الحصول على فرص كثيرة."

هل تقصد ان front end developer يجب ان يتعلم في البدايه full stack web develop.

لا لم أقصد هذا

3 Likes

السلام عليكم لقد أعجبني الموضوع وأردت مشاركة الأستاذ محمد فيه
في البداية يجب أن نعرف
من هو مصمم الويب : هو الشخص الذي لا يتعامل مع الكود، يتعامل فقط مع UI/ UX وذلك باستخدام تقنياته التي تعتمد على برمجيات التصميم مثل: …Adobe photoshop، Sketch ،Adobe illustrator ،Adobe XD
من أجل تصميم واجهات المشروع والصفحات، واختيار الالوان وأماكن العناصر الخاصة بالصفحة. يعني يقوم بتهيئة المشروع وكيف سيكون شكله مستقبلا قبل أن يتم تكويده.
لماذا يا ترى يقول مصمم الويب بهذا العمل قبل أن يكود ؟ الاجابة ببساطة لعرضه على صاحب المشروع، وهذا الأخير له الحق في إبداء رأيه فيه (ان كان قد أعجبه أو لا) لذلك يقوم المصمم بصناعة المشروع بصريا بكل متطلباته، ثم يقوم بعرض Prototype على صاحب المشروع حتى يرضى تماما عليه. وهو بذلك يوفر جهدا ووقتا على مطور واجهات الويب بعدها تأتي مهمة مطور واجهات الويب الذي يهتم فقط بالواجهة وتجسيد Prototype الاصلي الذي وضعه مصمم الويب وتهيئته من حيث الشكل على شكل أكواد برمجية بمختلف التقنيات البرمجية الخاصة بهذا المجال، وبذلك فهو لا يحتاج الى برامج التصميم لأنه يتعامل مع اللغات البرمجية مباشرة، ولكن من المهم أن تكون عنده بعض المهارات في الفوتوشوب وحتى غيرها من البرامج التي يستخدمها المصمم فبرنامج مثل الفوتوشوب مثلا تسمح له بنسخ كود css كامل وتعديله بما يتوافق مع Prototype على الواجهة.
ثم تأتي مهمة Back End Developer ومهمته ربط كل ما قام به المصمم ومطور واجهات الويب وبعث فيه الحياة يجعله يشتغل ويرسل ويستقبل البيانات بين الواجهة وقاعدة البيانات فعمله لا يراه المستخدم يكون مخفي.
اما Full Stack Developer فهو الشخص الذي يجيد التعامل مع front End و Back End ليس مستحيلا ولكن يتوجب عليك أن تدرس لسنوات.
اما لماذا يجب أن تكون لدى المصمم والمطور معلومات عن مجالي بعضهما البعض السبب أنه عندما تعمل مع شخص في مشروع واحد من المهم أن تفهم ما يقوم به لتتضح لك الرؤية لان توافقكما سيخرج عمل رائع للعميل.

4 Likes

إضافة قيمة لار :star_struck: شكراً لك إختصرتي كل شئ ببساطة و وضوح

3 Likes

العفو أستاذ نتعلم منكم أنت والأستاذ ياسر

3 Likes

شكرا جزيلا @L.Da كان الشرح وافي وكافي ( اختصرتي علي عناء البحث . شكرا جزيلا )
وشكرا لك ايضا استاذ الان فهمت الفرق بين هذه الانواع @Alhakem :relaxed:

4 Likes