الدفع أكثر مكان فيه الخطأ يكلّف فلوس حقيقية، ومو دايم فلوسك: أحيانًا عميل ينسحب منه مرتين، وأحيانًا تبيع بريال. هذي ست فحوصات سوّها قبل ما تفعّل الوضع الحقيقي، سواء تستخدم Moyasar أو Tap أو HyperPay أو Stripe.
1. السعر يتحدد في السيرفر، مو في المتصفح
إذا صفحة الدفع ترسل المبلغ من المتصفح لبوابة الدفع، أي أحد يقدر يغيّره قبل الإرسال ويدفع ريال بدل 500. السيرفر لازم يحسب المبلغ بنفسه من المنتجات والكميات. إذا البوابة تاخذ المبلغ من المتصفح، وبعض نماذج الدفع كذا، لازم السيرفر يتأكد بعد الدفع إن المبلغ المدفوع يطابق الطلب قبل ما يعتبره مدفوع.
2. الطلب يتأكد من البوابة، مو من صفحة «تم الدفع»
كثير من المنتجات تسجّل الطلب مدفوع لما يوصل العميل لصفحة النجاح. المشكلة: إذا سكّر الصفحة قبل لا ترجع، ينسحب المبلغ والطلب ما ينسجّل. إذا عرف أحد رابط صفحة النجاح، يقدر يفتحه بدون ما يدفع. الصح إن السيرفر يتأكد من البوابة نفسها، عن طريق webhook، أو يسأل البوابة عن حالة الدفع ومبلغه قبل ما يسجّل الطلب.
3. الهللات
كثير من البوابات، مثل Moyasar و Stripe، تاخذ المبلغ بأصغر وحدة: 100 هللة تساوي ريال. فإذا أرسلت 50 وأنت تقصد 50 ريال، ينسحب 50 هللة. جرّب منتج سعره معروف، وتأكد إن اللي ينسحب نفس السعر بالضبط، مع الضريبة.
4. الدفع ما يتسجّل مرتين
العميل يضغط زر الدفع مرتين، أو البوابة ترسل نفس الإشعار (webhook) أكثر من مرة، وهذا طبيعي ويصير. إذا السيرفر يسجّل كل إشعار كطلب جديد، يطلع عندك طلبين أو يتفعّل الاشتراك مرتين. كل عملية دفع لازم تتسجّل مرة وحدة بس، برقمها من البوابة.
5. وضع التجربة والوضع الحقيقي
مفاتيح التجربة غير مفاتيح الوضع الحقيقي، والـ webhook لازم يتسجّل في الوضع الحقيقي بعد. قبل الإطلاق، سوّ عملية حقيقية بمبلغ صغير ببطاقة مدى، وبعدها بـ Apple Pay إذا عندك. مدى أكثر بطاقة عند عملائك في السعودية، وتمر بخطوة تحقق (OTP) لازم تشتغل زين على الجوال.
6. الاسترجاع
قبل ما تحتاجه: تعرف كيف ترجّع مبلغ لعميل؟ من وين؟ مين عنده صلاحية يسويه؟ هل منتجك يعرف إن الطلب انسترجع ويقفل الخدمة؟ جرّب استرجاع كامل واسترجاع جزئي في وضع التجربة.
تبي أحد يمر عليها معك؟
إذا عندك مشكلة دفع وحدة واضحة، مكالمة استشارية تكفي غالبًا. إذا تبي أحد يقرأ منتجك كامل قبل الإطلاق، تدقيق جاهزية الإطلاق يقول لك وش لازم ينصلح أول. إذا منتجك على Bolt، شوف بعد مشاكل Bolt الأشهر.