Use this file to discover all available pages before exploring further.
Ruby SDK Dodo Payments को आपके Ruby अनुप्रयोगों में एक सरल और सहज तरीके से एकीकृत करने के लिए प्रदान करता है। यह Ruby की परंपराओं और सर्वोत्तम प्रथाओं का पालन करता है, व्यापक त्रुटि प्रबंधन, पृष्ठांकन, और मध्यवर्ती समर्थन प्रदान करता है।
नवीनतम Dodo Payments सुविधाओं तक पहुंचने के लिए हमेशा नवीनतम SDK संस्करण का उपयोग करें। नवीनतम जानकारी के लिए bundle update dodopayments को नियमित रूप से चलाएं।
फिर चलाएं:
bundle install
SDK Ruby 3.2.0 और उसके बाद के संस्करणों का समर्थन करता है, जिसमें व्यापक प्रकार, त्रुटि हैंडलिंग और पुनः प्रयास तंत्र शामिल हैं।
require "bundler/setup"require "dodopayments"dodo_payments = Dodopayments::Client.new( bearer_token: ENV["DODO_PAYMENTS_API_KEY"], # This is the default and can be omitted environment: "test_mode" # defaults to "live_mode")checkout_session_response = dodo_payments.checkout_sessions.create( product_cart: [{product_id: "product_id", quantity: 1}])puts(checkout_session_response.session_id)
अपने API कुंजियों को वातावरण चर में सुरक्षित रूप से संग्रहीत करें। उन्हें संस्करण नियंत्रण में कभी कमिट न करें या अपने कोड में उजागर न करें।
# Create a subscriptionsubscription = dodo_payments.subscriptions.create( billing: { country: "US", city: "San Francisco", state: "CA", street: "1 Market St", zipcode: "94105" }, customer: { customer_id: "cus_123" }, # or { email: "...", name: "..." } for a new customer product_id: "pdt_456", quantity: 1)# Charge an on-demand subscription# product_price is in the lowest currency denomination (e.g., 2500 = $25.00 USD)charge = dodo_payments.subscriptions.charge( subscription.subscription_id, product_price: 2500)# Update subscription metadataupdated = dodo_payments.subscriptions.update( subscription.subscription_id, metadata: { plan_type: "premium" })
billing को कम से कम दो-अक्षर ISO country कोड की आवश्यकता होती है। customer या तो { customer_id: "..." } का उपयोग करके एक मौजूदा ग्राहक को संलग्न करने के लिए स्वीकार करता है या { email: "...", name: "..." } का उपयोग करके एक नया ग्राहक बनाने के लिए। product_price सबसे कम मुद्रा संप्रदाय में है।
सभी पृष्ठों के माध्यम से स्वचालित रूप से इटका करें:
page = dodo_payments.payments.list# Fetch single item from pagepayment = page.items[0]puts(payment.brand_id)# Automatically fetches more pages as neededpage.auto_paging_each do |payment| puts(payment.brand_id)end
begin checkout_session = dodo_payments.checkout_sessions.create(product_cart: [{product_id: "product_id", quantity: 1}] )rescue Dodopayments::Errors::APIConnectionError => e puts("The server could not be reached") puts(e.cause) # an underlying Exception, likely raised within `net/http`rescue Dodopayments::Errors::RateLimitError => e puts("A 429 status code was received; we should back off a bit.")rescue Dodopayments::Errors::APIStatusError => e puts("Another non-200-range status code was received") puts(e.status)end
आपका अनुप्रयोग उच्च-भारी परिदृश्यों को प्रभावी ढंग से संभाल सके, यह सुनिश्चित करने के लिए दर सीमा त्रुटियों के लिए घातीय बैकऑफ के साथ पुनः प्रयास तर्क को लागू करें।
टाइप-सुरक्षित अनुरोध पैरामीटर के लिए Sorbet का उपयोग करें:
# Type-safe using Sorbet RBI definitionsdodo_payments.checkout_sessions.create( product_cart: [ Dodopayments::ProductItemReq.new( product_id: "product_id", quantity: 1 ) ])# Hashes work, but are not typesafedodo_payments.checkout_sessions.create( product_cart: [{product_id: "product_id", quantity: 1}])# You can also splat a full Params classparams = Dodopayments::CheckoutSessionCreateParams.new( product_cart: [ Dodopayments::ProductItemReq.new( product_id: "product_id", quantity: 1 ) ])dodo_payments.checkout_sessions.create(**params)