class Pesapal::OrderUrl

Constants

API_ACTION
HTTP_METHOD

Attributes

callback_url[R]
post_data_xml[R]
test[R]
token[R]

Public Class Methods

new(post_data_xml, callback_url, test=true) click to toggle source
# File lib/mobile-money/pesapal/order_url.rb, line 14
def initialize(post_data_xml, callback_url, test=true)
  @post_data_xml   = post_data_xml
  @callback_url    = callback_url
  @token           = nil
  @test            = test
end

Public Instance Methods

api_domain() click to toggle source
# File lib/mobile-money/pesapal/order_url.rb, line 21
def api_domain
  test ? 'http://demo.pesapal.com' : 'https://www.pesapal.com'
end
consumer() click to toggle source
# File lib/mobile-money/pesapal/order_url.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_key() click to toggle source
# File lib/mobile-money/pesapal/order_url.rb, line 39
def consumer_key
  Rails.application.secrets.pesapal_consumer_key
end
consumer_secret() click to toggle source
# File lib/mobile-money/pesapal/order_url.rb, line 43
def consumer_secret
  Rails.application.secrets.pesapal_consumer_secret
end
escaped_xml() click to toggle source
# File lib/mobile-money/pesapal/order_url.rb, line 71
def escaped_xml
  HTMLEntities.new.encode(post_data_xml)
end
params() click to toggle source
# File lib/mobile-money/pesapal/order_url.rb, line 56
def params
  @params ||= {
      'oauth_callback'       => callback_url,
      'pesapal_request_data' => escaped_xml,
  }
end
params_to_string() click to toggle source
# File lib/mobile-money/pesapal/order_url.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_url() click to toggle source
# File lib/mobile-money/pesapal/order_url.rb, line 51
def request_url
  API_ACTION + "?" + params_to_string
end
signed_request() click to toggle source
# File lib/mobile-money/pesapal/order_url.rb, line 47
def signed_request
  consumer.create_signed_request HTTP_METHOD, request_url, nil, {}, params
end
url() click to toggle source
# File lib/mobile-money/pesapal/order_url.rb, line 25
def url
  "#{api_domain}#{signed_request.path}"
end