Module: Frontgo::Subscription

Included in:
Client
Defined in:
lib/frontgo/subscription.rb

Overview

Instance Method Summary collapse

Instance Method Details

#cancel_subscription(uuid, params) ⇒ Object

Examples:

Cancel subscription

client.cancel_subscription('SUB123456789', { note: 'Customer requested cancellation' })


75
76
77
# File 'lib/frontgo/subscription.rb', line 75

def cancel_subscription(uuid, params)
  post "connect/subscriptions/cancel/#{uuid}", params
end

#create_session_for_subscription_payment(params) ⇒ Object

Examples:

Create subscription session for checkout

client.create_session_for_subscription_payment({
  products: { "0": { name: "Premium Plan", rate: 1500, tax: 0, amount: 1500 } },
  billingFrequency: "month",
  submitPayment: { via: "visa" },
  callback: { success: "https://example.com/success", failure: "https://example.com/failure" }
})


24
25
26
# File 'lib/frontgo/subscription.rb', line 24

def create_session_for_subscription_payment(params)
  post "connect/subscription/create", params
end

#create_subscription(params) ⇒ Object

Examples:

Create a new subscription

client.create_subscription({
  products: { "0": { name: "Monthly Service", rate: 2000, tax: 0, amount: 2000 } },
  billingFrequency: "month",
  numberOfRepeats: 12,
  customerDetails: { name: "John Doe", email: "[email protected]" }
})


13
14
15
# File 'lib/frontgo/subscription.rb', line 13

def create_subscription(params)
  post "connect/subscription/submit", params
end

#get_failed_payment_details(order_uuid) ⇒ Object

Examples:

Get failed payment details

client.get_failed_payment_details('ODR123456789')


58
59
60
# File 'lib/frontgo/subscription.rb', line 58

def get_failed_payment_details(order_uuid)
  get "connect/subscriptions/failed/details/#{order_uuid}"
end

#get_failed_payment_list(status = nil, params = {}) ⇒ Object

Examples:

Get all failed payments

client.get_failed_payment_list

Get invoiced failed payments with pagination

client.get_failed_payment_list('invoiced', { page: 1, phone: '+47123456789' })

Filter by subscription UUID

client.get_failed_payment_list(nil, { subscriptionUuid: 'SUB123456789' })


45
46
47
48
# File 'lib/frontgo/subscription.rb', line 45

def get_failed_payment_list(status = nil, params = {})
  endpoint = status ? "connect/subscriptions/failed/list/#{status}" : "connect/subscriptions/failed/list"
  get endpoint, params
end

#get_subscription_details_by_uuid(uuid) ⇒ Object

Examples:

Get subscription details

client.get_subscription_details_by_uuid('SUB123456789')


52
53
54
# File 'lib/frontgo/subscription.rb', line 52

def get_subscription_details_by_uuid(uuid)
  get "connect/subscriptions/details/#{uuid}"
end

#get_subscription_list(status = nil, params = {}) ⇒ Object

Examples:

Get all subscriptions

client.get_subscription_list

Get ongoing subscriptions with pagination

client.get_subscription_list('ongoing', { page: 2, customerName: 'John' })

Filter by phone and date range

client.get_subscription_list(nil, { phone: '+47123456789', startDate: '2023-01-01', endDate: '2023-12-31' })


34
35
36
37
# File 'lib/frontgo/subscription.rb', line 34

def get_subscription_list(status = nil, params = {})
  endpoint = status ? "connect/subscriptions/list/#{status}" : "connect/subscriptions/list"
  get endpoint, params
end

#refund_subscription_cycle(uuid, params) ⇒ Object

Examples:

Refund specific subscription cycles

client.refund_subscription_cycle('SUB123456789', {
  cycles: ['Cycle 1', 'Cycle 2'],
  amount: 200.00
})


84
85
86
# File 'lib/frontgo/subscription.rb', line 84

def refund_subscription_cycle(uuid, params)
  post "connect/subscriptions/cycles/refund/#{uuid}", params
end

#resend_subscription(uuid, params) ⇒ Object

Examples:

Resend subscription payment link

client.resend_subscription('SUB123456789', {
  orderUuid: 'ODR123456789',
  countryCode: '+47',
  msisdn: '46567468',
  email: '[email protected]'
})


69
70
71
# File 'lib/frontgo/subscription.rb', line 69

def resend_subscription(uuid, params)
  post "connect/subscriptions/resend/#{uuid}", params
end