Integrieren Sie Dodo Payments in Ihre Ruby-Anwendungen mit einem eleganten, Ruby-nativen SDK
Das Ruby SDK bietet eine einfache und intuitive Möglichkeit, Dodo Payments in Ihre Ruby-Anwendungen zu integrieren. Es folgt den Ruby-Konventionen und Best Practices und bietet umfassende Fehlerbehandlung, Paginierung und Middleware-Unterstützung.
Verwenden Sie immer die neueste SDK-Version, um auf die neuesten Funktionen von Dodo Payments zuzugreifen. Führen Sie bundle update dodopayments regelmäßig aus, um auf dem neuesten Stand zu bleiben.
Führen Sie dann aus:
Kopieren
bundle install
Das SDK unterstützt Ruby 3.2.0 und spätere Versionen mit umfassenden Typen, Fehlerbehandlung und Wiederholungsmechanismen.
Initialisieren Sie den Client und erstellen Sie eine Checkout-Sitzung:
Kopieren
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)
Bewahren Sie Ihre API-Schlüssel sicher in Umgebungsvariablen auf. Kommittieren Sie sie niemals in die Versionskontrolle oder exponieren Sie sie in Ihrem Code.
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
Behandeln Sie verschiedene Dodo Payments API-Fehler:
Kopieren
begin checkout_session = dodo_payments.checkout_sessions.create( product_cart: [{product_id: "product_id", quantity: 0}] )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
Implementieren Sie eine Wiederholungslogik mit exponentiellem Backoff für Ratenlimitfehler, um sicherzustellen, dass Ihre Anwendung hochvolumige Szenarien elegant behandelt.
Verwenden Sie Sorbet für typensichere Anfrageparameter:
Kopieren
# Type-safe using Sorbet RBI definitionsdodo_payments.checkout_sessions.create( product_cart: [ Dodopayments::CheckoutSessionRequest::ProductCart.new( product_id: "product_id", quantity: 0 ) ])# Hashes work, but are not typesafedodo_payments.checkout_sessions.create( product_cart: [{product_id: "product_id", quantity: 0}])# You can also splat a full Params classparams = Dodopayments::CheckoutSessionCreateParams.new( product_cart: [ Dodopayments::CheckoutSessionRequest::ProductCart.new( product_id: "product_id", quantity: 0 ) ])dodo_payments.checkout_sessions.create(**params)