workarea-forter 1.2.3 → 1.2.4

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: ca3dfe4d3b7803e1d9c76644c4df4f50b6dea205349b220d38f010160970fda6
4
- data.tar.gz: b562e2893713a08e9ebc878f55cf7a503b8702c1377627a5cab3ab6e3aaed9d7
3
+ metadata.gz: e6c4f679107573bc38a3e4a2ec421d83e53a85907082c678ff47553c4b3f9785
4
+ data.tar.gz: 1aa0edd84330d5b6fee488117362f134f38b2e2763951585cfc36ce1de1c810d
5
5
  SHA512:
6
- metadata.gz: 831c1bc85896e8ff76b8b3b53c0566081c0aba02af58dc3153490489d282a3c37a93e170d6d62b04edf10e302ec209092d4067f13891404c346ed3ac9706505c
7
- data.tar.gz: c705e20608fdd0046ffc269e094725971f0ad28ae93a7caf79a7b4d47eba85e25addf41f37ac4a576a57885cd26224016151c73ccde9344aba8bcc9516c4e965
6
+ metadata.gz: 2813c8e8aad7976352238666d8aeccb569e443f946f726ae0d2281c3346602940449613ac1b311da9fd3d8ac86e2420eaaf488c67fdee5ffecfcdc376ad88835
7
+ data.tar.gz: 877214170590717f90ac8ada8d3db7f57c84be2a62842f156cdfcbb2d7fcc26a6ca1e767a6adddaf72e85f2872c8cff9b5afa799923cc8b9b853d501628fa377
data/.gitignore CHANGED
@@ -15,3 +15,4 @@ node_modules
15
15
  coverage/
16
16
  package.json
17
17
  yarn.lock
18
+ .rubocop-http*
@@ -1,3 +1,25 @@
1
+ Workarea Forter 1.2.4 (2019-10-16)
2
+ --------------------------------------------------------------------------------
3
+
4
+ * Set default Forter API version to 2.3
5
+
6
+ API version 2.3 allows for the general payment option, which
7
+ allows users to pass payment types that are not explicitly supported
8
+ by Forter.
9
+ Jeff Yucis
10
+
11
+ * Add additional data to forter credit card tender data.
12
+
13
+ Adds the gateway name and transaction ID to the credit card
14
+ information sent to forter when making a decision.
15
+ Jeff Yucis
16
+
17
+ * Update README
18
+
19
+ Matt Duffy
20
+
21
+
22
+
1
23
  Workarea Forter 1.2.3 (2019-09-17)
2
24
  --------------------------------------------------------------------------------
3
25
 
data/Gemfile CHANGED
@@ -3,7 +3,8 @@ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
3
3
 
4
4
  gemspec
5
5
 
6
- gem 'workarea'
6
+ gem 'workarea', github: 'workarea-commerce/workarea', branch: 'v3.4-stable'
7
+
7
8
  gem 'byebug'
8
9
  group :test do
9
10
  gem 'simplecov', require: false
data/README.md CHANGED
@@ -20,6 +20,24 @@ This plugin is compatible with following Workarea supported payment types:
20
20
 
21
21
  Payment types not in this list will still function but are not eligible for fraud protection.
22
22
 
23
+ Getting Started
24
+ --------------------------------------------------------------------------------
25
+
26
+ Add the gem to your application's Gemfile:
27
+
28
+ ```ruby
29
+ # ...
30
+ gem 'workarea-forter'
31
+ # ...
32
+ ```
33
+
34
+ Update your application's bundle.
35
+
36
+ ```bash
37
+ cd path/to/application
38
+ bundle
39
+ ```
40
+
23
41
  Configuration
24
42
  --------------------------------------------------------------------------------
25
43
  Add the secret key to your secrets file:
@@ -43,6 +61,12 @@ You can specify which version of the API via configuration:
43
61
 
44
62
  If no API version is configured the default of **2.2** will be used.
45
63
 
64
+ Setting a configuration value for ```credit_card_gateway_name``` value will improve the decision accuracy. This is the name of the credit card processor used by the host application.
65
+
66
+ ```ruby
67
+ Workarea.config.forter.credit_card_gateway_name = "Stripe"
68
+ ```
69
+
46
70
  Implementation Notes
47
71
  --------------------------------------------------------------------------------
48
72
  **Verifcation Data**
@@ -64,50 +88,12 @@ Be sure to test that the following data is sent in the **verificationResults**
64
88
 
65
89
  Credit card authorizations are voided when a transaction is deemed to be fraudulent. The void action relies on the #cancel! method implemented on each tenders authorization class. It is very important to implement and test this method when creating a new payment type.
66
90
 
