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 terbaru. Jalankan bundle update dodopayments secara berkala untuk tetap terupdate.
Kemudian jalankan:
Salin
bundle install
SDK mendukung Ruby 3.2.0 dan versi lebih baru, dengan tipe yang komprehensif, penanganan kesalahan, dan mekanisme pengulangan.
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 mengkomitnya ke kontrol versi atau mengeksposnya dalam 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: 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
Terapkan logika pengulangan dengan backoff eksponensial untuk kesalahan batas laju untuk memastikan aplikasi Anda menangani skenario volume tinggi dengan baik.
Gunakan Sorbet untuk parameter permintaan yang aman tipe:
Salin
# 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)