cardknox 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c53c7db0e62bc7bd4799ff878f81554ed381dda6d9989a7054197d73028de198
4
- data.tar.gz: ea882b0a1b4a94dd801d6a755907d4047d9017bbaf8010f0c89373a282d27634
3
+ metadata.gz: 7c8aaf412811cc4de9a7b18b57bc53cb6569a1ff7d603f447f9bc5fd2a0ad542
4
+ data.tar.gz: 19563fc7274c0dca754f3b21fd0b2f83ebafd1faeb64b8633d61e5a8e4fbab30
5
5
  SHA512:
6
- metadata.gz: dbdedf3526d79d36f7c0eea2e6473b6de996e93764bb38654995fb6972e8b2ca3503fc3c69d7e6e26037c861d2cb35d65430ad414037e22ca77f88c6fb04babe
7
- data.tar.gz: a53cf4567ee92d3c840bcc7013e02fab89336fd67003c692956ab3957e55b404fe3bb1943bc7812f52d3ac7cd8a90bd5619c6e904dd8c23b10c78352a7dcdf14
6
+ metadata.gz: b3739e1e43a8886069d4dbf977da63288a19bf1c78d3dde24c9df7e0e26541389636275035b351ce9636cfdc1183ff91cd5b7e4afe232d494f97fa9a92debd36
7
+ data.tar.gz: 504dee42b616762d383302f1ef5e187120595f08fda0a30cb4d00ed0f89c5401c182f17a8c5afce77b9c3b518e27e9b7283eedfbb0a4663095277bac3c1f1263
@@ -21,7 +21,7 @@ module Cardknox
21
21
 
22
22
  def parse(response)
23
23
  JSON.parse(response.body, symbolize_names: true).tap do |payload|
24
- if payload[:xStatus] != "Approved"
24
+ unless ["Approved", "Success"].include?(payload[:xStatus])
25
25
  raise Error::TransactionFailure.new(payload[:xError], response)
26
26
  end
27
27
  end
data/lib/cardknox/api.rb CHANGED
@@ -24,6 +24,16 @@ module Cardknox
24
24
  }))
25
25
  end
26
26
 
27
+ def report(command, params = {})
28
+ @agent.post("/reportjson", params.merge({
29
+ xKey: config.api_key,
30
+ xVersion: config.gateway_version,
31
+ xSoftwareName: config.software_name,
32
+ xSoftwareVersion: config.software_version,
33
+ xCommand: command,
34
+ }))
35
+ end
36
+
27
37
  def status
28
38
  @agent.get("/status")
29
39
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Cardknox
4
- VERSION = "0.1.0"
4
+ VERSION = "0.3.0"
5
5
  end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cardknox
4
+ module Webhook
5
+ class << self
6
+ def verify_signature(params:, secret_key:, signature:)
7
+ sorted_values = params.to_h.sort_by do |key, _value|
8
+ key.downcase
9
+ end.map(&:last).join
10
+
11
+ hexdigest = Digest::MD5.hexdigest(
12
+ "#{sorted_values}#{secret_key}",
13
+ ).upcase
14
+
15
+ hexdigest == signature
16
+ end
17
+ end
18
+ end
19
+ end
data/lib/cardknox.rb CHANGED
@@ -1,7 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "digest"
3
4
  require "faraday"
4
5
  require "zeitwerk"
6
+
5
7
  require_relative "cardknox/version"
6
8
 
7
9
  module Cardknox
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cardknox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Algonauti
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-16 00:00:00.000000000 Z
11
+ date: 2024-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -57,6 +57,7 @@ files:
57
57
  - lib/cardknox/configuration.rb
58
58
  - lib/cardknox/error.rb
59
59
  - lib/cardknox/version.rb
60
+ - lib/cardknox/webhook.rb
60
61
  homepage: https://github.com/algonauti/cardknow
61
62
  licenses:
62
63
  - MIT