Class: Pesapal::QueryPaymentStatus

Inherits:
Object
  • Object
show all
Defined in:
lib/mobile-money/pesapal/query_payment_status.rb

Constant Summary collapse

HTTP_METHOD =
'get'
API_ACTION =
'/API/QueryPaymentStatus'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(pesapal_merchant_reference, pesapal_transaction_tracking_id, test = true) ⇒ QueryPaymentStatus

Returns a new instance of QueryPaymentStatus.



14
15
16
17
18
19
# File 'lib/mobile-money/pesapal/query_payment_status.rb', line 14

def initialize(pesapal_merchant_reference, pesapal_transaction_tracking_id, test=true)
  @pesapal_merchant_reference   = pesapal_merchant_reference
  @pesapal_transaction_tracking_id    = pesapal_transaction_tracking_id
  @token           = nil
  @test            = test
end

Instance Attribute Details

#pesapal_merchant_referenceObject (readonly)

Returns the value of attribute pesapal_merchant_reference.



9
10
11
# File 'lib/mobile-money/pesapal/query_payment_status.rb', line 9

def pesapal_merchant_reference
  @pesapal_merchant_reference
end

#pesapal_transaction_tracking_idObject (readonly)

Returns the value of attribute pesapal_transaction_tracking_id.



9
10
11
# File 'lib/mobile-money/pesapal/query_payment_status.rb', line 9

def pesapal_transaction_tracking_id
  @pesapal_transaction_tracking_id
end

#testObject (readonly)

Returns the value of attribute test.



9
10
11
# File 'lib/mobile-money/pesapal/query_payment_status.rb', line 9

def test
  @test
end

#tokenObject (readonly)

Returns the value of attribute token.



9
10
11
# File 'lib/mobile-money/pesapal/query_payment_status.rb', line 9

def token
  @token
end

Instance Method Details

#api_domainObject



21
22
23
# File 'lib/mobile-money/pesapal/query_payment_status.rb', line 21

def api_domain
  test ? 'http://demo.pesapal.com' : 'https://www.pesapal.com'
end

#consumerObject



29
30
31
32
33
34
35
36
37
# File 'lib/mobile-money/pesapal/query_payment_status.rb', line 29

def consumer
  @consumer ||= begin
    OAuth::Consumer.new(consumer_key, consumer_secret, {
        site: api_domain,
        http_method: HTTP_METHOD,
        scheme: :query_string
    })
  end
end

#consumer_keyObject



39
40
41
# File 'lib/mobile-money/pesapal/query_payment_status.rb', line 39

def consumer_key
  Rails.application.secrets.pesapal_consumer_key
end

#consumer_secretObject



43
44
45
# File 'lib/mobile-money/pesapal/query_payment_status.rb', line 43

def consumer_secret
  Rails.application.secrets.pesapal_consumer_secret
end

#paramsObject



56
57
58
59
60
61
# File 'lib/mobile-money/pesapal/query_payment_status.rb', line 56

def params
  @params ||= {
      'pesapal_merchant_reference'       => pesapal_merchant_reference,
      'pesapal_transaction_tracking_id' => pesapal_transaction_tracking_id,
  }
end

#params_to_stringObject



63
64
65
66
67
68
69
# File 'lib/mobile-money/pesapal/query_payment_status.rb', line 63

def params_to_string
  strings = []
  params.each do |key, value|
    strings << "#{key}=#{ERB::Util.url_encode(value)}"
  end
  strings.join('&')
end

#request_urlObject



51
52
53
# File 'lib/mobile-money/pesapal/query_payment_status.rb', line 51

def request_url
  API_ACTION + "?" + params_to_string
end

#signed_requestObject



47
48
49
# File 'lib/mobile-money/pesapal/query_payment_status.rb', line 47

def signed_request
  consumer.create_signed_request HTTP_METHOD, request_url, nil, {}, params
end

#urlObject



25
26
27
# File 'lib/mobile-money/pesapal/query_payment_status.rb', line 25

def url
  "#{api_domain}#{signed_request.path}"
end