Class: PayOS::Models::Response

Inherits:
Object
  • Object
show all
Defined in:
lib/payOS/models/response.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(response_body, checksum_secret) ⇒ Response

Returns a new instance of Response.



10
11
12
13
14
15
16
17
# File 'lib/payOS/models/response.rb', line 10

def initialize(response_body, checksum_secret)
  @raw_response = response_body
  @code = response_body["code"]
  @desc = response_body["desc"]
  @data = response_body["data"]
  @signature = response_body.dig("data", "signature")
  @checksum_secret = checksum_secret
end

Instance Attribute Details

#codeObject (readonly)

Returns the value of attribute code.



8
9
10
# File 'lib/payOS/models/response.rb', line 8

def code
  @code
end

#dataObject (readonly)

Returns the value of attribute data.



8
9
10
# File 'lib/payOS/models/response.rb', line 8

def data
  @data
end

#descObject (readonly)

Returns the value of attribute desc.



8
9
10
# File 'lib/payOS/models/response.rb', line 8

def desc
  @desc
end

#raw_responseObject (readonly)

Returns the value of attribute raw_response.



8
9
10
# File 'lib/payOS/models/response.rb', line 8

def raw_response
  @raw_response
end

#signatureObject (readonly)

Returns the value of attribute signature.



8
9
10
# File 'lib/payOS/models/response.rb', line 8

def signature
  @signature
end

Instance Method Details

#success?Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/payOS/models/response.rb', line 19

def success?
  code == "00"
end

#verify_signature!Object



23
24
25
26
27
28
29
# File 'lib/payOS/models/response.rb', line 23

def verify_signature!
  return true if @data.nil? || @data["signature"].nil?

  string_to_sign = Utils::Formater.params_to_string(@data.reject { |k, _| k == "signature" })

  Utils::Signature.verify!(string_to_sign, @checksum_secret, @signature)
end