class Platbamobilom::Redirect

Constants

PRODUCTION_URL
TEST_URL

Attributes

desc[R]
email[R]
id[R]
pid[R]
price[R]
url[R]

Public Class Methods

new(pid:, id:, desc:, price:, url:, email:) click to toggle source
# File lib/platbamobilom/redirect.rb, line 17
def initialize(pid:, id:, desc:, price:, url:, email:)
  @pid   = pid
  @id    = id
  @desc  = desc
  @price = price
  @url   = url
  @email = email
end
production_url() click to toggle source
# File lib/platbamobilom/redirect.rb, line 6
def self.production_url; PRODUCTION_URL end
test_url() click to toggle source
# File lib/platbamobilom/redirect.rb, line 7
def self.test_url; TEST_URL end
url() click to toggle source
# File lib/platbamobilom/redirect.rb, line 8
def self.url; (Platbamobilom.test_mode ? test_url : production_url) end

Public Instance Methods

sign(secret) click to toggle source
# File lib/platbamobilom/redirect.rb, line 26
def sign(secret)
  signing_data  = [pid, id, desc, price, url, email].join
  digest        = OpenSSL::Digest.new('sha256')
  hmac          = OpenSSL::HMAC.digest(digest, secret, signing_data)
  signature     = hmac.unpack('H*').join.upcase
end
signed_query_string(signature) click to toggle source
# File lib/platbamobilom/redirect.rb, line 33
def signed_query_string(signature)
  Rack::Utils.build_query({
    PID: pid,
    ID: id,
    DESC: desc,
    PRICE: price,
    URL: url,
    EMAIL: email,
    SIGN: signature
  })
end
signed_url(signature) click to toggle source
# File lib/platbamobilom/redirect.rb, line 45
def signed_url(signature)
  '%s?%s' % [self.class.url, signed_query_string(signature)]
end