nextjs-rtl-starter

مفتوح المصدررخصة MIT

دفع Tap في Next.js. بالعربية من أول سطر.

واجهة عربية تنعكس كما يجب، وصفحة دفع جاهزة بمدى وApple Pay وSTC Pay وKNET، والخادم يتحقق من كل دفعة قبل اعتمادها.

git clone https://github.com/ahzab/nextjs-rtl-starter
  • mada
  • Visa
  • Mastercard
  • Apple Pay
  • STC Pay
  • KNET
صفحة الدفع بالعربية مع حقل البطاقة من Tap
الإيصال بعد دفعة تجريبية ناجحة
تحقق الخادم من Tapstatus: CAPTURED

طرق الدفع، كما يتوقعها العميل.

كلها عبر Tap. البطاقات تعمل بمفاتيح الاختبار فورًا، والبقية تفعّلها بمتغير واحد بعد أن يفعّلها Tap في حسابك.

  • madaVisaMastercardكل العملات

    مدى وVisa وMastercard

    لا شيء، تعمل بمفاتيح الاختبار مباشرة

    تعمل فورًا
  • Apple Payكل العملات

    Apple Pay

    تسجيل نطاقك لدى Tap، وتظهر في Safari

    NEXT_PUBLIC_TAP_APPLE_PAY=true
  • STC PaySAR

    STC Pay

    تفعيلها في حسابك لدى Tap

    NEXT_PUBLIC_TAP_STC_PAY=true
  • KNETKWD

    KNET

    تفعيلها في حسابك لدى Tap

    NEXT_PUBLIC_TAP_KNET=true
10.000 KWD10.00 SAR

الدينار الكويتي بثلاث خانات عشرية والريال بخانتين، والقالب يأخذ ذلك من ⁦Intl⁩ بدل أن يثبّته في الكود.

رحلة الدفعة

التفاصيل التي تتعثر فيها أغلب عمليات الربط.

لا شيء منها صعب، لكنها موزعة في التوثيق. هنا تجدها في مكان واحد، ومعها اختبارات.

  1. 01

    حقل البطاقة من Tap

    رقم البطاقة يبقى داخل إطار Tap، ولا يصل إلى خادمك إلا رمز.

    tok_…
  2. 02

    ⁦3-D Secure⁩ والعودة

    يمر العميل بتحقق البنك، ثم يعود إلى صفحة النتيجة بلغته.

    ⁦3-D Secure⁩
  3. 03

    التحقق على الخادم

    لا يُعتمد الطلب مدفوعًا قبل جلب الدفعة من Tap ومطابقة حالتها ومبلغها وعملتها.

    CAPTURED
  4. 04

    توقيع الـ webhook

    يُعاد حساب hashstring بعدد الخانات العشرية الصحيح لكل عملة، وإلا فشلت كل التواقيع.

    hashstring
صفحات جاهزة

أربع صفحات تعمل، من الطلب إلى الإيصال.

كل ما يراه العميل في القالب، بالعربية والإنجليزية. هذه لقطات حقيقية من القالب في وضع الاختبار.

صفحة المتجر: طلب تجريبي بمبلغه، وزر واحد للدفع.

صفحة المتجر مع طلب تجريبي بمبلغ 10.00 ر.س
المكوّنات

واجهة تنعكس، وأرقام تبقى في مكانها.

هذه مكوّنات القالب نفسها بنصوصه. بدّل الاتجاه وانظر ما ينعكس وما يبقى.

ينعكس

الهوامش والأسهم والتخطيط بأكمله، عبر ⁦shadcn/ui⁩ مع ⁦rtl: true⁩.

لا ينعكس

المبالغ وأرقام البطاقات ورموز الطلبات. والقالب يعرض الأرقام اللاتينية في الواجهة العربية أيضًا.

components/receipt.tsx
رقم الطلب5573…5c65
طلب تجريبي‏10.00 ر.س‏
الإجمالي‏10.00 ر.س‏
طريقة الدفعVisa •••• 0026
حالة TapCAPTURED
components/receipt.tsx · alert.tsx
نتحقق من الدفع5573…5c65
طلب تجريبي‏10.00 ر.س‏
الإجمالي‏10.00 ر.س‏
بانتظار تأكيد Tap…
لم نجد هذا الدفع لدى Tap.
components/payment-methods.tsx
STC Payسنرسل رمز تحقق إلى هذا الرقم.
KNET غير مفعّل في حساب Tap هذايمكنك الدفع بالبطاقة.
أو بالبطاقة
components/test-mode-banner.tsx
وضع الاختبار: استخدم بطاقات Tap التجريبية

بيانات البطاقة تذهب إلى Tap مباشرة ولا تمر عبر خادمنا.

عشر دقائق إلى أول دفعة تجريبية.

  1. 01

    انسخ القالب

    انسخ المستودع، وشغّل ⁦npm install⁩، ثم انسخ ⁦.env.example⁩، ففيه مفاتيح Tap التجريبية العامة جاهزة.

  2. 02

    ادفع ببطاقة تجريبية

    شغّل ⁦npm run dev⁩، وادفع بإحدى بطاقات Tap التجريبية، ثم أكمل صفحة ⁦3-D Secure⁩.

  3. 03

    انتقل إلى مفاتيحك

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

$ git clone https://github.com/ahzab/nextjs-rtl-starter
$ cd nextjs-rtl-starter && npm install
$ cp .env.example .env.local
# Tap's public test keys are already in it
$ npm run dev
# open localhost:3000/ar, pay with a test card, expiry 01/39
قريبًا

تبيع اشتراكات؟

القالب المجاني يغطي الدفع لمرة واحدة. والنسخة المدفوعة تضيف ما تحتاجه الاشتراكات على Tap:

تابع المستودع على GitHub

قائمة الانتظار تُفتح قريبًا. تابع المستودع ليصلك الخبر.

  • خطط شهرية وسنوية على البطاقة المحفوظة، مع التجديد التلقائي وإعادة المحاولة والإلغاء
  • تسجيل الدخول ولوحة التحكم وصفحة الفوترة وحدود كل خطة
  • واجهة كاملة بالعربية والإنجليزية، وأسعار بالريال والدينار والدرهم
  • دليل للنشر، وتحديثات مستمرة
هل القالب مجاني؟

نعم، برخصة MIT، ويمكنك استخدامه في مشاريعك التجارية بلا قيود.

هل أحتاج إلى حساب في Tap لأجرّبه؟

لا. ملف ⁦.env.example⁩ يحوي مفاتيح Tap التجريبية العامة، وهي تكفي لأول دفعة تجريبية.

هل يحفظ القالب بيانات البطاقات؟

لا. بيانات البطاقة تذهب إلى Tap مباشرة، ولا يرى خادمك إلا رمزًا ورقم الدفعة.

هل هو تابع لشركة Tap؟

لا. مشروع مستقل وغير رسمي، ولا يتبع شركة Tap Payments.

ماذا عن الاشتراكات؟

هذه النسخة للدفع لمرة واحدة. الاشتراكات في النسخة المدفوعة، وقائمة انتظارها تُفتح قريبًا.

أول دفعة أقرب مما تظن.

ابدأ بمفاتيح الاختبار، وافتح حسابك في Tap حين تستعد للإطلاق.

الكود على GitHub