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.
Siempre usa la última versión del SDK para acceder a las nuevas características 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 API de forma segura utilizando variables de entorno. Nunca las comites en el 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: 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
Implementa lógica de reintento con retroceso exponencial para errores de límite de tasa para asegurar que tu aplicación maneje escenarios de alto volumen de manera adecuada.
Usa Sorbet para parámetros de solicitud seguros en tipos:
Copiar
# 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)