Setting Up BayarCash in Laravel the Right Way
जर तुम्ही मलेशियाई मार्केटसाठी SaaS तयार करत असाल, तर तुम्हाला कालांतराने FPX ची गरज भासेल. BayarCash हा एक सामान्य पर्याय आहे.
SDK ही समस्या नाही. समस्या तुमच्या आर्किटेक्चरमध्ये (architecture) आहे. जर तुम्ही कंट्रोलरमधून (controller) SDK ला कॉल केले किंवा तुमच्या व्ह्यूजमध्ये (views) स्टेटस कोड्स हार्डकोड केले, तर तुम्हाला प्रोडक्शनमध्ये समस्यांना सामोरे जावे लागेल.
मी तीन वेगवेगळ्या Laravel ॲप्समध्ये BayarCash लागू केले आहे. प्रत्येक वेळी यशस्वी होणारा पॅटर्न खालीलप्रमाणे आहे.
Key Terms To Master
- Portal: तुमची मर्चंट चेकआउट कॉन्फिगरेशन.
portal_keyवापरा. - API Token: हे तुमच्या आउटगोइंग कॉल्सना ऑथेंटिकेट करते.
- Secret Key: हे तुमच्या पेलोड्सवर (payloads) स्वाक्षरी करते आणि वेबहुक्स (webhooks) व्हेरिफाय करते. हे सुरक्षित ठेवा.
- Payment Intent: तुम्ही चार्ज पोस्ट करता, एक URL प्राप्त करता आणि वापरकर्त्याला रिडायरेक्ट करता.
- Channel: कच्च्या (raw) नंबरऐवजी नेहमी SDK constants वापरा.
Structure Your Code Well
तुमच्या डोमेन कोडला कधीही कच्चा (raw) BayarCash पेलोड दिसू नये. तुम्हाला तीन लेयर्सची आवश्यकता आहे:
- एक थिन क्लायंट रॅपर (thin client wrapper): हे कॉन्फिगरेशन हाताळते आणि टाईप्ड मेथड्स (typed methods) प्रदान करते.
- एक गेटवे (gateway): हे इंटरफेस लागू करते आणि तुमच्या डोमेन भाषेत संवाद साधते.
- एक फॅक्टरी (factory): हे सक्रिय गेटवे निवडते जेणेकरून तुम्ही BayarCash ऐवजी सहजपणे Stripe वापरू शकाल.
Binding a Fake Gateway
जर तुम्ही API token प्रदान केला नाही, तर तुमच्या सर्विस कंटेनरमध्ये (service container) एक Fake प्रोव्हायडर बाइंड करा. यामुळे तुमचे टेस्ट्स नेटवर्कशिवाय चालू शकतात आणि तुमचे लोकल बिल्ड्स सक्रिय बिलिंगशिवाय चालू शकतात.
Webhook Best Practices
वेबहुक (webhook) हा तुमचा 'सोर्स ऑफ ट्रुथ' (source of truth) आहे. प्रोडक्शनमध्ये गोंधळ टाळण्यासाठी या नियमांचे पालन करा:
- CSRF Exempt: तुमच्या वेबहुक रूटने CSRF प्रोटेक्शन बायपास केले पाहिजे.
- Verify Signatures: इतर काहीही करण्यापूर्वी नेहमी सिग्नेचर व्हेरिफाय करा.
- The 200 Rule: एकदा तुम्ही सिग्नेचर व्हेरिफाय केले की, 2xx रिस्पॉन्स परत करा.
- Avoid Retries: जर तुम्ही 500 एरर परत केली, तर BayarCash तुमचा वेबहुक 40 वेळा पुन्हा प्रयत्न (retry) करेल. यामुळे तुमचा सर्व्हर क्रॅश होऊ शकतो. एरर्स लॉग करा, पण तरीही 200 रिस्पॉन्स द्या.
- Idempotency: तुमचे लॉजिक ड्युप्लिकेट ऑर्डर्स तयार न करता एकाच वेबहुकला दोनदा हाताळू शकते याची खात्री करा.
Checklist for Success
• कोरिलेशन की (correlation key) म्हणून order_number वापरा. ते 30 कॅरेक्टर्सपेक्षा कमी ठेवा.
• वापरकर्त्याला रिडायरेक्ट करण्यापूर्वी एक 'pending' लोकल रेकॉर्ड सेव्ह करा.
• मुख्य अधिकृत स्त्रोत म्हणून सर्व्हर-टू-सर्व्हर कॉल बॅकचा (server-to-server callback) वापर करा.
• रिकॉन्सिलिएशनसाठी (reconciliation) रिटर्न URL चा सेफटी नेट म्हणून वापर करा.
• इंटिजर स्टेटस कोड्सना त्वरित तुमच्या स्वतःच्या Enums मध्ये मॅप करा.
पेमेंट इंटिग्रेशन्समध्ये खऱ्या पैशांचा व्यवहार असतो. तुमच्या सिग्नेचर व्हेरिफिकेशन आणि आयडेम्पोटन्सीची (idempotency) इतर कोणत्याही गोष्टीपेक्षा जास्त चाचणी घ्या.
Source: https://dev.to/nasrulhazim/setting-up-bayarcash-fpx-in-laravel-the-right-way-4b2n
