Module: KhipuRails

Extended by:
KhipuRails
Included in:
KhipuRails
Defined in:
lib/khipu_rails.rb,
lib/khipu_rails/config.rb,
lib/khipu_rails/version.rb,
lib/khipu_rails/receiver.rb,
lib/khipu_rails/button_helper.rb,
lib/khipu_rails/notification_validator.rb,
app/controllers/khipu_rails/khipu_controller.rb,
app/controllers/khipu_rails/application_controller.rb

Defined Under Namespace

Modules: ButtonHelper Classes: ApplicationController, Config, KhipuController, NotificationValidator, Receiver

Constant Summary collapse

VERSION =
"1.3.0"

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#configObject



9
10
11
# File 'lib/khipu_rails.rb', line 9

def config
  @config ||= Config.default
end

Instance Method Details

#configure {|config| ... } ⇒ Object

Yields:



5
6
7
# File 'lib/khipu_rails.rb', line 5

def configure
  yield config
end

#khipu_hash(options = {}) ⇒ Object



15
16
17
18
19
20
# File 'lib/khipu_rails.rb', line 15

def khipu_hash options = {}
  options.reverse_merge! KhipuRails.config.button_defaults

  receiver = load_receiver options
  OpenSSL::HMAC.hexdigest('sha256', receiver.key, raw_hash(options, receiver))
end

#raw_hash(options = {}, receiver = load_receiver(options)) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/khipu_rails.rb', line 22

def raw_hash options = {}, receiver = load_receiver(options)
  options.reverse_merge! KhipuRails.config.button_defaults

  raw = [
    "receiver_id=#{receiver.id}",
    "subject=#{options[:subject]}",
    "body=#{options[:body]}",
    "amount=#{options[:amount]}",
    "payer_email=#{options[:payer_email]}",
    "bank_id=#{options[:bank_id]}",
    "expires_date=#{options[:expires_date]}",
    "transaction_id=#{options[:transaction_id]}",
    "custom=#{options[:custom]}",
    "notify_url=#{options[:notify_url]}",
    "return_url=#{options[:return_url]}",
    "cancel_url=#{options[:cancel_url]}",
    "picture_url=#{options[:picture_url]}"
  ].join('&')

  raw
end

#rootObject



44
45
46
# File 'lib/khipu_rails.rb', line 44

def root
  File.expand_path '../..', __FILE__
end