Integre Dodo Payments em suas aplicações Ruby com um SDK elegante e nativo do Ruby
O SDK Ruby fornece uma maneira simples e intuitiva de integrar Dodo Payments em suas aplicações Ruby. Ele segue as convenções e melhores práticas do Ruby, oferecendo tratamento de erros abrangente, paginação e suporte a middleware.
Sempre use a versão mais recente do SDK para acessar os novos recursos do Dodo Payments. Execute bundle update dodopayments regularmente para se manter atualizado.
Em seguida, execute:
Copiar
bundle install
O SDK suporta Ruby 3.2.0 e versões posteriores, com tipos abrangentes, tratamento de erros e mecanismos de repetição.
Inicialize o cliente e crie uma sessão de checkout:
Copiar
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)
Armazene suas chaves de API com segurança usando variáveis de ambiente. Nunca as comite no controle de versão ou as exponha em seu código.
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
Implemente a lógica de repetição com backoff exponencial para erros de limite de taxa para garantir que sua aplicação lide com cenários de alto volume de forma elegante.
Use Sorbet para parâmetros de requisição seguros em termos de tipo:
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)