Integrasikan Dodo Payments ke dalam aplikasi Ruby Anda dengan SDK yang elegan dan asli Ruby
SDK Ruby menyediakan cara yang sederhana dan intuitif untuk mengintegrasikan Dodo Payments ke dalam aplikasi Ruby Anda. Ini mengikuti konvensi dan praktik terbaik Ruby, menawarkan penanganan kesalahan yang komprehensif, paginasi, dan dukungan middleware.
Selalu gunakan versi SDK terbaru untuk mengakses fitur Dodo Payments yang paling mutakhir. Jalankan bundle update dodopayments secara berkala untuk tetap terbaru.
Kemudian jalankan:
Salin
bundle install
SDK mendukung Ruby 3.2.0 dan versi yang lebih baru, dengan tipe lengkap, penanganan kesalahan, dan mekanisme retry.
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)
Simpan kunci API Anda dengan aman menggunakan variabel lingkungan. Jangan pernah meng-commit atau mengeksposnya di kode Anda.
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
Terapkan logika retry dengan exponential backoff untuk kesalahan batas laju agar aplikasi Anda menangani skenario volume tinggi dengan lebih baik.
Gunakan Sorbet untuk parameter permintaan yang aman tipe:
Salin
# 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)