class GpWebpay::Http::BaseSignedRequest
Attributes
attributes[R]
config[R]
locale[R]
operation[R]
url_attributes[R]
Public Class Methods
new(attributes, locale, operation, merchant_number: :default, url_attributes: {})
click to toggle source
Calls superclass method
# File lib/gp_webpay/http/base_signed_request.rb, line 19 def initialize(attributes, locale, operation, merchant_number: :default, url_attributes: {}) super() @attributes = attributes @locale = locale @merchant_number = merchant_number @operation = operation @url_attributes = url_attributes @config = GpWebpay.config[@merchant_number] || GpWebpay.config.default end
Public Instance Methods
call()
click to toggle source
# File lib/gp_webpay/http/base_signed_request.rb, line 29 def call request = HttpRequest.new( attributes.merge( merchant_number: @config.merchant_number, operation: operation, url: callback_url ) ).to_gpwebpay attrs_with_digest = payment_attributes_with_digest(request) uri = URI(@config.http_url) ExternalUrl.new( url: uri.to_s, full_url: build_full_url(uri, attrs_with_digest), params: attrs_with_digest ) end
callback_url()
click to toggle source
# File lib/gp_webpay/http/base_signed_request.rb, line 48 def callback_url raise NotImplementedError end
Private Instance Methods
build_full_url(uri, attrs)
click to toggle source
# File lib/gp_webpay/http/base_signed_request.rb, line 54 def build_full_url(uri, attrs) uri.query = URI.encode_www_form(attrs) uri.to_s end
digest_text(attrs)
click to toggle source
# File lib/gp_webpay/http/base_signed_request.rb, line 59 def digest_text(attrs) attrs.values.join('|') end
payment_attributes_with_digest(attrs)
click to toggle source
# File lib/gp_webpay/http/base_signed_request.rb, line 63 def payment_attributes_with_digest(attrs) digest = OpensslSecurity.generate_digest(@config, digest_text(attrs)) attrs.merge( 'DIGEST' => digest, 'LANG' => locale ) end