Intégrez Dodo Payments dans vos applications Ruby avec un SDK élégant et natif à Ruby
Le SDK Ruby fournit un moyen simple et intuitif d’intégrer Dodo Payments dans vos applications Ruby. Il suit les conventions et les meilleures pratiques de Ruby, offrant une gestion complète des erreurs, de la pagination et un support middleware.
Utilisez toujours la dernière version du SDK pour accéder aux nouvelles fonctionnalités de Dodo Payments. Exécutez bundle update dodopayments régulièrement pour rester à jour.
Puis exécutez :
Copier
bundle install
Le SDK prend en charge Ruby 3.2.0 et les versions ultérieures, avec des types complets, une gestion des erreurs et des mécanismes de réessai.
Initialisez le client et créez une session de paiement :
Copier
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)
Conservez vos clés API en toute sécurité en utilisant des variables d’environnement. Ne les engagez jamais dans le contrôle de version ou ne les exposez pas dans votre code.
Itérez automatiquement à travers toutes les pages :
Copier
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: 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
Implémentez une logique de réessai avec un backoff exponentiel pour les erreurs de limite de taux afin de garantir que votre application gère les scénarios à fort volume de manière fluide.
Utilisez Sorbet pour des paramètres de requête sûrs en termes de types :
Copier
# 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)