67
-
68
- Getting Started
91
+ Workarea Commerce Documentation
69
92
  --------------------------------------------------------------------------------
70
93
 
71
- This gem contains a rails engine that must be mounted onto a host Rails application.
94
+ See [https://developer.workarea.com](https://developer.workarea.com) for Workarea Commerce documentation.
72
95
 
73
- To access Workarea gems and source code, you must be an employee of WebLinc or a licensed retailer or partner.
74
-
75
- Workarea gems are hosted privately at https://gems.weblinc.com/.
76
- You must have individual or team credentials to install gems from this server. Add your gems server credentials to Bundler:
77
-
78
- bundle config gems.weblinc.com my_username:my_password
79
-
80
- Or set the appropriate environment variable in a shell startup file:
81
-
82
- export BUNDLE_GEMS__WEBLINC__COM='my_username:my_password'
83
-
84
- Then add the gem to your application's Gemfile specifying the source:
85
-
86
- # ...
87
- gem 'workarea-forter', source: 'https://gems.weblinc.com'
88
- # ...
89
-
90
- Or use a source block:
91
-
92
- # ...
93
- source 'https://gems.weblinc.com' do
94
- gem 'workarea-forter'
95
- end
96
- # ...
97
-
98
- Update your application's bundle.
99
-
100
- cd path/to/application
101
- bundle
102
-
103
- Workarea Platform Documentation
96
+ License
104
97
  --------------------------------------------------------------------------------
105
98
 
106
- See [http://developer.weblinc.com](http://developer.weblinc.com) for Workarea platform documentation.
107
-
108
- Copyright & Licensing
109
- --------------------------------------------------------------------------------
110
-
111
- Copyright WebLinc 2018. All rights reserved.
112
-
113
- For licensing, contact sales@workarea.com.
99
+ Workarea Forter is released under the [Business Software License](LICENSE)
data/Rakefile CHANGED
@@ -34,10 +34,10 @@ desc "Release version #{Workarea::Forter::VERSION} of the gem"
34
34
  task :release do
35
35
  host = "https://#{ENV['BUNDLE_GEMS__WEBLINC__COM']}@gems.weblinc.com"
36
36
 
37
- #Rake::Task['workarea:changelog'].execute
38
- #system 'git add CHANGELOG.md'
39
- #system 'git commit -m "Update CHANGELOG"'
40
- #system 'git push origin HEAD'
37
+ Rake::Task['workarea:changelog'].execute
38
+ system 'git add CHANGELOG.md'
39
+ system 'git commit -m "Update CHANGELOG"'
40
+ system 'git push origin HEAD'
41
41
 
42
42
  system "git tag -a v#{Workarea::Forter::VERSION} -m 'Tagging #{Workarea::Forter::VERSION}'"
43
43
  system 'git push --tags'
@@ -19,7 +19,8 @@ module Workarea
19
19
  expirationMonth: cc_month(tender.month),
20
20
  expirationYear: tender.year.to_s,
21
21
  cardBrand: tender.issuer,
22
- nameOnCard: "#{address.first_name} #{address.last_name}"
22
+ nameOnCard: "#{address.first_name} #{address.last_name}",
23
+ paymentGatewayData: payment_gateway_data
23
24
  }.merge!(verification_results)
24
25
  }
25
26
  end
@@ -67,6 +68,15 @@ module Workarea
67
68
  gateway_class = Workarea.config.gateways.credit_card.class.to_s
68
69
  Workarea.config.forter.response_code[gateway_class].call(transaction) rescue nil
69
70
  end
71
+
72
+ def payment_gateway_data
73
+ return unless tender.transactions.present? && transaction.present?
74
+
75
+ {
76
+ gatewayName: Workarea::Forter.config.credit_card_gateway_name || "not specified",
77
+ gatewayTransactionId: transaction.response.authorization.to_s
78
+ }
79
+ end
70
80
  end
71
81
  end
72
82
  end
@@ -5,11 +5,13 @@ Workarea.configure do |config|
5
5
  config.forter = ActiveSupport::Configurable::Configuration.new
6
6
  config.forter.site_id = nil
7
7
 
8
- config.forter.api_version = "2.2"
8
+ config.forter.api_version = "2.3"
9
9
 
10
10
  config.forter.api_timeout = 2
11
11
  config.forter.open_timeout = 2
12
12
 
