ऐप बनाएं
ऐप्स एक रेस्तराँ के खाते को स्कोप्ड, रद्द करने योग्य OAuth पहुँच के जरिए विस्तारित करते हैं। आपका कोड आपके सर्वर पर चलता है; प्लेटफ़ॉर्म registry, install ledger और billing rails रखता है। यह गाइड आपको शून्य से एक इंस्टॉल किए गए, मीटर किए गए ऐप तक ले जाती है।
1. अपना ऐप पंजीकृत करें
इसमें एक ऐप बनाएँ पार्टनर डैशबोर्ड: नाम, श्रेणी, आपको आवश्यक स्कोप, एक वैकल्पिक webhook URL, और आपका billing model। सबमिट करने पर एक OAuth client बनता है (client id + secret) और ऐप को समीक्षा में डाल देता है। एक बार जब कोई एडमिन इसे अनुमोदित कर देता है, यह App Store में दिखता है और इंस्टॉल किया जा सकता है।
2. इंस्टॉल कराएँ
एक रेस्तराँ मालिक आपके ऐप को उसके App Store विवरण पेज से इंस्टॉल करता है, आपके अनुरोधित स्कोप अनुदान करते हुए। इंस्टॉलेशन एक बनाता है AppInstallation और (सशुल्क ऐप्स के लिए) उनके वॉलेट के जरिए पहली अवधि का शुल्क लेता है।
3. API कॉल करें
इंस्टॉल करने वाले खाते के लिए एक OAuth टोकन का आदान-प्रदान करें, फिर इसे कॉल करें REST API इसके साथ। उपयोग रिपोर्ट करें, webhooks प्राप्त करें, या उनके डैशबोर्ड में एक पेज एम्बेड करें — नीचे कवर किया गया।
OAuth और टोकन
ऐप्स OAuth 2.0 (Laravel Passport) के साथ प्रमाणित होते हैं। आपके client credentials पार्टनर डैशबोर्ड से आते हैं। मानक authorization-code फ़्लो का उपयोग करें; अनुदान किया गया टोकन उन स्कोप को ले जाता है जिन्हें मालिक ने इंस्टॉल पर अनुमोदित किया था।
# Exchange an authorization code for an access token
curl -X POST https://www.menubarcode.comoauth/token \
-d grant_type=authorization_code \
-d client_id=YOUR_CLIENT_ID \
-d client_secret=YOUR_CLIENT_SECRET \
-d redirect_uri=YOUR_REDIRECT \
-d code=AUTH_CODE
# Call the API with the returned bearer token
curl https://www.menubarcode.com/api/v1/restaurants \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Accept: application/json"
टोकन स्कोप्ड हैं: एक कॉल जिसे आवश्यकता है orders:read तब तक विफल होती है जब तक मालिक ने इसे अनुदान न किया हो। न्यूनतम सेट का अनुरोध करें — समीक्षक इसे जाँचते हैं।
Session टोकन
अल्पकालिक, सर्वर-से-एम्बेड कॉल के लिए, एक सक्रिय इंस्टॉलेशन से एक session टोकन बनाएँ। टोकन इसके बाद समाप्त हो जाते हैं 60 सेकंड।
GET https://www.menubarcode.comapps/{appId}/session-token
# → { "token": "…", "expires_in": 60 }
एम्बेडेड ऐप्स
यदि आपका ऐप एक घोषित करता है embed_url, प्लेटफ़ॉर्म इसे मालिक के डैशबोर्ड के अंदर एक iframe में होस्ट करता है /apps/{appId}/embed. एक पूर्ण OAuth राउंड-ट्रिप के बिना एम्बेडेड पेज को प्रमाणित करने के लिए इसे एक session टोकन (ऊपर) के साथ जोड़ें।
Webhooks
अपने ऐप के इस पर इवेंट की सदस्यता लें webhook_url. डिलीवरी कतारबद्ध, पुनः प्रयास की जाती हैं और इसके साथ साइन की जाती हैं Standard Webhooks योजना आपके ऐप के signing secret का उपयोग करते हुए। आपका एंडपॉइंट एक सार्वजनिक HTTPS URL होना चाहिए (कोई private/loopback/metadata होस्ट नहीं) और लौटाना चाहिए 2xx जल्दी।
# A delivery your endpoint receives
POST https://your-app.com/webhooks
webhook-id: msg_...
webhook-timestamp: 1710000000
webhook-signature: v1,BASE64_HMAC
Content-Type: application/json
{ "type": "order.paid", "data": { "order_id": 123, ... } }
किसी payload पर भरोसा करने से पहले अपने secret के विरुद्ध हस्ताक्षर सत्यापित करें। देखें इवेंट सूची.
उपयोग बिलिंग
उपयोग-बिल किए गए ऐप्स इकाइयों की रिपोर्टिंग करके खपत मापते हैं। प्रत्येक रिपोर्ट आपके प्रति-इकाई मूल्य पर मालिक के वॉलेट से वसूली जाती है। एक अद्वितीय पास करें ref किसी रिपोर्ट को idempotent बनाने के लिए (समान ref के साथ पुनरावृत्ति को अनदेखा किया जाता है)।
curl -X POST https://www.menubarcode.com/api/app/usage \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Accept: application/json" \
-d quantity=1 \
-d ref=unique-key-per-event
| फ़ील्ड | प्रकार | नोट्स |
|---|---|---|
quantity | number > 0 | आवश्यक — खपत की गई इकाइयाँ |
ref | स्ट्रिंग ≤ 120 | वैकल्पिक idempotency कुंजी |
एंडपॉइंट लौटाता है 403 यदि टोकन किसी पंजीकृत ऐप का नहीं है या खाते के लिए ऐप इंस्टॉल नहीं है।
कैसे करें गाइड
एक billing प्रकार चुनें
- निःशुल्क — इंस्टॉल पर कोई शुल्क नहीं।
- आवर्ती — एक निश्चित मूल्य जो हर billing अवधि (डिफ़ॉल्ट 30 दिन) पर मालिक के वॉलेट से वसूला जाता है।
- उपयोग-आधारित — एक प्रति-इकाई मूल्य जो आपके उपयोग रिपोर्ट करने पर बिल किया जाता है।
जिम्मेदारी से स्कोप का अनुरोध करें
केवल उन स्कोप का अनुरोध करें जिन्हें आपका ऐप उपयोग करता है। किसी लाइव लिस्टिंग पर स्कोप बदलना ऐप को समीक्षा में वापस भेज देता है। देखें स्कोप संदर्भ.
अनइंस्टॉल पर साफ़-सफ़ाई करें
जब कोई मालिक अनइंस्टॉल करता है, प्लेटफ़ॉर्म ऐप के टोकन रद्द करता है और एक फ़ायर करता है app/uninstalled इवेंट। जब आप इसे प्राप्त करें तो उस खाते के लिए बैकग्राउंड कार्य रोकें और संग्रहीत डेटा हटाएँ।
स्कोप संदर्भ
प्लेटफ़ॉर्म के OAuth scope registry से प्रतिबिंबित।
| दायरा | अनुदान |
|---|---|
menu:read | Read menus, categories and items |
menu:write | Create and update menu items |
orders:read | Read orders and their status |
orders:write | Create and update orders |
analytics:read | Read scan and sales analytics |
restaurant:read | Read restaurant profile and settings |
Webhook इवेंट
इवेंट जिनकी आप आज सदस्यता ले सकते हैं:
| इवेंट |
|---|
order.created |
order.status_changed |
order.paid |
refund.completed |
reservation.created |
reservation.cancelled |
customer.created |
shift.opened |
shift.closed |
menu.updated |
entitlement.changed |
subscription.paused |
subscription.resumed |
subscription.renewed |
subscription.expired |
subscription.plan_changed |
subscription.past_due |
subscription.expiring |
subscription.trial_ending |
app.uninstalled |
लिस्टिंग और समीक्षा आवश्यकताएँ
किसी एडमिन द्वारा आपके ऐप को अनुमोदित करने से पहले, इसे यह करना होगा:
- केवल उन स्कोप का अनुरोध करें जिन्हें यह उपयोग करता है, प्रत्येक विवरण में उचित ठहराया गया।
- यदि यह इवेंट की सदस्यता लेता है तो एक काम करने वाला webhook एंडपॉइंट (सार्वजनिक HTTPS) प्रदान करें।
- सटीक मूल्य निर्धारण घोषित करें — आपके विवरण पेज पर मूल्य तालिका इससे जनरेट होती है।
- एक स्पष्ट टैगलाइन, विवरण, श्रेणी और कम से कम एक स्क्रीनशॉट शामिल करें।
- अनइंस्टॉल को स्वच्छ रूप से संभालें (पहुँच रद्द करें, billing रोकें, खाता डेटा हटाएँ)।
मेटाडेटा संपादन (टैगलाइन, विवरण, स्क्रीनशॉट, लिंक) तुरंत लाइव हो जाते हैं; मूल्य या स्कोप बदलाव समीक्षा को फिर से कतार में डालते हैं।
