killbill-cybersource 5.2.0 → 5.2.1

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.
data/NEWS DELETED
@@ -1,85 +0,0 @@
1
- 5.0.2
2
- Change ddl to be compatible with postgresql
3
-
4
- 5.0.1
5
- Re-use original payment processor by default when crediting
6
-
7
- 5.0.0
8
- Initial release for Kill Bill 0.18.x
9
-
10
- 4.0.12
11
- Re-use original payment processor by default when crediting
12
-
13
- 4.0.11
14
- Bugfix for OnDemand API
15
-
16
- 4.0.10
17
- Fix parsing of AVS and CVV responses
18
- Specify User-Agent, X-Request-Id and Content-Type headers to CyberSource
19
- Better handling of 5xx errors
20
-
21
- 4.0.9
22
- Android Pay bugfix
23
- Cancel UNDEFINED payments after 24 hours by default
24
-
25
- 4.0.8
26
- Add Android Pay support
27
- Add support for merchant descriptors
28
- Return processor response in PaymentTransactionInfoPlugin
29
- Update jruby-openssl to 0.9.17 (see jruby/jruby-openssl#94)
30
-
31
- 4.0.7
32
- Fix auth reversal in non-USD
33
- Cancel old UNDEFINED transactions that cannot be found in CyberSource
34
-
35
- 4.0.6
36
- Fix NPE when message is null in the response
37
-
38
- 4.0.5
39
- Fix ApplePay MasterCard implementation
40
-
41
- 4.0.4
42
- Fix $1 verification when external_key_as_order_id is set
43
-
44
- 4.0.3
45
- Add support for business rules on Apple Pay
46
- You can now specify commerce_indicator as a plugin property to override the commerceIndicator value
47
- You can now specify force_validation=true as a plugin property to trigger $1 CC validation in case
48
- the processor used doesn't support $0 auth for that card
49
- Disable costly duplicate checks by default when triggering a payment if the reporting API is configured
50
- - Set check_for_duplicates: true in your configuration to enable them
51
- - No change in the GET path (UNDEFINED transactions will be fixed if possible)
52
- Fix XML parsing of responses (authorization reversal errors weren't parsed correctly)
53
- Improve categorization of error codes to return the right transaction status
54
- Set clientLibrary to 'Kill Bill' and clientLibraryVersion to the plugin version
55
- Change cybersource_responses.message to text
56
-
57
- 4.0.2
58
- Add support for auth reversal after voiding a capture
59
- Add support for ignore_avs and ignore_cvv properties
60
- https://github.com/killbill/killbill-cybersource-plugin/issues/5
61
-
62
- 4.0.1
63
- Add support for standalone credits on CreditCards
64
-
65
- 4.0.0
66
- Initial release for Kill Bill 0.16.x
67
-
68
- 3.0.0
69
- Initial release for Kill Bill 0.15.x
70
-
71
- 1.0.0
72
- Initial release for Kill Bill 0.14.x
73
-
74
- 0.0.4
75
- Update killbill gem to 3.1.11
76
-
77
- 0.0.3
78
- DDL: remove constraints in cybersource_transactions
79
- Make payment calls idempotent using the CyberSource OnDemand API
80
-
81
- 0.0.2
82
- Upgrade killbill framework for connection leaks
83
-
84
- 0.0.1
85
- Initial release
data/README.md DELETED
@@ -1,163 +0,0 @@
1
- killbill-cybersource-plugin
2
- ===========================
3
-
4
- Plugin to use [CyberSource](http://www.cybersource.com/) as a gateway.
5
-
6
- Release builds are available on [Maven Central](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.kill-bill.billing.plugin.ruby%22%20AND%20a%3A%22cybersource-plugin%22) with coordinates `org.kill-bill.billing.plugin.ruby:cybersource-plugin`.
7
-
8
- Kill Bill compatibility
9
- -----------------------
10
-
11
- | Plugin version | Kill Bill version |
12
- | -------------: | ----------------: |
13
- | 1.x.y | 0.14.z |
14
- | 4.x.y | 0.16.z |
15
- | 5.x.y | 0.18.z |
16
-
17
- Requirements
18
- ------------
19
-
20
- The plugin needs a database. The latest version of the schema can be found [here](https://github.com/killbill/killbill-cybersource-plugin/blob/master/db/ddl.sql).
21
-
22
- Configuration
23
- -------------
24
-
25
- ```
26
- curl -v \
27
- -X POST \
28
- -u admin:password \
29
- -H 'X-Killbill-ApiKey: bob' \
30
- -H 'X-Killbill-ApiSecret: lazar' \
31
- -H 'X-Killbill-CreatedBy: admin' \
32
- -H 'Content-Type: text/plain' \
33
- -d ':cybersource:
34
- - :account_id: "merchant_account_1"
35
- :login: "your-login"
36
- :password: "your-password"
37
- - :account_id: "merchant_account_2"
38
- :login: "your-login"
39
- :password: "your-password"' \
40
- http://127.0.0.1:8080/1.0/kb/tenants/uploadPluginConfig/killbill-cybersource
41
- ```
42
-
43
- To go to production, create a `cybersource.yml` configuration file under `/var/tmp/bundles/plugins/ruby/killbill-cybersource/x.y.z/` containing the following:
44
-
45
- ```
46
- :cybersource:
47
- :test: false
48
- ```
49
-
50
- Usage
51
- -----
52
-
53
- To store a credit card (note that CyberSource requires a full billing address, hence the various fields below):
54
-
55
- ```
56
- curl -v \
57
- -X POST \
58
- -u admin:password \
59
- -H 'X-Killbill-ApiKey: bob' \
60
- -H 'X-Killbill-ApiSecret: lazar' \
61
- -H 'X-Killbill-CreatedBy: admin' \
62
- -H 'Content-Type: application/json' \
63
- -d '{
64
- "pluginName": "killbill-cybersource",
65
- "pluginInfo": {
66
- "properties": [
67
- {
68
- "key": "ccFirstName",
69
- "value": "John"
70
- },
71
- {
72
- "key": "ccLastName",
73
- "value": "Doe"
74
- },
75
- {
76
- "key": "address1",
77
- "value": "5th Street"
78
- },
79
- {
80
- "key": "city",
81
- "value": "San Francisco"
82
- },
83
- {
84
- "key": "zip",
85
- "value": "94111"
86
- },
87
- {
88
- "key": "state",
89
- "value": "CA"
90
- },
91
- {
92
- "key": "country",
93
- "value": "USA"
94
- },
95
- {
96
- "key": "ccExpirationMonth",
97
- "value": 12
98
- },
99
- {
100
- "key": "ccExpirationYear",
101
- "value": 2017
102
- },
103
- {
104
- "key": "ccNumber",
105
- "value": "4111111111111111"
106
- }
107
- ]
108
- }
109
- }' \
110
- "http://127.0.0.1:8080/1.0/kb/accounts/2a55045a-ce1d-4344-942d-b825536328f9/paymentMethods?isDefault=true&pluginProperty=skip_gw=true"
111
- ```
112
-
113
- CyberSource also requires an email address during the payment call. The plugin will pull the one from the Kill Bill account. Alternatively, you can pass it as a plugin property:
114
-
115
- ```
116
- curl -v \
117
- -X POST \
118
- -u admin:password \
119
- -H 'X-Killbill-ApiKey: bob' \
120
- -H 'X-Killbill-ApiSecret: lazar' \
121
- -H 'X-Killbill-CreatedBy: admin' \
122
- -H 'Content-Type: application/json' \
123
- -d '{
124
- "transactionType": "AUTHORIZE",
125
- "amount": 5
126
- }' \
127
- http://127.0.0.1:8080/1.0/kb/accounts/2a55045a-ce1d-4344-942d-b825536328f9/payments?pluginProperty=email=john@doe.com
128
- ```
129
-
130
- Plugin properties
131
- -----------------
132
-
133
- | Key | Description |
134
- | ---------------------------: | ------------------------------------------------------------------------|
135
- | skip_gw | If true, skip the call to CyberSource |
136
- | payment_processor_account_id | Config entry name of the merchant account to use |
137
- | external_key_as_order_id | If true, set the payment external key as the CyberSource order id |
138
- | ignore_avs | If true, ignore the results of AVS checking |
139
- | ignore_cvv | If true, ignore the results of CVN checking |
140
- | cc_first_name | Credit card holder first name |
141
- | cc_last_name | Credit card holder last name |
142
- | cc_type | Credit card brand |
143
- | cc_expiration_month | Credit card expiration month |
144
- | cc_expiration_year | Credit card expiration year |
145
- | cc_verification_value | CVC/CVV/CVN |
146
- | email | Purchaser email |
147
- | address1 | Billing address first line |
148
- | address2 | Billing address second line |
149
- | city | Billing address city |
150
- | zip | Billing address zip code |
151
- | state | Billing address state |
152
- | country | Billing address country |
153
- | commerce_indicator | Override the commerce indicator field |
154
- | eci | Network tokenization attribute |
155
- | payment_cryptogram | Network tokenization attribute |
156
- | transaction_id | Network tokenization attribute |
157
- | payment_instrument_name | ApplePay tokenization attribute |
158
- | payment_network | ApplePay tokenization attribute |
159
- | transaction_identifier | ApplePay tokenization attribute |
160
- | source | androidpay for AndroidPay |
161
- | force_validation | If true, trigger a non-$0 auth to validate cards not supporting $0 auth |
162
- | force_validation_amount | Amount to use when force_validation is set |
163
- | merchant_descriptor | Merchant descriptor as `{"name":"Merchant Name","contact":"8888888888"}`|
data/Rakefile DELETED
@@ -1,39 +0,0 @@
1
- #!/usr/bin/env rake
2
-
3
- # Install tasks to build and release the plugin
4
- require 'bundler/setup'
5
- Bundler::GemHelper.install_tasks
6
-
7
- # Install test tasks
8
- require 'rspec/core/rake_task'
9
- namespace :test do
10
- desc 'Run RSpec tests'
11
- RSpec::Core::RakeTask.new do |task|
12
- task.name = 'spec'
13
- task.pattern = './spec/*/*_spec.rb'
14
- end
15
-
16
- namespace :remote do
17
- desc 'Run RSpec remote tests'
18
- RSpec::Core::RakeTask.new do |task|
19
- task.name = 'spec'
20
- task.pattern = './spec/*/remote/*_spec.rb'
21
- end
22
- end
23
-
24
- namespace :ci do
25
- desc 'Run RSpec CI tests'
26
- RSpec::Core::RakeTask.new do |task|
27
- task.name = 'spec'
28
- task.pattern = './spec/**/*_spec.rb'
29
- task.rspec_opts = '--tag ~ci_skip'
30
- end
31
- end
32
- end
33
-
34
- # Install tasks to package the plugin for Killbill
35
- require 'killbill/rake_task'
36
- Killbill::PluginHelper.install_tasks
37
-
38
- # Run tests by default
39
- task :default => 'test:spec'
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 5.2.0
data/config.ru DELETED
@@ -1,4 +0,0 @@
1
- require 'cybersource'
2
- require 'cybersource/application'
3
-
4
- run Sinatra::Application
data/cybersource.yml DELETED
@@ -1,38 +0,0 @@
1
- :cybersource:
2
- - :account_id: default
3
- :test: true
4
- :login: <%= ENV['LOGIN'] %>
5
- :password: <%= ENV['PASSWORD'] %>
6
- # - :account_id: on_demand
7
- # :merchantID: <%= ENV['MERCHANT_ID'] %>
8
- # :username: <%= ENV['OD_USERNAME'] %>
9
- # :password: <%= ENV['OD_PASSWORD'] %>
10
- # :check_for_duplicates: true
11
-
12
- :database:
13
- # SQLite (development)
14
- :adapter: sqlite3
15
- :database: test.db
16
- # For PostgreSQL
17
- # :adapter: postgresql
18
- # :database: 'killbill'
19
- # For MySQL
20
- # :adapter: mariadb
21
- # :username: 'killbill'
22
- # :password: 'killbill'
23
- # :database: 'killbill' # or set the URL :
24
- # #:url: jdbc:mysql://127.0.0.1:3306/killbill
25
- # :driver: org.mariadb.jdbc.Driver # as in KB
26
- # :pool: 30 # AR's default is max 5 connections
27
- # In Kill Bill
28
- # :adapter: mysql
29
- # :jndi: 'killbill/osgi/jdbc'
30
- # :pool: false # false-pool (JNDI pool's max)
31
- # # uncomment if pool does not support JDBC4 :
32
- # #:connection_alive_sql: 'select 1'
33
- # # MySQL adapter #configure_connection defaults :
34
- # # @@SESSION.sql_auto_is_null = 0,
35
- # # @@SESSION.wait_timeout = 2147483,
36
- # # @@SESSION.sql_mode = 'STRICT_ALL_TABLES'
37
- # # ... can be disabled (on AR-JDBC 1.4) using :
38
- # :configure_connection: false
data/db/ddl.sql DELETED
@@ -1,92 +0,0 @@
1
- CREATE TABLE cybersource_payment_methods (
2
- id serial unique,
3
- kb_payment_method_id varchar(255) DEFAULT NULL,
4
- token varchar(255) DEFAULT NULL,
5
- cc_first_name varchar(255) DEFAULT NULL,
6
- cc_last_name varchar(255) DEFAULT NULL,
7
- cc_type varchar(255) DEFAULT NULL,
8
- cc_exp_month varchar(255) DEFAULT NULL,
9
- cc_exp_year varchar(255) DEFAULT NULL,
10
- cc_number varchar(255) DEFAULT NULL,
11
- cc_last_4 varchar(255) DEFAULT NULL,
12
- cc_start_month varchar(255) DEFAULT NULL,
13
- cc_start_year varchar(255) DEFAULT NULL,
14
- cc_issue_number varchar(255) DEFAULT NULL,
15
- cc_verification_value varchar(255) DEFAULT NULL,
16
- cc_track_data varchar(255) DEFAULT NULL,
17
- address1 varchar(255) DEFAULT NULL,
18
- address2 varchar(255) DEFAULT NULL,
19
- city varchar(255) DEFAULT NULL,
20
- state varchar(255) DEFAULT NULL,
21
- zip varchar(255) DEFAULT NULL,
22
- country varchar(255) DEFAULT NULL,
23
- is_deleted boolean NOT NULL DEFAULT '0',
24
- created_at datetime NOT NULL,
25
- updated_at datetime NOT NULL,
26
- kb_account_id varchar(255) DEFAULT NULL,
27
- kb_tenant_id varchar(255) DEFAULT NULL,
28
- PRIMARY KEY (id)
29
- ) /*! ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin */;
30
- CREATE INDEX index_cybersource_payment_methods_kb_account_id ON cybersource_payment_methods(kb_account_id);
31
- CREATE INDEX index_cybersource_payment_methods_kb_payment_method_id ON cybersource_payment_methods(kb_payment_method_id);
32
-
33
- CREATE TABLE cybersource_transactions (
34
- id serial unique,
35
- cybersource_response_id bigint /*! unsigned */ NOT NULL,
36
- api_call varchar(255) NOT NULL,
37
- kb_payment_id varchar(255) NOT NULL,
38
- kb_payment_transaction_id varchar(255) NOT NULL,
39
- transaction_type varchar(255) NOT NULL,
40
- payment_processor_account_id varchar(255) DEFAULT NULL,
41
- txn_id varchar(255) DEFAULT NULL,
42
- amount_in_cents int DEFAULT NULL,
43
- currency varchar(255) DEFAULT NULL,
44
- created_at datetime NOT NULL,
45
- updated_at datetime NOT NULL,
46
- kb_account_id varchar(255) NOT NULL,
47
- kb_tenant_id varchar(255) NOT NULL,
48
- PRIMARY KEY (id)
49
- ) /*! ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin */;
50
- CREATE INDEX index_cybersource_transactions_kb_payment_id ON cybersource_transactions(kb_payment_id);
51
- CREATE INDEX index_cybersource_transactions_cybersource_response_id ON cybersource_transactions(cybersource_response_id);
52
-
53
- CREATE TABLE cybersource_responses (
54
- id serial unique,
55
- api_call varchar(255) NOT NULL,
56
- kb_payment_id varchar(255) DEFAULT NULL,
57
- kb_payment_transaction_id varchar(255) DEFAULT NULL,
58
- transaction_type varchar(255) DEFAULT NULL,
59
- payment_processor_account_id varchar(255) DEFAULT NULL,
60
- message text DEFAULT NULL,
61
- authorisation varchar(255) DEFAULT NULL,
62
- fraud_review boolean DEFAULT NULL,
63
- test boolean DEFAULT NULL,
64
- params_merchant_reference_code varchar(255) DEFAULT NULL,
65
- params_request_id varchar(255) DEFAULT NULL,
66
- params_decision varchar(255) DEFAULT NULL,
67
- params_reason_code varchar(255) DEFAULT NULL,
68
- params_request_token varchar(255) DEFAULT NULL,
69
- params_currency varchar(255) DEFAULT NULL,
70
- params_amount varchar(255) DEFAULT NULL,
71
- params_authorization_code varchar(255) DEFAULT NULL,
72
- params_avs_code varchar(255) DEFAULT NULL,
73
- params_avs_code_raw varchar(255) DEFAULT NULL,
74
- params_cv_code varchar(255) DEFAULT NULL,
75
- params_authorized_date_time varchar(255) DEFAULT NULL,
76
- params_processor_response varchar(255) DEFAULT NULL,
77
- params_reconciliation_id varchar(255) DEFAULT NULL,
78
- params_subscription_id varchar(255) DEFAULT NULL,
79
- avs_result_code varchar(255) DEFAULT NULL,
80
- avs_result_message varchar(255) DEFAULT NULL,
81
- avs_result_street_match varchar(255) DEFAULT NULL,
82
- avs_result_postal_match varchar(255) DEFAULT NULL,
83
- cvv_result_code varchar(255) DEFAULT NULL,
84
- cvv_result_message varchar(255) DEFAULT NULL,
85
- success boolean DEFAULT NULL,
86
- created_at datetime NOT NULL,
87
- updated_at datetime NOT NULL,
88
- kb_account_id varchar(255) DEFAULT NULL,
89
- kb_tenant_id varchar(255) DEFAULT NULL,
90
- PRIMARY KEY (id)
91
- ) /*! ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin */;
92
- CREATE INDEX index_cybersource_responses_kb_payment_id_kb_tenant_id ON cybersource_responses(kb_payment_id, kb_tenant_id);
@@ -1,11 +0,0 @@
1
- class EnlargeMessage < ActiveRecord::Migration
2
-
3
- def change
4
- reversible do |dir|
5
- change_table :cybersource_responses do |t|
6
- dir.up { t.change :message, :text }
7
- dir.down { t.change :message, :string }
8
- end
9
- end
10
- end
11
- end
data/db/schema.rb DELETED
@@ -1,94 +0,0 @@
1
- require 'active_record'
2
-
3
- ActiveRecord::Schema.define(:version => 20140410153635) do
4
- create_table "cybersource_payment_methods", :force => true do |t|
5
- t.string "kb_payment_method_id" # NULL before Kill Bill knows about it
6
- t.string "token" # cybersource id
7
- t.string "cc_first_name"
8
- t.string "cc_last_name"
9
- t.string "cc_type"
10
- t.string "cc_exp_month"
11
- t.string "cc_exp_year"
12
- t.string "cc_number"
13
- t.string "cc_last_4"
14
- t.string "cc_start_month"
15
- t.string "cc_start_year"
16
- t.string "cc_issue_number"
17
- t.string "cc_verification_value"
18
- t.string "cc_track_data"
19
- t.string "address1"
20
- t.string "address2"
21
- t.string "city"
22
- t.string "state"
23
- t.string "zip"
24
- t.string "country"
25
- t.boolean "is_deleted", :null => false, :default => false
26
- t.datetime "created_at", :null => false
27
- t.datetime "updated_at", :null => false
28
- t.string "kb_account_id"
29
- t.string "kb_tenant_id"
30
- end
31
-
32
- add_index(:cybersource_payment_methods, :kb_account_id)
33
- add_index(:cybersource_payment_methods, :kb_payment_method_id)
34
-
35
- create_table "cybersource_transactions", :force => true do |t|
36
- t.integer "cybersource_response_id", :null => false
37
- t.string "api_call", :null => false
38
- t.string "kb_payment_id", :null => false
39
- t.string "kb_payment_transaction_id", :null => false
40
- t.string "transaction_type", :null => false
41
- t.string "payment_processor_account_id"
42
- t.string "txn_id" # cybersource transaction id
43
- # Both null for void
44
- t.integer "amount_in_cents"
45
- t.string "currency"
46
- t.datetime "created_at", :null => false
47
- t.datetime "updated_at", :null => false
48
- t.string "kb_account_id", :null => false
49
- t.string "kb_tenant_id", :null => false
50
- end
51
-
52
- add_index(:cybersource_transactions, :kb_payment_id)
53
- add_index(:cybersource_transactions, :cybersource_response_id)
54
-
55
- create_table "cybersource_responses", :force => true do |t|
56
- t.string "api_call", :null => false
57
- t.string "kb_payment_id"
58
- t.string "kb_payment_transaction_id"
59
- t.string "transaction_type"
60
- t.string "payment_processor_account_id"
61
- t.text "message"
62
- t.string "authorization"
63
- t.boolean "fraud_review"
64
- t.boolean "test"
65
- t.string "params_merchant_reference_code"
66
- t.string "params_request_id"
67
- t.string "params_decision"
68
- t.string "params_reason_code"
69
- t.string "params_request_token"
70
- t.string "params_currency"
71
- t.string "params_amount"
72
- t.string "params_authorization_code"
73
- t.string "params_avs_code"
74
- t.string "params_avs_code_raw"
75
- t.string "params_cv_code"
76
- t.string "params_authorized_date_time"
77
- t.string "params_processor_response"
78
- t.string "params_reconciliation_id"
79
- t.string "params_subscription_id"
80
- t.string "avs_result_code"
81
- t.string "avs_result_message"
82
- t.string "avs_result_street_match"
83
- t.string "avs_result_postal_match"
84
- t.string "cvv_result_code"
85
- t.string "cvv_result_message"
86
- t.boolean "success"
87
- t.datetime "created_at", :null => false
88
- t.datetime "updated_at", :null => false
89
- t.string "kb_account_id"
90
- t.string "kb_tenant_id"
91
- end
92
-
93
- add_index(:cybersource_responses, [:kb_payment_id, :kb_tenant_id])
94
- end