class CCBill::Postback

Attributes

response_params[RW]

Public Class Methods

new(response_params = {}) click to toggle source
# File lib/ccbill_ruby/postback.rb, line 5
def initialize(response_params = {})
  self.response_params = response_params
end

Public Instance Methods

verified?() click to toggle source
# File lib/ccbill_ruby/postback.rb, line 9
def verified?
  # NOTE: https://github.com/DmytroVasin/ccbill_ruby#response-digest-value
  return true if CCBill.configuration.test?

  response_params['dynamicPricingValidationDigest'] == encode_digest_response
end

Private Instance Methods

denied?() click to toggle source
# File lib/ccbill_ruby/postback.rb, line 18
def denied?
  ['failureCode', 'failureReason'].any? do |key|
    !response_params[key].to_s.strip.empty?
  end
end
encode_digest_response() click to toggle source
# File lib/ccbill_ruby/postback.rb, line 24
def encode_digest_response
  verify_fields = if denied?
    [
      response_params['transactionId'],
      '0',
      CCBill.configuration.salt
    ]
  else
    [
      response_params['subscriptionId'],
      '1',
      CCBill.configuration.salt
    ]
  end

  Digest::MD5.hexdigest(verify_fields.join)
end