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 fonctionnalités les plus récentes 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, la gestion des erreurs et des mécanismes de nouvelle tentative.
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)
Stockez vos clés API de manière sécurisée en utilisant des variables d’environnement. Ne les validez jamais dans le contrôle de version ni ne les exposez 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: 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
Implémentez une logique de nouvelle tentative avec rétrogradation exponentielle pour les erreurs de limite de débit afin que votre application gère gracieusement les scénarios à fort volume.
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::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)