13
+ config.forter.credit_card_gateway_name = nil # name of payment gateway used, ie. Stripe
14
+
13
15
  config.forter.response_code = {
14
16
  'ActiveMerchant::Billing::StripeGateway' => -> (transaction) { transaction.params['failure_code'] },
15
17
  'ActiveMerchant::Billing::BraintreeBlueGateway' => -> (transaction) { transaction.response.params["braintree_transaction"]["processor_response_code"] },
@@ -1,5 +1,5 @@
1
1
  module Workarea
2
2
  module Forter
3
- VERSION = "1.2.3"
3
+ VERSION = "1.2.4"
4
4
  end
5
5
  end
@@ -4,36 +4,43 @@ module Workarea
4
4
  module Foter
5
5
  class OrderTest < Workarea::TestCase
6
6
  def test_to_h
7
- user = create_user(id: 'u-1234', first_name: 'jeffy', last_name: 'tester')
8
- order = create_placed_forter_order(overrides = { id: '1234', user_id: user.id })
9
- hsh = Forter::Order.new(order).to_h
7
+ Workarea.with_config do |config|
8
+ config.forter.credit_card_gateway_name = "cc_processor"
10
9
 
11
- payment = Workarea::Payment.find('1234')
12
- shipping = Workarea::Shipping.find_by_order('1234')
10
+ user = create_user(id: 'u-1234', first_name: 'jeffy', last_name: 'tester')
11
+ order = create_placed_forter_order(overrides = { id: '1234', user_id: user.id })
12
+ hsh = Forter::Order.new(order).to_h
13
+
14
+ payment = Workarea::Payment.find('1234')
15
+ shipping = Workarea::Shipping.find_by_order('1234')
16
+
17
+ assert_equal(order.id, hsh[:orderId])
18
+ assert_equal("WEB", hsh[:orderType])
13
19
 
14
- assert_equal(order.id, hsh[:orderId])
15
- assert_equal("WEB", hsh[:orderType])
20
+ assert_equal(payment.address.first_name, hsh[:primaryRecipient][:personalDetails][:firstName])
21
+ assert_equal(payment.address.last_name, hsh[:primaryRecipient][:personalDetails][:lastName])
16
22
 
17
- assert_equal(payment.address.first_name, hsh[:primaryRecipient][:personalDetails][:firstName])
18
- assert_equal(payment.address.last_name, hsh[:primaryRecipient][:personalDetails][:lastName])
23
+ assert_equal(shipping.address.street, hsh[:primaryRecipient][:address][:address1])
24
+ assert_equal(shipping.address.city, hsh[:primaryRecipient][:address][:city])
25
+ assert_equal(shipping.address.country.alpha2, hsh[:primaryRecipient][:address][:country])
19
26
 
20
- assert_equal(shipping.address.street, hsh[:primaryRecipient][:address][:address1])
21
- assert_equal(shipping.address.city, hsh[:primaryRecipient][:address][:city])
22
- assert_equal(shipping.address.country.alpha2, hsh[:primaryRecipient][:address][:country])
27
+ assert_equal(order.total_price.to_s, hsh[:totalAmount][:amountUSD])
23
28
 
24
- assert_equal(order.total_price.to_s, hsh[:totalAmount][:amountUSD])
29
+ assert_equal(1, hsh[:cartItems].size)
25
30
 
26
- assert_equal(1, hsh[:cartItems].size)
31
+ assert_equal(1, hsh[:payment].size)
32
+ assert_equal(order.total_price.to_s, hsh[:payment].first[:amount][:amountUSD])
27
33
 
28
- assert_equal(1, hsh[:payment].size)
29
- assert_equal(order.total_price.to_s, hsh[:payment].first[:amount][:amountUSD])
34
+ assert_equal("cc_processor", hsh[:payment].first[:creditCard][:paymentGatewayData][:gatewayName])
35
+ assert(hsh[:payment].first[:creditCard][:paymentGatewayData][:gatewayTransactionId].present?)
30
36
 
31
- assert_equal(user.first_name, hsh[:accountOwner][:firstName])
32
- assert_equal(user.last_name, hsh[:accountOwner][:lastName])
33
- assert_equal(user.email, hsh[:accountOwner][:email])
34
- assert_equal(user.id, hsh[:accountOwner][:accountId])
37
+ assert_equal(user.first_name, hsh[:accountOwner][:firstName])
38
+ assert_equal(user.last_name, hsh[:accountOwner][:lastName])
39
+ assert_equal(user.email, hsh[:accountOwner][:email])
40
+ assert_equal(user.id, hsh[:accountOwner][:accountId])
35
41
 
36
- assert_equal("123ABC", hsh[:connectionInformation][:forterTokenCookie])
42
+ assert_equal("123ABC", hsh[:connectionInformation][:forterTokenCookie])
43
+ end
37
44
  end
38
45
 
39
46
  def test_to_h_with_no_shipping_address
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: workarea-forter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.3
4
+ version: 1.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Yucis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-17 00:00:00.000000000 Z
11
+ date: 2019-10-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: workarea