workarea-payware_connect 2.1.2
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 +7 -0
- data/.editorconfig +20 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +37 -0
- data/.github/ISSUE_TEMPLATE/documentation-request.md +17 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- data/.github/workflows/ci.yml +54 -0
- data/.gitignore +13 -0
- data/.rubocop.yml +2 -0
- data/CHANGELOG.md +63 -0
- data/CODE_OF_CONDUCT.md +3 -0
- data/CONTRIBUTING.md +3 -0
- data/Gemfile +9 -0
- data/LICENSE.md +3 -0
- data/README.md +53 -0
- data/Rakefile +54 -0
- data/app/models/workarea/payment/authorize/credit_card.decorator +37 -0
- data/app/models/workarea/payment/capture/credit_card.decorator +14 -0
- data/app/models/workarea/payment/payware_credit_card.decorator +24 -0
- data/app/models/workarea/payment/purchase/credit_card.decorator +37 -0
- data/app/models/workarea/payment/refund/credit_card.decorator +14 -0
- data/app/models/workarea/payment/store_credit_card.decorator +13 -0
- data/app/workers/workarea/save_user_order_details.decorator +33 -0
- data/bin/rails +18 -0
- data/config/initializers/00_defaults.rb +1 -0
- data/doc/PWCTestAccount_WorldPay ecom.pages +0 -0
- data/doc/validation/(Completed v2)PAYware Connect Validation Worksheet 2015 V2 .doc +0 -0
- data/doc/validation/(Completed v3)PAYware Connect Validation Worksheet 2015 V2 .doc +0 -0
- data/doc/validation/PAYware Connect Validation Letter Weblinc 09-11-2015.pdf +0 -0
- data/doc/validation/PAYware Connect Validation Letter Weblinc 10-21-2015.pdf +0 -0
- data/lib/active_merchant/billing/bogus_payware_connect_gateway.rb +130 -0
- data/lib/active_merchant/billing/payware_connect_gateway.rb +137 -0
- data/lib/active_merchant/billing/payware_connect_gateway/actions/authorize.rb +63 -0
- data/lib/active_merchant/billing/payware_connect_gateway/actions/capture.rb +26 -0
- data/lib/active_merchant/billing/payware_connect_gateway/actions/purchase.rb +59 -0
- data/lib/active_merchant/billing/payware_connect_gateway/actions/refund.rb +29 -0
- data/lib/active_merchant/billing/payware_connect_gateway/actions/void.rb +20 -0
- data/lib/active_merchant/billing/payware_connect_gateway/admin_actions/add_contract.rb +9 -0
- data/lib/active_merchant/billing/payware_connect_gateway/admin_actions/add_customer.rb +9 -0
- data/lib/active_merchant/billing/payware_connect_gateway/admin_actions/add_customer_and_contract.rb +10 -0
- data/lib/active_merchant/billing/payware_connect_gateway/admin_actions/update_contract.rb +9 -0
- data/lib/active_merchant/billing/payware_connect_gateway/admin_actions/update_customer.rb +9 -0
- data/lib/active_merchant/billing/payware_connect_gateway/admin_xml_builder.rb +105 -0
- data/lib/active_merchant/billing/payware_connect_gateway/xml_builder.rb +35 -0
- data/lib/active_merchant/billing/payware_response.rb +9 -0
- data/lib/validation.rb +25 -0
- data/lib/workarea/payware_connect.rb +43 -0
- data/lib/workarea/payware_connect/engine.rb +8 -0
- data/lib/workarea/payware_connect/version.rb +5 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/config/manifest.js +4 -0
- data/test/dummy/app/assets/images/.keep +0 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/stylesheets/application.css +15 -0
- data/test/dummy/app/controllers/application_controller.rb +3 -0
- data/test/dummy/app/controllers/concerns/.keep +0 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/jobs/application_job.rb +2 -0
- data/test/dummy/app/mailers/application_mailer.rb +4 -0
- data/test/dummy/app/models/concerns/.keep +0 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
- data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/bin/setup +34 -0
- data/test/dummy/bin/update +29 -0
- data/test/dummy/config.ru +5 -0
- data/test/dummy/config/application.rb +24 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/cable.yml +9 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +56 -0
- data/test/dummy/config/environments/production.rb +86 -0
- data/test/dummy/config/environments/test.rb +44 -0
- data/test/dummy/config/initializers/application_controller_renderer.rb +6 -0
- data/test/dummy/config/initializers/assets.rb +11 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +4 -0
- data/test/dummy/config/initializers/new_framework_defaults.rb +23 -0
- data/test/dummy/config/initializers/workarea.rb +3 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/puma.rb +47 -0
- data/test/dummy/config/routes.rb +5 -0
- data/test/dummy/config/secrets.yml +22 -0
- data/test/dummy/config/spring.rb +6 -0
- data/test/dummy/db/seeds.rb +3 -0
- data/test/dummy/lib/assets/.keep +0 -0
- data/test/dummy/log/.keep +0 -0
- data/test/dummy/public/404.html +67 -0
- data/test/dummy/public/422.html +67 -0
- data/test/dummy/public/500.html +66 -0
- data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
- data/test/dummy/public/apple-touch-icon.png +0 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/integration/workarea/storefront/checkout_side_effects_integration_test.decorator +44 -0
- data/test/lib/active_merchant/billing/payware_connect_gateway_test.rb +280 -0
- data/test/models/workarea/payment/authorize/credit_card_test.decorator +47 -0
- data/test/models/workarea/payment/capture/credit_card_test.decorator +33 -0
- data/test/models/workarea/payment/credit_card_integration_test.decorator +25 -0
- data/test/models/workarea/payment/payware_credit_card_test.rb +44 -0
- data/test/models/workarea/payment/purchase/credit_card_test.decorator +54 -0
- data/test/models/workarea/payment/refund/credit_card_test.decorator +33 -0
- data/test/models/workarea/payment/store_credit_card_test.decorator +10 -0
- data/test/support/workarea/payware_connect_gateway_vcr_config.rb +24 -0
- data/test/system/workarea/admin/payment_transactions_system_test.decorator +37 -0
- data/test/test_helper.rb +12 -0
- data/test/vcr_cassettes/credit_card/auth_capture.yml +127 -0
- data/test/vcr_cassettes/credit_card/auth_void.yml +126 -0
- data/test/vcr_cassettes/credit_card/purchase_void.yml +126 -0
- data/test/vcr_cassettes/credit_card/store_auth.yml +67 -0
- data/test/vcr_cassettes/credit_card/store_purchase.yml +67 -0
- data/test/vcr_cassettes/payware/add_contract.yml +99 -0
- data/test/vcr_cassettes/payware/add_customer.yml +52 -0
- data/test/vcr_cassettes/payware/authorize_credit_card.yml +67 -0
- data/test/vcr_cassettes/payware/authorize_customer_and_contract.yml +161 -0
- data/test/vcr_cassettes/payware/authorize_for_0_credit_card.yml +67 -0
- data/test/vcr_cassettes/payware/authorize_for_0_troutd.yml +130 -0
- data/test/vcr_cassettes/payware/authorize_troutd.yml +130 -0
- data/test/vcr_cassettes/payware/capture.yml +127 -0
- data/test/vcr_cassettes/payware/refund.yml +223 -0
- data/test/vcr_cassettes/payware/refund_troutd.yml +128 -0
- data/test/vcr_cassettes/payware/void_authorization.yml +126 -0
- data/test/workers/workarea/save_user_order_details_test.decorator +56 -0
- data/workarea-payware_connect.gemspec +18 -0
- metadata +190 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: b266c36255faa2c5dc4596f15144a67a75d267a1c9a7b2a605efca11b6ae188d
|
|
4
|
+
data.tar.gz: a8ce1c990b29cbf167a97b99d2ca7bb6f1d93b1091a4a5e93d4813235c19ddbf
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 205cb26ffb4b1e78b06c62a1f18508b8265d5e322d396c575569cc23771d5ef31d359e5470a65fb6d3ba6b8138c3ee16d494948aba4b409a67e8c53fad327258
|
|
7
|
+
data.tar.gz: 945dc12fa2784050eb11ae0bf68e686f3dded3ede1e9ee7e53f119baa7676356856fe0936c1a9267c34cf76528e662409340e5fe3c9ac82a800c8d19c419678d
|
data/.editorconfig
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# editorconfig.org
|
|
2
|
+
root = true
|
|
3
|
+
|
|
4
|
+
[*]
|
|
5
|
+
charset = utf-8
|
|
6
|
+
indent_style = space
|
|
7
|
+
end_of_line = lf
|
|
8
|
+
trim_trailing_whitespace = true
|
|
9
|
+
insert_final_newline = true
|
|
10
|
+
|
|
11
|
+
[{*.rb,*.haml,*.decorator,*.yml,*.yaml,*.jbuilder}]
|
|
12
|
+
indent_size = 2
|
|
13
|
+
indent_style = space
|
|
14
|
+
|
|
15
|
+
[{*.js,*.jst,*.ejs,*.scss}]
|
|
16
|
+
indent_size = 4
|
|
17
|
+
|
|
18
|
+
[*.md]
|
|
19
|
+
indent_size = 4
|
|
20
|
+
trim_trailing_whitespace = false
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Create a report to help us improve Workarea
|
|
4
|
+
title: ''
|
|
5
|
+
labels: bug
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
⚠️**Before you create**⚠️
|
|
11
|
+
Please verify the issue you're experiencing is not part of your Workarea project customizations. The best way to do this is with a [vanilla Workarea installation](https://developer.workarea.com/articles/create-a-new-host-application.html). This will help us spend time on fixes/improvements for the whole community. Thank you!
|
|
12
|
+
|
|
13
|
+
**Describe the bug**
|
|
14
|
+
A clear and concise description of what the bug is.
|
|
15
|
+
|
|
16
|
+
**To Reproduce**
|
|
17
|
+
Steps to reproduce the behavior:
|
|
18
|
+
1. Go to '...'
|
|
19
|
+
2. Click on '....'
|
|
20
|
+
3. Scroll down to '....'
|
|
21
|
+
4. See error
|
|
22
|
+
|
|
23
|
+
**Expected behavior**
|
|
24
|
+
A clear and concise description of what you expected to happen.
|
|
25
|
+
|
|
26
|
+
**Workarea Setup (please complete the following information):**
|
|
27
|
+
- Workarea Version: [e.g. v3.4.6]
|
|
28
|
+
- Plugins [e.g. workarea-blog, workarea-sitemaps]
|
|
29
|
+
|
|
30
|
+
**Attachments**
|
|
31
|
+
If applicable, add any attachments to help explain your problem, things like:
|
|
32
|
+
- screenshots
|
|
33
|
+
- Gemfile.lock
|
|
34
|
+
- test cases
|
|
35
|
+
|
|
36
|
+
**Additional context**
|
|
37
|
+
Add any other context about the problem here.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Documentation request
|
|
3
|
+
about: Suggest documentation
|
|
4
|
+
title: ''
|
|
5
|
+
labels: documentation
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
**Is your documentation related to a problem? Please describe.**
|
|
11
|
+
A clear and concise description of what the problem is. Ex. I'm confused by [...]
|
|
12
|
+
|
|
13
|
+
**Describe the article you'd like**
|
|
14
|
+
A clear and concise description of what would be in the documentation article.
|
|
15
|
+
|
|
16
|
+
**Additional context**
|
|
17
|
+
Add any other context or screenshots about the feature request here.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature request
|
|
3
|
+
about: Suggest an idea for Workarea
|
|
4
|
+
title: ''
|
|
5
|
+
labels: enhancement
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
**Is your feature request related to a problem? Please describe.**
|
|
11
|
+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
12
|
+
|
|
13
|
+
**Describe the solution you'd like**
|
|
14
|
+
A clear and concise description of what you want to happen.
|
|
15
|
+
|
|
16
|
+
**Describe alternatives you've considered**
|
|
17
|
+
A clear and concise description of any alternative solutions or features you've considered.
|
|
18
|
+
|
|
19
|
+
**Additional context**
|
|
20
|
+
Add any other context or screenshots about the feature request here.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
on: [push]
|
|
3
|
+
|
|
4
|
+
jobs:
|
|
5
|
+
static_analysis:
|
|
6
|
+
runs-on: ubuntu-latest
|
|
7
|
+
steps:
|
|
8
|
+
- uses: actions/checkout@v1
|
|
9
|
+
- uses: workarea-commerce/ci/bundler-audit@v1
|
|
10
|
+
- uses: workarea-commerce/ci/rubocop@v1
|
|
11
|
+
|
|
12
|
+
admin_tests:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v1
|
|
16
|
+
- uses: actions/setup-ruby@v1
|
|
17
|
+
with:
|
|
18
|
+
ruby-version: 2.6.x
|
|
19
|
+
- uses: workarea-commerce/ci/test@v1
|
|
20
|
+
with:
|
|
21
|
+
command: bin/rails app:workarea:test:admin
|
|
22
|
+
|
|
23
|
+
core_tests:
|
|
24
|
+
runs-on: ubuntu-latest
|
|
25
|
+
steps:
|
|
26
|
+
- uses: actions/checkout@v1
|
|
27
|
+
- uses: actions/setup-ruby@v1
|
|
28
|
+
with:
|
|
29
|
+
ruby-version: 2.6.x
|
|
30
|
+
- uses: workarea-commerce/ci/test@v1
|
|
31
|
+
with:
|
|
32
|
+
command: bin/rails app:workarea:test:core
|
|
33
|
+
|
|
34
|
+
storefront_tests:
|
|
35
|
+
runs-on: ubuntu-latest
|
|
36
|
+
steps:
|
|
37
|
+
- uses: actions/checkout@v1
|
|
38
|
+
- uses: actions/setup-ruby@v1
|
|
39
|
+
with:
|
|
40
|
+
ruby-version: 2.6.x
|
|
41
|
+
- uses: workarea-commerce/ci/test@v1
|
|
42
|
+
with:
|
|
43
|
+
command: bin/rails app:workarea:test:storefront
|
|
44
|
+
|
|
45
|
+
plugins_tests:
|
|
46
|
+
runs-on: ubuntu-latest
|
|
47
|
+
steps:
|
|
48
|
+
- uses: actions/checkout@v1
|
|
49
|
+
- uses: actions/setup-ruby@v1
|
|
50
|
+
with:
|
|
51
|
+
ruby-version: 2.6.x
|
|
52
|
+
- uses: workarea-commerce/ci/test@v1
|
|
53
|
+
with:
|
|
54
|
+
command: bin/rails app:workarea:test:plugins
|
data/.gitignore
ADDED
data/.rubocop.yml
ADDED
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
Workarea Payware Connect 2.1.2 (2020-01-21)
|
|
2
|
+
--------------------------------------------------------------------------------
|
|
3
|
+
|
|
4
|
+
* Fix Tests for 2020
|
|
5
|
+
|
|
6
|
+
Update all tests so that they no longer depend on the year 2020 as an
|
|
7
|
+
expiration year. Instead, use the method provided by Workarea.
|
|
8
|
+
|
|
9
|
+
PAYWARE-1
|
|
10
|
+
Tom Scott
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
Workarea Payware Connect 2.1.1 (2019-05-28)
|
|
15
|
+
--------------------------------------------------------------------------------
|
|
16
|
+
|
|
17
|
+
* Update PaywareConnect API URLs
|
|
18
|
+
|
|
19
|
+
WPC-8
|
|
20
|
+
Eric Pigeon
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
Workarea Payware Connect 2.1.0 (2019-04-02)
|
|
25
|
+
--------------------------------------------------------------------------------
|
|
26
|
+
|
|
27
|
+
* Update for v3.4 compatibility
|
|
28
|
+
|
|
29
|
+
* Add CI scripts
|
|
30
|
+
* Update Gemfile
|
|
31
|
+
* Rubocop fixes
|
|
32
|
+
* Update decorated test to use Metrics instead of Analytics
|
|
33
|
+
|
|
34
|
+
WPC-7
|
|
35
|
+
Jake Beresford
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
Workarea Payware Connect 2.0.0 (2018-11-21)
|
|
40
|
+
--------------------------------------------------------------------------------
|
|
41
|
+
|
|
42
|
+
* Ensure the partial number is save
|
|
43
|
+
|
|
44
|
+
Ensure partial number is set when saving the payment and when using a
|
|
45
|
+
saved card
|
|
46
|
+
|
|
47
|
+
WPC-6
|
|
48
|
+
Eric Pigeon
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
Workarea Payware Connect 2.0.0.beta (2017-10-18)
|
|
53
|
+
--------------------------------------------------------------------------------
|
|
54
|
+
|
|
55
|
+
* Upgrade for Workarea v3
|
|
56
|
+
|
|
57
|
+
Upgrade for v3 compatibility and add in missing support for refunding
|
|
58
|
+
|
|
59
|
+
WPC-5
|
|
60
|
+
Eric Pigeon
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
data/CODE_OF_CONDUCT.md
ADDED
data/CONTRIBUTING.md
ADDED
data/Gemfile
ADDED
data/LICENSE.md
ADDED
data/README.md
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
Workarea Payware Connect
|
|
2
|
+
================================================================================
|
|
3
|
+
|
|
4
|
+
Payware Connect plugin for the Workarea platform.
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Getting Started
|
|
8
|
+
--------------------------------------------------------------------------------
|
|
9
|
+
NOTES
|
|
10
|
+
-----
|
|
11
|
+
**(9/15/15) Only Pre-auth, Completion, and Void are supported and validated as of v0.9.4.**
|
|
12
|
+
**(10/21/15) Storing cards in user accounts is broken pending verification of business requirements v0.9.5.**
|
|
13
|
+
IF INTEGRATING WITH MACH VALIDATION IS UNNECESSARY.
|
|
14
|
+
SEE VALIDATION LETTER AND WORKSHEET FOR MORE INFO.
|
|
15
|
+
|
|
16
|
+
Revalidation is necessary if any of these change:
|
|
17
|
+
1. Business type
|
|
18
|
+
2. Transaction type supported
|
|
19
|
+
3. Code Changes that may affect Transactions or reports
|
|
20
|
+
4. Change in Processor
|
|
21
|
+
5. Report type supported
|
|
22
|
+
6. New Device Supported
|
|
23
|
+
|
|
24
|
+
The file lib\validation.rb can be used in the console to generate the necessary xml and output to the development.log
|
|
25
|
+
-----
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
Gateways
|
|
29
|
+
--------------------------------------------------------------------------------
|
|
30
|
+
Unless keys are provided in the secrets.yml file the Payware Connect engine will
|
|
31
|
+
use a bogus gateway.
|
|
32
|
+
|
|
33
|
+
If you want to use the live gateway you must include the following keys in your
|
|
34
|
+
secrets.yml:
|
|
35
|
+
|
|
36
|
+
:payware_connect:
|
|
37
|
+
:client_id:
|
|
38
|
+
:login:
|
|
39
|
+
:password:
|
|
40
|
+
:merchant_key:
|
|
41
|
+
:test: # if using sandbox
|
|
42
|
+
|
|
43
|
+
If the above keys are provided the gateway will be automatically configured. For
|
|
44
|
+
more details on this implementation. Test is optional and will default to true.
|
|
45
|
+
|
|
46
|
+
Workarea Platform Documentation
|
|
47
|
+
--------------------------------------------------------------------------------
|
|
48
|
+
|
|
49
|
+
See [https://developer.workarea.com](http://developer.workarea.com) for Workarea platform documentation.
|
|
50
|
+
|
|
51
|
+
Copyright & Licensing
|
|
52
|
+
--------------------------------------------------------------------------------
|
|
53
|
+
Workarea Commerce Platform is released under the [Business Software License](https://github.com/workarea-commerce/workarea/blob/master/LICENSE)
|
data/Rakefile
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
begin
|
|
4
|
+
require "bundler/setup"
|
|
5
|
+
rescue LoadError
|
|
6
|
+
puts "You must `gem install bundler` and `bundle install` to run rake tasks"
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
require "rdoc/task"
|
|
10
|
+
|
|
11
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
|
12
|
+
rdoc.rdoc_dir = "rdoc"
|
|
13
|
+
rdoc.title = "PaywareConnect"
|
|
14
|
+
rdoc.options << "--line-numbers"
|
|
15
|
+
rdoc.rdoc_files.include("README.md")
|
|
16
|
+
rdoc.rdoc_files.include("lib/**/*.rb")
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
|
|
20
|
+
load "rails/tasks/engine.rake"
|
|
21
|
+
load "rails/tasks/statistics.rake"
|
|
22
|
+
load "workarea/changelog.rake"
|
|
23
|
+
|
|
24
|
+
require "rake/testtask"
|
|
25
|
+
|
|
26
|
+
Rake::TestTask.new(:test) do |t|
|
|
27
|
+
t.libs << "lib"
|
|
28
|
+
t.libs << "test"
|
|
29
|
+
t.pattern = "test/**/*_test.rb"
|
|
30
|
+
t.verbose = false
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
task default: :test
|
|
34
|
+
|
|
35
|
+
$LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
|
|
36
|
+
require "workarea/payware_connect/version"
|
|
37
|
+
|
|
38
|
+
desc "Release version #{Workarea::PaywareConnect::VERSION} of the gem"
|
|
39
|
+
task :release do
|
|
40
|
+
host = "https://#{ENV['BUNDLE_GEMS__WEBLINC__COM']}@gems.weblinc.com"
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
Rake::Task["workarea:changelog"].execute
|
|
44
|
+
system "git add CHANGELOG.md"
|
|
45
|
+
system 'git commit -m "Update CHANGELOG"'
|
|
46
|
+
|
|
47
|
+
system "git tag -a v#{Workarea::PaywareConnect::VERSION} -m 'Tagging #{Workarea::PaywareConnect::VERSION}'"
|
|
48
|
+
system "git push origin HEAD --follow-tags"
|
|
49
|
+
|
|
50
|
+
system "gem build workarea-payware_connect.gemspec"
|
|
51
|
+
system "gem push workarea-payware_connect-#{Workarea::PaywareConnect::VERSION}.gem"
|
|
52
|
+
system "gem push workarea-payware_connect-#{Workarea::PaywareConnect::VERSION}.gem --host #{host}"
|
|
53
|
+
system "rm workarea-payware_connect-#{Workarea::PaywareConnect::VERSION}.gem"
|
|
54
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
module Workarea
|
|
2
|
+
decorate Payment::Authorize::CreditCard, with: :payware_connect do
|
|
3
|
+
decorated { delegate :address, to: :tender }
|
|
4
|
+
|
|
5
|
+
def complete!
|
|
6
|
+
transaction.response = handle_active_merchant_errors do
|
|
7
|
+
gateway.authorize(
|
|
8
|
+
transaction.amount.cents,
|
|
9
|
+
tender_payment.merge(billing_address: address)
|
|
10
|
+
)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
if transaction.response.success?
|
|
14
|
+
tender.token = transaction.response.troutd
|
|
15
|
+
tender.save!
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
transaction.response
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def cancel!
|
|
22
|
+
return unless transaction.success?
|
|
23
|
+
|
|
24
|
+
transaction.cancellation = handle_active_merchant_errors do
|
|
25
|
+
gateway.void(transaction.response.troutd)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
private
|
|
30
|
+
|
|
31
|
+
def tender_payment
|
|
32
|
+
return { troutd: tender.token } if tender.tokenized?
|
|
33
|
+
|
|
34
|
+
{ credit_card: tender.to_active_merchant }
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module Workarea
|
|
2
|
+
decorate Payment::Capture::CreditCard, with: :payware_connect do
|
|
3
|
+
def complete!
|
|
4
|
+
validate_reference!
|
|
5
|
+
|
|
6
|
+
transaction.response = handle_active_merchant_errors do
|
|
7
|
+
gateway.capture(
|
|
8
|
+
transaction.amount.cents,
|
|
9
|
+
transaction.reference.response.troutd
|
|
10
|
+
)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module Workarea
|
|
2
|
+
decorate Payment::Tender::CreditCard, Payment::SavedCreditCard, with: :payware_connect do
|
|
3
|
+
decorated do
|
|
4
|
+
field :partial_number, type: String
|
|
5
|
+
|
|
6
|
+
before_validation :save_partial_number, if: :set_partial_number?
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def save_partial_number
|
|
10
|
+
self.partial_number = "#{number.first}-#{number.last(4)}"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
private
|
|
14
|
+
|
|
15
|
+
def set_partial_number?
|
|
16
|
+
number.present? && number !~ /XXXX/
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def set_saved_card_values
|
|
20
|
+
super
|
|
21
|
+
self.partial_number = saved_card.partial_number if saved_card.present?
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|