सैंडबॉक्स और परीक्षण वातावरण
टीएल; डीआर
मजबूत सैंडबॉक्स = पूर्ण अलगाव, सिंथेटिक/अवैयक्तिक डेटा, बाहरी प्रणालियों के यथार्थवादी सिमुलेटर, अनुमानित पक्ष और समय-यात्रा, अंतर्निहित पहचान और वेबहूक, पारदर्शी सीमा और मैट्रिक्स। खाद्य - पहुंच से बाहर, चाबियाँ - खुदाई, पदोन्नति - केवल चेकलिस्ट पर।
1) पर्यावरण मानचित्र और उनकी भूमिकाएँ
नियम: सैंडबॉक्स ≠ प्रोड। कोई भी कनेक्शन - वास्तविक साधनों/गेम/व्यक्तिगत डेटा तक पहुंच के बिना एकतरफा सिमुलेटर के माध्यम से।
2) डेटा: सिंथेटिक्स, गुमनामी, बैठना
डिफ़ॉल्ट सिंथेटिक्स। पासपोर्ट/कार्ड डेटा जनरेटर, वैध लेकिन गैर-वित्तीय PANs (परीक्षण BINs), दरों और शेष के लाइव पैटर्न।
मंच के लिए गुमनामी: पहचानकर्ताओं का टोकन, समुच्चय के लिए अंतर गोपनीयता, दुर्लभ संयोजनों को हटाना।
सिड्स और नियतावाद: एक टीम - एक राज्य।
bash make db-reset && make db-seed ENV=sandbox SEED=2025_11_03
समय-यात्रा: समय सीमा/समाप्ति परीक्षणों के लिए पर्यावरण का वैश्विक "घंटा"।
3) सिमुलेटर और प्लग (स्टब्स)
भुगतान/बैंक/पीएसपी
औथ/कैप्चर/रिफंड/पेआउट со сценариями: 'अनुमोदित', 'अस्वीकृत _ अपर्याप्त', '3ds _ आवश्यक', 'टाइमआउट', 'डुप्लिकेट'।
PSP वेबहूक: HMAC ने हस्ताक्षर किए, रिट्राई, देरी और "गंदा इंटरनेट"।
केवाईसी/एएमएल/प्रतिबंध
Ответы: 'क्लियर', 'पेप _ मैच', 'स्वीकृति _ हिट', 'डॉक _ मिसमैच', 'मैनुअल _ रिव्यू'।
समर्थन पहचान और दर की सीमा के रूप में।
खेल प्रदाता/कैटलॉग
लॉबी, फीचर, RTP/राउंड - छद्म-यादृच्छिक पीढ़ी, UX मामलों के लिए "भुगतान/विफलताओं" को नियंत्रित करती है।
विकल्प: सिम्युलेटर "गंभीरता" स्विच (खुश-पथ बनाम अराजकता)।
4) सैंडबॉक्स में वेबहूक
एचएमएसी हस्ताक्षर (v1), हेडर 'एक्स-इवेंट-आईडी', 'एक्स-टाइमस्टैम्प', विंडो ≤ 5 मिनट।
घातीय बैकऑफ, डीएलक्यू और रीप्ले के साथ रिट्रेज़।
कंसोल "resend" और प्रयासों के लॉग।
छद्म:pseudo
POST /psp/webhooks
Headers: X-Signature, X-Timestamp, X-Event-Id
Body: { event_id, type, data, attempt }
5) आदर्शवाद और निर्धारणवाद
सभी उत्परिवर्तन 'आइडेम्पोटेंसी-की' स्वीकार करते हैं।
सिमुलेटर कुंजी (TTL 24-72 h) द्वारा परिणाम संग्रहीत करते हैं।
"बीज नियतावाद": एक ही इनपुट के साथ - एक ही परिणाम (दोहराए जाने योग्य परीक्षणों के लिए)।
6) सुरक्षा और पहुंच
नेटवर्क अलगाव/वीपीसी, व्यक्तिगत रहस्य और डोमेन ('सैंडबॉक्स। उदाहरण। कॉम ')।
RBAC/ABAC: भूमिकाएँ "पार्टनर", "qa", "देव", टोकन के ऑस्प्रे न्यूनतम हैं।
दर-सीमा और कोटा: प्रति-किरायेदार/कुंजी, समझ में आने वाला '429 '/' रेट्री-आफ्टर'।
केवल केएमएस/वॉल्ट में रहस्य; नियमित घुमाव।
कोड/कॉन्फिग स्तर (फीचर-फ्लैग हार्ड ब्लॉक) पर वास्तविक भुगतान का निषेध।
7) एपीआई गेटवे और सैंडबॉक्स में अवलोकन
समान नीतियां: OAuth2/OIDC/JWT, CORS, WAF, DDoS प्रोफ़ाइल।
मेट्रिक्स: p50/p95/p99, 4xx/5xx, हिट-रेट लिमिट, लेटेंसी वेबहुक, आइडेम्पोटेंट हिट।
लॉग/ट्रेल्स: कोई पीआईआई नहीं; सहसंबंध 'ट्रेस _ आईडी'।
डैशबोर्ड "सैंडबॉक्स हेल्थ": अपटाइम, वेबहुक कतारें, सिम्युलेटर त्रुटियां।
8) फ़ीचर झंडे, संस्करण और संगतता
सैंडबॉक्स चरण में सुविधाओं को शामिल करना।
एपीआई के लिए सेमवर; स्वैगर/रेडोक सैंडबॉक्स में मूल्यह्रास/सूर्यास्त बैनर।
ग्राफक्यूएल स्टोरफ्रंट (यदि कोई हो) के लिए सतत प्रश्न।
9) सीआई/सीडी и पदोन्नति
1. बिल्ड/यूनिट →
2. अनुबंध/मॉक परीक्षण (OpenAPI/Protobuf/GraphQL SDL) →
3. एकीकरण बनाम सिमुलेटर →
4. स्टेज रिग्रेशन (anon. स्नैपशॉट) →
5. कैनरी в प्रोड।
गेट-चेकलिस्ट पदोन्नति: नीचे 12 में।
10) भागीदारों के लिए यूएटी स्क्रिप्ट (सैंडबॉक्स)
भुगतान: वेबहुक और पीएसपी त्रुटियों के साथ ऑथ/कैप्चर/रिफंड/पेआउट।
KYC/AML: सभी स्टेटस + मैनुअल एस्केलेशन।
Idempotency: दोहराया 'Idempotency-Key' - एक ही परिणाम।
दर-सीमा: '429' की सही हैंडलिंग।
समय खिड़कियां: टोकन की समाप्ति, 'रेट्री-आफ्टर', समय-यात्रा के मामले।
वेबहूक: हस्ताक्षर/रिट्रे/डीएलक्यू, मैनुअल रीप्ले और डेडअप।
11) डेटा नीति और गोपनीयता
सैंडबॉक्स/चरण में कभी भी असली पैन/केवाईसी डॉक स्टोर न करें।
गुमनामी: मास्किंग, प्रत्यक्ष पहचानकर्ताओं को हटाना, सिंथेटिक सहसंबंध।
लॉग और वेबहुक निकायों का टीटीएल भंडारण - रूटीन।
12) चेकलिस्ट
12. 1 एक नया सैंडबॉक्स लॉन्च करना
- पृथक नेटवर्क/आधार/कैश/वस्तु भंडारण
- केएमएस/वॉल्ट में बनाया गया रहस्य, भूमिका द्वारा पहुंच
- PSP/KYC/गेम सिमुलेटर वर्तनी और वर्तनी हैं
- स्वैगर/रेडोक + पोस्टमैन संग्रह (सैंडबॉक्स एंडपॉइंट)
- वेबहूक: एचएमएसी, रीट्री, डीएलक्यू, रीप्ले कंसोल
- दर/कोटा प्रोफाइल, मूल्यह्रास/सूर्यास्त बैनर (यदि कोई हो)
- डैशबोर्ड और अलर्ट (विलंबता, 5xx, 429, DLQ)
12. 2 प्रमोशन रिलीज (stage→prod)
- कॉन्ट्रैक्ट डिफ चेक (कोई ब्रेकिंग नहीं)
- मंच पर p95/p99 सामान्य लोड करें
- वेबहूक UAT, पहचान ठीक है
- फ़ीचर झंडे तैयार किए जाते हैं, एक रोलबैक योजना है
- चेंजेलॉग, माइग्रेशन गाइड और भागीदारों को मेलिंग
13) एंटीपैटर्न
एक सैंडबॉक्स जो "गुप्त रूप से" प्रॉड सेवाओं/डेटाबेस को छूता है।
चरण/सैंडबॉक्स में वास्तविक कार्ड/पासपोर्ट डेटा।
वेबहुक/रिट्रीट के बिना सिमुलेटर केवल एक "खुश पथ" है।
कोई पहचान नहीं - डुप्लिकेट भुगतान/दांव।
सभी भागीदारों के लिए एक सामान्य एचएमएसी रहस्य।
कोई सीमा या पारदर्शी 429/Retry-After नहीं हैं।
14) मिनी स्निपेट्स
.env। सैंडबॉक्स (उदाहरण)
dotenv
API_BASE=https://sandbox.api.example.com
OAUTH_ISS=https://sandbox.idp.example.com
PSP_SIM_URL=https://sandbox.psp-sim.example.com
KYC_SIM_URL=https://sandbox.kyc-sim.example.com
WEBHOOK_SECRET_ROTATION_DAYS=90
FEATURE_FORCE_SANDBOX_PAYMENTS=1
OpENAPI टुकड़ा (सैंडबॉक्स सर्वर)
yaml servers:
- url: https://sandbox.api.example.com/v1 description: Public Sandbox
पहचान स्यूडोकोड
pseudo if store.exists(idem_key): return store.get(idem_key)
res = do_business()
store.set(idem_key, res, ttl=72h)
return res
पीएसपी सिम्युलेटर ट्रिगर
json
{ "scenario": "payout", "case": "declined_insufficient", "payout_id": "p_123" }
15) सैंडबॉक्स वेधशाला और एसएलओ
अपटाइम सैंडबॉक्स एपीआई ≥ 99। 5% (एकीकरण शोकेस नहीं गिरना चाहिए)।
सामान्य लोड पर वेबहूक p95 ≤ 3 s से 2xx।
गेटवे ≤ 0 के बजट 5xx में त्रुटि। 1%.
डॉकिंग पोर्टल उपलब्ध है और अनुबंध के साथ सिंक्रनाइज़है।
16) शासन
पर्यावरण स्वामी (एसआरई/प्लेटफ़ॉर्म) और स्टीवर्ड एपीआई (अनुबंध)।
परिवर्तन, मूल्यह्रास/सूर्यास्त कैलेंडर को तोड़ ने के लिए आरएफसी प्रक्रिया।
सार्वजनिक सैंडबॉक्स के लिए अलग सीमा/कोटा और "उचित-उपयोग" मूल्य निर्धारण।
सारांश फिर से शुरू करें
सैंडबॉक्स डेवलपर्स के लिए एक उत्पाद है, न कि आधार की "प्रति"। "दे: सख्त अलगाव, सिंथेटिक डेटा, वेबहुक और रेट्रास के साथ पूर्ण-विकसित सिमुलेटर, पक्षों और समय-यात्रा के माध्यम से नियतावाद, झंडे और पारदर्शी सीमा। सब कुछ अनुबंधों, अवलोकन और शासन के साथ जोड़ें - और आपके एकीकरण तेज, सुरक्षित और अनुमानित हो जाएंगे, और दर्द रहित जारी करेंगे।