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