Integra Dodo Payments en tus aplicaciones Ruby con un elegante SDK nativo de Ruby
El SDK de Ruby proporciona una forma simple e intuitiva de integrar Dodo Payments en tus aplicaciones Ruby. Sigue las convenciones y mejores prácticas de Ruby, ofreciendo un manejo de errores completo, paginación y soporte para middleware.
Utiliza siempre la versión más reciente del SDK para acceder a las funciones más nuevas de Dodo Payments. Ejecuta bundle update dodopayments regularmente para mantenerte actualizado.
Luego ejecuta:
Copiar
bundle install
El SDK es compatible con Ruby 3.2.0 y versiones posteriores, con tipos completos, manejo de errores y mecanismos de reintento.
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)
Almacena tus claves de API de forma segura utilizando variables de entorno. Nunca las agregues al control de versiones ni las expongas en tu código.
Itera automáticamente a través de todas las páginas:
Copiar
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
Implementa lógica de reintentos con retroceso exponencial para errores por límite de tasa y así garantizar que tu aplicación maneje escenarios de alto volumen con soltura.
Usa Sorbet para parámetros de solicitud seguros en tipos:
Copiar
# 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)