Class: PaymentsJs
- Inherits:
-
Object
- Object
- PaymentsJs
- Defined in:
- lib/paymentsjs-rails.rb,
lib/paymentsjs-rails/rails/engine.rb
Defined Under Namespace
Modules: Rails
Instance Attribute Summary collapse
-
#address ⇒ Object
readonly
require ‘paymentsjs-rails/rails/engine’.
-
#amount ⇒ Object
readonly
require ‘paymentsjs-rails/rails/engine’.
-
#api_key ⇒ Object
readonly
require ‘paymentsjs-rails/rails/engine’.
-
#auth_key ⇒ Object
readonly
require ‘paymentsjs-rails/rails/engine’.
-
#city ⇒ Object
readonly
require ‘paymentsjs-rails/rails/engine’.
-
#environment ⇒ Object
readonly
require ‘paymentsjs-rails/rails/engine’.
-
#mid ⇒ Object
readonly
require ‘paymentsjs-rails/rails/engine’.
-
#name ⇒ Object
readonly
require ‘paymentsjs-rails/rails/engine’.
-
#postback_url ⇒ Object
readonly
require ‘paymentsjs-rails/rails/engine’.
-
#pre_auth ⇒ Object
readonly
require ‘paymentsjs-rails/rails/engine’.
-
#req_id ⇒ Object
readonly
require ‘paymentsjs-rails/rails/engine’.
-
#request_type ⇒ Object
readonly
require ‘paymentsjs-rails/rails/engine’.
-
#salt ⇒ Object
readonly
require ‘paymentsjs-rails/rails/engine’.
-
#state ⇒ Object
readonly
require ‘paymentsjs-rails/rails/engine’.
-
#zip ⇒ Object
readonly
require ‘paymentsjs-rails/rails/engine’.
Instance Method Summary collapse
-
#initialize(order) ⇒ PaymentsJs
constructor
A new instance of PaymentsJs.
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
#address ⇒ Object (readonly)
require ‘paymentsjs-rails/rails/engine’
8 9 10 |
# File 'lib/paymentsjs-rails.rb', line 8 def address @address end |
#amount ⇒ Object (readonly)
require ‘paymentsjs-rails/rails/engine’
8 9 10 |
# File 'lib/paymentsjs-rails.rb', line 8 def amount @amount end |
#api_key ⇒ Object (readonly)
require ‘paymentsjs-rails/rails/engine’
8 9 10 |
# File 'lib/paymentsjs-rails.rb', line 8 def api_key @api_key end |
#auth_key ⇒ Object (readonly)
require ‘paymentsjs-rails/rails/engine’
8 9 10 |
# File 'lib/paymentsjs-rails.rb', line 8 def auth_key @auth_key end |
#city ⇒ Object (readonly)
require ‘paymentsjs-rails/rails/engine’
8 9 10 |
# File 'lib/paymentsjs-rails.rb', line 8 def city @city end |
#environment ⇒ Object (readonly)
require ‘paymentsjs-rails/rails/engine’
8 9 10 |
# File 'lib/paymentsjs-rails.rb', line 8 def environment @environment end |
#mid ⇒ Object (readonly)
require ‘paymentsjs-rails/rails/engine’
8 9 10 |
# File 'lib/paymentsjs-rails.rb', line 8 def mid @mid end |
#name ⇒ Object (readonly)
require ‘paymentsjs-rails/rails/engine’
8 9 10 |
# File 'lib/paymentsjs-rails.rb', line 8 def name @name end |
#postback_url ⇒ Object (readonly)
require ‘paymentsjs-rails/rails/engine’
8 9 10 |
# File 'lib/paymentsjs-rails.rb', line 8 def postback_url @postback_url end |
#pre_auth ⇒ Object (readonly)
require ‘paymentsjs-rails/rails/engine’
8 9 10 |
# File 'lib/paymentsjs-rails.rb', line 8 def pre_auth @pre_auth end |
#req_id ⇒ Object (readonly)
require ‘paymentsjs-rails/rails/engine’
8 9 10 |
# File 'lib/paymentsjs-rails.rb', line 8 def req_id @req_id end |
#request_type ⇒ Object (readonly)
require ‘paymentsjs-rails/rails/engine’
8 9 10 |
# File 'lib/paymentsjs-rails.rb', line 8 def request_type @request_type end |
#salt ⇒ Object (readonly)
require ‘paymentsjs-rails/rails/engine’
8 9 10 |
# File 'lib/paymentsjs-rails.rb', line 8 def salt @salt end |
#state ⇒ Object (readonly)
require ‘paymentsjs-rails/rails/engine’
8 9 10 |
# File 'lib/paymentsjs-rails.rb', line 8 def state @state end |
#zip ⇒ Object (readonly)
require ‘paymentsjs-rails/rails/engine’
8 9 10 |
# File 'lib/paymentsjs-rails.rb', line 8 def zip @zip end |