Class: PaymobAccept::Api::Pay

Inherits:
Base
  • Object
show all
Defined in:
lib/paymob_accept/api/pay.rb

Constant Summary collapse

SUPPORTED_PAYMENT_METHODS =
i[online auth kiosk cash wallet moto].freeze

Instance Attribute Summary collapse

Attributes inherited from Base

#client

Instance Method Summary collapse

Methods inherited from Base

#create_order, #generate_payment_intent, #get_auth_token

Constructor Details

#initialize(api_key: PaymobAccept.configuration.api_key, online_integration_id: PaymobAccept.configuration.online_integration_id, cash_integration_id: PaymobAccept.configuration.cash_integration_id, kiosk_integration_id: PaymobAccept.configuration.kiosk_integration_id, auth_integration_id: PaymobAccept.configuration.auth_integration_id, wallet_integration_id: PaymobAccept.configuration.wallet_integration_id, moto_integration_id: PaymobAccept.configuration.moto_integration_id) ⇒ Pay

Returns a new instance of Pay.



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/paymob_accept/api/pay.rb', line 11

def initialize(api_key: PaymobAccept.configuration.api_key, online_integration_id: PaymobAccept.configuration.online_integration_id, cash_integration_id: PaymobAccept.configuration.cash_integration_id, kiosk_integration_id: PaymobAccept.configuration.kiosk_integration_id,
               auth_integration_id: PaymobAccept.configuration.auth_integration_id, wallet_integration_id: PaymobAccept.configuration.wallet_integration_id, moto_integration_id: PaymobAccept.configuration.moto_integration_id)
  super(api_key: api_key)
  @api_key = api_key
  @online_integration_id = online_integration_id
  @cash_integration_id = cash_integration_id
  @kiosk_integration_id = kiosk_integration_id
  @auth_integration_id = auth_integration_id
  @wallet_integration_id = wallet_integration_id
  @moto_integration_id = moto_integration_id
end

Instance Attribute Details

#api_keyObject

Returns the value of attribute api_key.



8
9
10
# File 'lib/paymob_accept/api/pay.rb', line 8

def api_key
  @api_key
end

#auth_integration_idObject

Returns the value of attribute auth_integration_id.



8
9
10
# File 'lib/paymob_accept/api/pay.rb', line 8

def auth_integration_id
  @auth_integration_id
end

#cash_integration_idObject

Returns the value of attribute cash_integration_id.



8
9
10
# File 'lib/paymob_accept/api/pay.rb', line 8

def cash_integration_id
  @cash_integration_id
end

#kiosk_integration_idObject

Returns the value of attribute kiosk_integration_id.



8
9
10
# File 'lib/paymob_accept/api/pay.rb', line 8

def kiosk_integration_id
  @kiosk_integration_id
end

#moto_integration_idObject

Returns the value of attribute moto_integration_id.



8
9
10
# File 'lib/paymob_accept/api/pay.rb', line 8

def moto_integration_id
  @moto_integration_id
end

#online_integration_idObject

Returns the value of attribute online_integration_id.



8
9
10
# File 'lib/paymob_accept/api/pay.rb', line 8

def online_integration_id
  @online_integration_id
end

#wallet_integration_idObject

Returns the value of attribute wallet_integration_id.



8
9
10
# File 'lib/paymob_accept/api/pay.rb', line 8

def wallet_integration_id
  @wallet_integration_id
end

Instance Method Details

#charge(method:, **kwargs) ⇒ Object

Raises:

  • (ArgumentError)


23
24
25
26
27
28
29
# File 'lib/paymob_accept/api/pay.rb', line 23

def charge(method:, **kwargs)
  raise ArgumentError, "unsupported payment method #{method}" unless SUPPORTED_PAYMENT_METHODS.include? method

  # Override any currencies, only EGP is currently supported
  kwargs[:amount_currency] = 'EGP'
  send("pay_#{method}".to_sym, **kwargs)
end