Class: PaymentsJs

Inherits:
Object
  • Object
show all
Defined in:
lib/paymentsjs-rails.rb,
lib/paymentsjs-rails/rails/engine.rb

Defined Under Namespace

Modules: Rails

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(order) ⇒ PaymentsJs

Returns a new instance of PaymentsJs.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/paymentsjs-rails.rb', line 10

def initialize(order)
	
	p order
	
	@order        = order
	@address      = @order[:address]
	@city         = @order[:city]
	@state        = @order[:state]
	@zip          = @order[:zip]
	@amount       = @order[:total]
	@req_id       = @order[:req_id]
	@name         = @order[:name]
	@request_type = @order[:request_type]
	@pre_auth     = @order[:pre_auth]
	@environment  = @order[:environment]
	@mid          = @order[:mid]
	@mkey         = @order[:mkey]
	@api_key      = @order[:api_key]
	@api_secret   = @order[:api_secret]
	@postback_url = @order[:postback_url]
	
	cipher = OpenSSL::Cipher::AES.new(256, :CBC)
	cipher.encrypt

	iv = OpenSSL::Random.pseudo_bytes(16)
	salt = iv.unpack('H*').first
	salt = salt.bytes.to_a
	salt = salt.pack('U*')
	@salt = Base64.strict_encode64(salt)
	
	p @salt
	p @api_secret

	req  = {
		"apiKey"      => @api_key,
		"merchantId"  => @mid,
		"merchantKey" => @mkey,
		"requestType" => @request_type,
		"requestId"   => @req_id,
		"postbackUrl" => @postback_url,
		"amount"      => @amount,
		"nonce"       => @salt,
		"preAuth"     => @pre_auth,
		"environment" => @environment
	}

	data       = JSON.generate(req)
	key        = OpenSSL::PKCS5.pbkdf2_hmac_sha1(@api_secret, @salt, 1500, 32)
	cipher.key = key
	cipher.iv  = iv
	authKey    = cipher.update(data) + cipher.final()
	@auth_key   = Base64.strict_encode64(authKey)
	
end

Instance Attribute Details

#addressObject (readonly)

require ‘paymentsjs-rails/rails/engine’



8
9
10
# File 'lib/paymentsjs-rails.rb', line 8

def address
  @address
end

#amountObject (readonly)

require ‘paymentsjs-rails/rails/engine’



8
9
10
# File 'lib/paymentsjs-rails.rb', line 8

def amount
  @amount
end

#api_keyObject (readonly)

require ‘paymentsjs-rails/rails/engine’



8
9
10
# File 'lib/paymentsjs-rails.rb', line 8

def api_key
  @api_key
end

#auth_keyObject (readonly)

require ‘paymentsjs-rails/rails/engine’



8
9
10
# File 'lib/paymentsjs-rails.rb', line 8

def auth_key
  @auth_key
end

#cityObject (readonly)

require ‘paymentsjs-rails/rails/engine’



8
9
10
# File 'lib/paymentsjs-rails.rb', line 8

def city
  @city
end

#environmentObject (readonly)

require ‘paymentsjs-rails/rails/engine’



8
9
10
# File 'lib/paymentsjs-rails.rb', line 8

def environment
  @environment
end

#midObject (readonly)

require ‘paymentsjs-rails/rails/engine’



8
9
10
# File 'lib/paymentsjs-rails.rb', line 8

def mid
  @mid
end

#nameObject (readonly)

require ‘paymentsjs-rails/rails/engine’



8
9
10
# File 'lib/paymentsjs-rails.rb', line 8

def name
  @name
end

#postback_urlObject (readonly)

require ‘paymentsjs-rails/rails/engine’



8
9
10
# File 'lib/paymentsjs-rails.rb', line 8

def postback_url
  @postback_url
end

#pre_authObject (readonly)

require ‘paymentsjs-rails/rails/engine’



8
9
10
# File 'lib/paymentsjs-rails.rb', line 8

def pre_auth
  @pre_auth
end

#req_idObject (readonly)

require ‘paymentsjs-rails/rails/engine’



8
9
10
# File 'lib/paymentsjs-rails.rb', line 8

def req_id
  @req_id
end

#request_typeObject (readonly)

require ‘paymentsjs-rails/rails/engine’



8
9
10
# File 'lib/paymentsjs-rails.rb', line 8

def request_type
  @request_type
end

#saltObject (readonly)

require ‘paymentsjs-rails/rails/engine’



8
9
10
# File 'lib/paymentsjs-rails.rb', line 8

def salt
  @salt
end

#stateObject (readonly)

require ‘paymentsjs-rails/rails/engine’



8
9
10
# File 'lib/paymentsjs-rails.rb', line 8

def state
  @state
end

#zipObject (readonly)

require ‘paymentsjs-rails/rails/engine’



8
9
10
# File 'lib/paymentsjs-rails.rb', line 8

def zip
  @zip
end