Class: Skrill::Payment::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/skrill/payment/request.rb

Constant Summary collapse

API_HOST =
'https://www.moneybookers.com'
API_PATH =
'/app/pay.pl'
OPTIONS_MAPPING =
{
  amount:            :amount,
  currency:          :currency,
  email:             :bnf_email,
  identifier:        :frn_trn_id,
  merchant_email:    :email,
  merchant_password: :password,
  note:              :note,
  subject:           :subject,
}

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config_data, payment_data) ⇒ Request

Returns a new instance of Request.



25
26
27
28
# File 'lib/skrill/payment/request.rb', line 25

def initialize(config_data, payment_data)
  @http_proxy = config_data.delete(:http_proxy)
  @request_data = map_data(config_data.merge(payment_data))
end

Instance Attribute Details

#error_messageObject (readonly)

Returns the value of attribute error_message.



23
24
25
# File 'lib/skrill/payment/request.rb', line 23

def error_message
  @error_message
end

#request_dataObject (readonly)

Returns the value of attribute request_data.



23
24
25
# File 'lib/skrill/payment/request.rb', line 23

def request_data
  @request_data
end

#status_idObject (readonly)

Returns the value of attribute status_id.



23
24
25
# File 'lib/skrill/payment/request.rb', line 23

def status_id
  @status_id
end

#status_messageObject (readonly)

Returns the value of attribute status_message.



23
24
25
# File 'lib/skrill/payment/request.rb', line 23

def status_message
  @status_message
end

#transation_idObject (readonly)

Returns the value of attribute transation_id.



23
24
25
# File 'lib/skrill/payment/request.rb', line 23

def transation_id
  @transation_id
end

Class Method Details

.post(*data) ⇒ Object



19
20
21
# File 'lib/skrill/payment/request.rb', line 19

def self.post(*data)
  new(*data).post
end

Instance Method Details

#postObject



30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/skrill/payment/request.rb', line 30

def post
  self.tap do
    response = send_payment_preparation
    session_identifier = response['sid']

    if session_identifier.present?
      response = send_payment_confirmation(session_identifier)
      check_payment_status(response)
    else
      save_error(response)
    end
  end
end

#successful?true, false

Checks if the request has been delivered and was successful.

Returns:

  • (true, false)

    The payment success status.

Since:

  • 0.2.1



49
50
51
# File 'lib/skrill/payment/request.rb', line 49

def successful?
  error_message.nil?
end