killbill-paypal-express 5.0.4 → 5.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/NEWS DELETED
@@ -1,120 +0,0 @@
1
- 5.0.3
2
- Fix for https://github.com/killbill/killbill-paypal-express-plugin/issues/26
3
-
4
- 5.0.2
5
- Make text on checkout button configurable (through review plugin property)
6
-
7
- 5.0.1
8
- Always issue GetExpressCheckoutDetails during authorize or purchase to store payer info
9
- Store PayPal error codes
10
- Added private APIs for look-ups
11
-
12
- 5.0.0
13
- Initial release for Kill Bill 0.18.x
14
-
15
- 4.1.7
16
- Update jruby-openssl to 0.9.17 (see jruby/jruby-openssl#94)
17
-
18
- 4.1.6
19
- Add invoice_id in refund call
20
-
21
- 4.1.5
22
- Add more options to the build_form_descriptor call
23
-
24
- 4.1.4
25
- Cancel expired payments
26
- Always store the PayPal Payer Id
27
-
28
- 4.1.3
29
- Add support for auth-only HPP flow
30
- Add support for multiple merchant accounts
31
-
32
- 4.1.2
33
- Configure ButtonSource parameter
34
-
35
- 4.1.1
36
- Add support for max_amount parameter
37
- Update message column in paypal_express_reponses to text
38
-
39
- 4.1.0
40
- Initial support for HPP flows (one-off payments)
41
-
42
- 4.0.0
43
- Initial release for Kill Bill 0.16.x
44
-
45
- 3.0.0
46
- Initial release for Kill Bill 0.15.x
47
-
48
- 2.0.0
49
- Initial release for Kill Bill 0.14.x
50
-
51
- 1.8.1
52
- Fix add_payment_method to retrieve the token from the properties embedded in the payment_method data
53
-
54
- 1.8.0
55
- Add missing require 'openssl'
56
-
57
- 1.7.1
58
- Update to generated template
59
-
60
- 1.7.0
61
- Update to latest killbill
62
- Change groupId to org.kill-bill.billing.plugin.ruby
63
-
64
- 1.6.7
65
- Add jruby-openssl dependency
66
-
67
- 1.6.6
68
- Fix packaging
69
-
70
- 1.6.5
71
- Implement payments and refunds search
72
- Fix amount to cents conversion
73
- Update to latest killbill (2.0.0)
74
-
75
- 1.6.4
76
- Update to latest killbill (1.9.0)
77
-
78
- 1.6.3
79
- Fix bugs for currency conversion during payment/refunds
80
-
81
- 1.6.2
82
- Add implementation for currency conversion
83
-
84
- 1.6.1
85
- Update killbill version (1.8.3)
86
-
87
- 1.6.0
88
- Add pagination support for search
89
- Improve search algorithm
90
- Allow setting of default payment description in configuration file
91
-
92
- 1.5.4
93
- Fix issue #1
94
-
95
- 1.5.3
96
- Fix issue #1 (did not fix it)
97
-
98
- 1.5.2
99
- Don't populate the second_payment_reference_id (see killbill/killbill-analytics-plugin#11)
100
-
101
- 1.5.1
102
- Fix bug in get_payment_info and get_refund_info
103
-
104
- 1.5.0
105
- Update to latest killbill 1.6.0 (new entitlement apis)
106
-
107
- 1.4.1
108
- Update to active_merchant 1.36.0 (no need for custom build anymore)
109
-
110
- 1.4.0
111
- Update to killbill 1.4.0
112
-
113
- 1.3.0
114
- Update to latest killbill (1.3.0 version)
115
-
116
- 1.2.0
117
- Update to killbill 1.2.0
118
-
119
- 1.1.0
120
- Update to killbill 1.1.2
data/README.md DELETED
@@ -1,265 +0,0 @@
1
- killbill-paypal-express-plugin
2
- ==============================
3
-
4
- Plugin to use [PayPal Express Checkout](https://www.paypal.com/webapps/mpp/express-checkout) 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%22paypal-express-plugin%22) with coordinates `org.kill-bill.billing.plugin.ruby:paypal-express-plugin`.
7
-
8
- A full end-to-end integration demo is available [here](https://github.com/killbill/killbill-paypal-demo).
9
-
10
- Kill Bill compatibility
11
- -----------------------
12
-
13
- | Plugin version | Kill Bill version |
14
- | -------------: | ----------------: |
15
- | 2.x.y | 0.14.z |
16
- | 4.x.y | 0.16.z |
17
- | 5.x.y | 0.18.z |
18
-
19
- Requirements
20
- ------------
21
-
22
- The plugin needs a database. The latest version of the schema can be found [here](https://github.com/killbill/killbill-paypal-express-plugin/blob/master/db/ddl.sql).
23
-
24
- Configuration
25
- -------------
26
-
27
- ```
28
- curl -v \
29
- -X POST \
30
- -u admin:password \
31
- -H 'X-Killbill-ApiKey: bob' \
32
- -H 'X-Killbill-ApiSecret: lazar' \
33
- -H 'X-Killbill-CreatedBy: admin' \
34
- -H 'Content-Type: text/plain' \
35
- -d ':paypal_express:
36
- :signature: "your-paypal-signature"
37
- :login: "your-username-facilitator.something.com"
38
- :password: "your-password"' \
39
- http://127.0.0.1:8080/1.0/kb/tenants/uploadPluginConfig/killbill-paypal-express
40
- ```
41
-
42
- To go to production, create a `paypal_express.yml` configuration file under `/var/tmp/bundles/plugins/ruby/killbill-paypal-express/x.y.z/` containing the following:
43
-
44
- ```
45
- :paypal_express:
46
- :test: false
47
- ```
48
-
49
- Usage
50
- -----
51
-
52
- ### One-off payments
53
-
54
- Create a payment method for the account:
55
-
56
- ```
57
- curl -v \
58
- -X POST \
59
- -u admin:password \
60
- -H 'X-Killbill-ApiKey: bob' \
61
- -H 'X-Killbill-ApiSecret: lazar' \
62
- -H 'X-Killbill-CreatedBy: admin' \
63
- -H 'Content-Type: application/json' \
64
- -d '{
65
- "pluginName": "killbill-paypal-express",
66
- "pluginInfo": {}
67
- }' \
68
- "http://127.0.0.1:8080/1.0/kb/accounts/<ACCOUNT_ID>/paymentMethods?isDefault=true"
69
- ```
70
-
71
- #### Without a pending payment
72
-
73
- Generate the redirect URL using buildFormDescriptor (this will invoke `SetExpressCheckout`):
74
-
75
- ```
76
- curl -v \
77
- -X POST \
78
- -u admin:password \
79
- -H 'X-Killbill-ApiKey: bob' \
80
- -H 'X-Killbill-ApiSecret: lazar' \
81
- -H 'X-Killbill-CreatedBy: admin' \
82
- -H 'Content-Type: application/json' \
83
- -d '{
84
- "formFields": [{
85
- "key": "amount",
86
- "value": 10
87
- },{
88
- "key": "currency",
89
- "value": "USD"
90
- }]
91
- }' \
92
- "http://127.0.0.1:8080/1.0/kb/paymentGateways/hosted/form/<ACCOUNT_ID>"
93
- ```
94
-
95
- The customer should be redirected to the url specified in the `formUrl` entry of the response, e.g. https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-20G53990M6953444J.
96
-
97
- Once the customer comes back from the PayPal flow, trigger the payment:
98
-
99
- ```
100
- curl -v \
101
- -X POST \
102
- -u admin:password \
103
- -H 'X-Killbill-ApiKey: bob' \
104
- -H 'X-Killbill-ApiSecret: lazar' \
105
- -H 'X-Killbill-CreatedBy: admin' \
106
- -H 'Content-Type: application/json' \
107
- -d '{
108
- "transactionType": "PURCHASE",
109
- "amount": "10",
110
- "currency": "USD"
111
- }' \
112
- "http://127.0.0.1:8080/1.0/kb/accounts/<ACCOUNT_ID>/payments"
113
- ```
114
-
115
- #### With a pending payment
116
-
117
- Generate the redirect URL using buildFormDescriptor (this will invoke `SetExpressCheckout`):
118
-
119
- ```
120
- curl -v \
121
- -X POST \
122
- -u admin:password \
123
- -H 'X-Killbill-ApiKey: bob' \
124
- -H 'X-Killbill-ApiSecret: lazar' \
125
- -H 'X-Killbill-CreatedBy: admin' \
126
- -H 'Content-Type: application/json' \
127
- -d '{
128
- "formFields": [{
129
- "key": "amount",
130
- "value": 10
131
- },{
132
- "key": "currency",
133
- "value": "USD"
134
- }]
135
- }' \
136
- "http://127.0.0.1:8080/1.0/kb/paymentGateways/hosted/form/<ACCOUNT_ID>?pluginProperty=create_pending_payment=true"
137
- ```
138
-
139
- The customer should be redirected to the url specified in the `formUrl` entry of the response, e.g. https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-20G53990M6953444J.
140
-
141
- Once the customer comes back from the PayPal flow, complete the payment (the payment id and external key are returned as part of the buildFormDescriptor call):
142
-
143
- ```
144
- curl -v \
145
- -X PUT \
146
- -u admin:password \
147
- -H 'X-Killbill-ApiKey: bob' \
148
- -H 'X-Killbill-ApiSecret: lazar' \
149
- -H 'X-Killbill-CreatedBy: admin' \
150
- -H 'Content-Type: application/json' \
151
- "http://127.0.0.1:8080/1.0/kb/payments/<PAYMENT_ID>"
152
- ```
153
-
154
- ### Recurring payments via a billing agreement ID (BAID)
155
-
156
- Issue the following call to generate a Paypal token:
157
-
158
- ```
159
- curl -v \
160
- -X POST \
161
- -u admin:password \
162
- -H 'X-Killbill-ApiKey: bob' \
163
- -H 'X-Killbill-ApiSecret: lazar' \
164
- -H 'X-Killbill-CreatedBy: admin' \
165
- -H 'Content-Type: application/json' \
166
- -d '{
167
- "kb_account_id": "13d26090-b8d7-11e2-9e96-0800200c9a66",
168
- "currency": "USD",
169
- "options": {
170
- "return_url": "http://www.google.com/?q=SUCCESS",
171
- "cancel_return_url": "http://www.google.com/?q=FAILURE",
172
- "billing_agreement": {
173
- "description": "Your subscription"
174
- }
175
- }
176
- }' \
177
- http://127.0.0.1:8080/plugins/killbill-paypal-express/1.0/setup-checkout
178
- ```
179
-
180
- Kill Bill will return a 302 Found on success. The customer should be redirected to the url specified in the Location header, e.g. https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-20G53990M6953444J.
181
-
182
- Once the customer comes back from the PayPal flow, save the BAID in Kill Bill:
183
-
184
- ```
185
- curl -v \
186
- -X POST \
187
- -u admin:password \
188
- -H 'X-Killbill-ApiKey: bob' \
189
- -H 'X-Killbill-ApiSecret: lazar' \
190
- -H 'X-Killbill-CreatedBy: admin' \
191
- -H 'Content-Type: application/json' \
192
- -d '{
193
- "pluginName": "killbill-paypal-express",
194
- "pluginInfo": {
195
- "properties": [{
196
- "key": "token",
197
- "value": "20G53990M6953444J"
198
- }]
199
- }
200
- }' \
201
- "http://127.0.0.1:8080/1.0/kb/accounts/13d26090-b8d7-11e2-9e96-0800200c9a66/paymentMethods?isDefault=true"
202
- ```
203
-
204
- Plugin properties
205
- -----------------
206
-
207
- | Key | Description |
208
- | ---------------------------: | ----------------------------------------------------------------- |
209
- | skip_gw | If true, skip the call to PayPal |
210
- | token | PayPal token to use |
211
- | payer_id | PayPal Payer id to use |
212
- | create_pending_payment | Create pending payment during buildFormDescriptor call |
213
- | payment_processor_account_id | Config entry name of the merchant account to use |
214
- | external_key_as_order_id | If true, set the payment external key as the PayPal order id |
215
- | email | Purchaser email |
216
- | address1 | Billing address first line |
217
- | address2 | Billing address second line |
218
- | city | Billing address city |
219
- | zip | Billing address zip code |
220
- | state | Billing address state |
221
- | country | Billing address country |
222
-
223
- Below is a list of optional parameters for build_form_descriptor call. More details can be found on PayPal [manual](https://developer.paypal.com/docs/classic/api/merchant/SetExpressCheckout_API_Operation_SOAP/)
224
-
225
- | Key | Description |
226
- | ---------------------------: | ----------------------------------------------------------------- |
227
- | max_amount | Maximum amount parameter |
228
- | auth_mode | If true, [Authorization Payment Action](https://developer.paypal.com/docs/classic/express-checkout/integration-guide/ECRelatedAPIOps/) is adopted. Otherwise, Sale Payment Action is used.|
229
- | no_shipping | Whether or not to show shipping address on PayPal checkout page |
230
- | req_billing_address | Is 1 or 0. The value 1 indicates that you require that the buyer’s billing address on file with PayPal be returned. Setting this element will return `BILLTONAME`, `STREET`, `STREET2`, `CITY`, `STATE`, `ZIP`, and `COUNTRYCODE`. |
231
- | address_override | Determines whether or not the PayPal pages should display the shipping address set by you in this SetExpressCheckout request, not the shipping address on file with PayPal for this buyer.|
232
- | locale | Locale of pages displayed by PayPal during Express Checkout. It is either a two-letter country code or five-character locale code supported by PayPal. |
233
- | brand_name | A label that overrides the business name in the PayPal account on the PayPal hosted checkout pages.|
234
- | page_style | Name of the Custom Payment Page Style for payment pages associated with this button or link. It corresponds to the HTML variable page_style for customizing payment pages. |
235
- | logo_image | A URL to your logo image. Use a valid graphics format, such as .gif, .jpg, or .png. Limit the image to 190 pixels wide by 60 pixels high. |
236
- | header_image | URL for the image you want to appear at the top left of the payment page. The image has a maximum size of 750 pixels wide by 90 pixels high. |
237
- | header_border_color | Sets the border color around the header of the payment page. The border is a 2-pixel perimeter around the header space, which is 750 pixels wide by 90 pixels high. By default, the color is black. |
238
- | header_background_color | Sets the background color for the header of the payment page. By default, the color is white. |
239
- | background_color | Sets the background color for the payment page. By default, the color is white.|
240
- | allow_guest_checkout | If set to true, then the SolutionType is Sole and buyer does not need to create a PayPal account to check out. |
241
- | landing_page | Type of PayPal page to display. It is one of the following values: Billing for Non-PayPal account and Login — PayPal account login. |
242
- | email | Email address of the buyer as entered during checkout. PayPal uses this value to pre-fill the PayPal membership sign-up portion on the PayPal pages. |
243
- | allow_note | Enables the buyer to enter a note to the merchant on the PayPal page during checkout.|
244
- | callback_url | URL to which the callback request from PayPal is sent. It must start with HTTPS for production integration. |
245
- | callback_timeout | An override for you to request more or less time to be able to process the callback request and respond. |
246
- | allow_buyer_optin | Enables the buyer to provide their email address on the PayPal pages to be notified of promotions or special events. |
247
- | shipping_address | Address to which the order is shipped. This parameter must be a JSON Hash with keys of `name`, `address1`, `address2`, `state`, `city`, `country`, `phone`, `zip` and `phone`. |
248
- | address | Address to which the order is shipped if shipping_address is not set. This parameter must be a JSON Hash with keys of `name`, `address1`, `address2`, `state`, `city`, `country`, `phone`, `zip` and `phone`. |
249
- | total_type | Type declaration for the label to be displayed in MiniCart for UX. It is one of the following values: Total or EstimatedTotal. |
250
- | funding_sources | This parameter must be in a JSON hash format with a key being `source`. This element could be used to specify the preferred funding option for a guest user. However, the `landing_page` element must also be set to `Billing`. Otherwise, it is ignored.|
251
- | shipping_options | This parameter must be in a JSON hash format with keys of `default`, `amount`, and `name`. This corresponds to the `ShippingOptionsType` in the SetupExpressCheckout call. |
252
- | subtotal | Sum of cost of all items in this order. For digital goods, this field is required. |
253
- | shipping | Total shipping costs for this order. |
254
- | handling | Total handling costs for this order. |
255
- | tax | Sum of tax for all items in this order. |
256
- | insurance_total | Total shipping insurance costs for this order. The value must be a non-negative currency amount or null if you offer insurance options. |
257
- | shipping_discount | Shipping discount for this order, specified as a negative number. |
258
- | insurance_option_offered | Indicates whether insurance is available as an option the buyer can choose on the PayPal Review page. |
259
- | description | Description of items the buyer is purchasing. |
260
- | custom | A free-form field for your own use. |
261
- | order_id | Your own invoice or tracking number. |
262
- | invoice_id | Your own invoice or tracking number. This will be overridden by order_id. |
263
- | notify_url | Your URL for receiving Instant Payment Notification (IPN) about this transaction. If you do not specify this value in the request, the notification URL from your Merchant Profile is used, if one exists.|
264
- | items | This parameter must be a JSON Array that contains a list of Hashes with keys of `name`, `number`, `quantity`, `amount`, `description`, `url` and `category`. |
265
- | review | If false, checkout button is set to Pay now. |
data/Rakefile DELETED
@@ -1,30 +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
- end
24
-
25
- # Install tasks to package the plugin for Killbill
26
- require 'killbill/rake_task'
27
- Killbill::PluginHelper.install_tasks
28
-
29
- # Run tests by default
30
- task :default => 'test:spec'
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 5.0.4
data/config.ru DELETED
@@ -1,4 +0,0 @@
1
- require 'paypal_express'
2
- require 'paypal_express/application'
3
-
4
- run Sinatra::Application
data/db/ddl.sql DELETED
@@ -1,120 +0,0 @@
1
- CREATE TABLE `paypal_express_payment_methods` (
2
- `id` int(11) NOT NULL AUTO_INCREMENT,
3
- `kb_payment_method_id` varchar(255) DEFAULT NULL,
4
- `paypal_express_payer_id` varchar(255) DEFAULT NULL,
5
- `paypal_express_token` varchar(255) DEFAULT NULL,
6
- `token` varchar(255) DEFAULT NULL,
7
- `cc_first_name` varchar(255) DEFAULT NULL,
8
- `cc_last_name` varchar(255) DEFAULT NULL,
9
- `cc_type` varchar(255) DEFAULT NULL,
10
- `cc_exp_month` varchar(255) DEFAULT NULL,
11
- `cc_exp_year` varchar(255) DEFAULT NULL,
12
- `cc_number` varchar(255) DEFAULT NULL,
13
- `cc_last_4` varchar(255) DEFAULT NULL,
14
- `cc_start_month` varchar(255) DEFAULT NULL,
15
- `cc_start_year` varchar(255) DEFAULT NULL,
16
- `cc_issue_number` varchar(255) DEFAULT NULL,
17
- `cc_verification_value` varchar(255) DEFAULT NULL,
18
- `cc_track_data` varchar(255) DEFAULT NULL,
19
- `address1` varchar(255) DEFAULT NULL,
20
- `address2` varchar(255) DEFAULT NULL,
21
- `city` varchar(255) DEFAULT NULL,
22
- `state` varchar(255) DEFAULT NULL,
23
- `zip` varchar(255) DEFAULT NULL,
24
- `country` varchar(255) DEFAULT NULL,
25
- `is_deleted` tinyint(1) NOT NULL DEFAULT '0',
26
- `created_at` datetime NOT NULL,
27
- `updated_at` datetime NOT NULL,
28
- `kb_account_id` varchar(255) DEFAULT NULL,
29
- `kb_tenant_id` varchar(255) DEFAULT NULL,
30
- PRIMARY KEY (`id`),
31
- KEY `index_paypal_express_payment_methods_on_kb_account_id` (`kb_account_id`),
32
- KEY `index_paypal_express_payment_methods_on_kb_payment_method_id` (`kb_payment_method_id`)
33
- ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
34
-
35
- CREATE TABLE `paypal_express_transactions` (
36
- `id` int(11) NOT NULL AUTO_INCREMENT,
37
- `paypal_express_response_id` int(11) NOT NULL,
38
- `api_call` varchar(255) NOT NULL,
39
- `kb_payment_id` varchar(255) NOT NULL,
40
- `kb_payment_transaction_id` varchar(255) NOT NULL,
41
- `transaction_type` varchar(255) NOT NULL,
42
- `payment_processor_account_id` varchar(255) DEFAULT NULL,
43
- `txn_id` varchar(255) DEFAULT NULL,
44
- `amount_in_cents` int(11) DEFAULT NULL,
45
- `currency` varchar(255) DEFAULT NULL,
46
- `created_at` datetime NOT NULL,
47
- `updated_at` datetime NOT NULL,
48
- `kb_account_id` varchar(255) NOT NULL,
49
- `kb_tenant_id` varchar(255) NOT NULL,
50
- PRIMARY KEY (`id`),
51
- KEY `index_paypal_express_transactions_on_kb_payment_id` (`kb_payment_id`),
52
- KEY `idx_paypal_express_transactions_on_paypal_express_response_id` (`paypal_express_response_id`)
53
- ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
54
-
55
- CREATE TABLE `paypal_express_responses` (
56
- `id` int(11) NOT NULL AUTO_INCREMENT,
57
- `api_call` varchar(255) NOT NULL,
58
- `kb_payment_id` varchar(255) DEFAULT NULL,
59
- `kb_payment_transaction_id` varchar(255) DEFAULT NULL,
60
- `transaction_type` varchar(255) DEFAULT NULL,
61
- `payment_processor_account_id` varchar(255) DEFAULT NULL,
62
- `message` text DEFAULT NULL,
63
- `authorization` varchar(255) DEFAULT NULL,
64
- `fraud_review` tinyint(1) DEFAULT NULL,
65
- `test` tinyint(1) DEFAULT NULL,
66
- `token` varchar(255) DEFAULT NULL,
67
- `payer_id` varchar(255) DEFAULT NULL,
68
- `billing_agreement_id` varchar(255) DEFAULT NULL,
69
- `payer_name` varchar(255) DEFAULT NULL,
70
- `payer_email` varchar(255) DEFAULT NULL,
71
- `payer_country` varchar(255) DEFAULT NULL,
72
- `contact_phone` varchar(255) DEFAULT NULL,
73
- `ship_to_address_name` varchar(255) DEFAULT NULL,
74
- `ship_to_address_company` varchar(255) DEFAULT NULL,
75
- `ship_to_address_address1` varchar(255) DEFAULT NULL,
76
- `ship_to_address_address2` varchar(255) DEFAULT NULL,
77
- `ship_to_address_city` varchar(255) DEFAULT NULL,
78
- `ship_to_address_state` varchar(255) DEFAULT NULL,
79
- `ship_to_address_country` varchar(255) DEFAULT NULL,
80
- `ship_to_address_zip` varchar(255) DEFAULT NULL,
81
- `ship_to_address_phone` varchar(255) DEFAULT NULL,
82
- `receiver_info_business` varchar(255) DEFAULT NULL,
83
- `receiver_info_receiver` varchar(255) DEFAULT NULL,
84
- `receiver_info_receiverid` varchar(255) DEFAULT NULL,
85
- `payment_info_transactionid` varchar(255) DEFAULT NULL,
86
- `payment_info_parenttransactionid` varchar(255) DEFAULT NULL,
87
- `payment_info_receiptid` varchar(255) DEFAULT NULL,
88
- `payment_info_transactiontype` varchar(255) DEFAULT NULL,
89
- `payment_info_paymenttype` varchar(255) DEFAULT NULL,
90
- `payment_info_paymentdate` varchar(255) DEFAULT NULL,
91
- `payment_info_grossamount` varchar(255) DEFAULT NULL,
92
- `payment_info_feeamount` varchar(255) DEFAULT NULL,
93
- `payment_info_taxamount` varchar(255) DEFAULT NULL,
94
- `payment_info_exchangerate` varchar(255) DEFAULT NULL,
95
- `payment_info_paymentstatus` varchar(255) DEFAULT NULL,
96
- `payment_info_pendingreason` varchar(255) DEFAULT NULL,
97
- `payment_info_reasoncode` varchar(255) DEFAULT NULL,
98
- `payment_info_protectioneligibility` varchar(255) DEFAULT NULL,
99
- `payment_info_protectioneligibilitytype` varchar(255) DEFAULT NULL,
100
- `payment_info_shipamount` varchar(255) DEFAULT NULL,
101
- `payment_info_shiphandleamount` varchar(255) DEFAULT NULL,
102
- `payment_info_shipdiscount` varchar(255) DEFAULT NULL,
103
- `payment_info_insuranceamount` varchar(255) DEFAULT NULL,
104
- `payment_info_subject` varchar(255) DEFAULT NULL,
105
- `avs_result_code` varchar(255) DEFAULT NULL,
106
- `avs_result_message` varchar(255) DEFAULT NULL,
107
- `avs_result_street_match` varchar(255) DEFAULT NULL,
108
- `avs_result_postal_match` varchar(255) DEFAULT NULL,
109
- `cvv_result_code` varchar(255) DEFAULT NULL,
110
- `cvv_result_message` varchar(255) DEFAULT NULL,
111
- `success` tinyint(1) DEFAULT NULL,
112
- `created_at` datetime NOT NULL,
113
- `updated_at` datetime NOT NULL,
114
- `kb_account_id` varchar(255) DEFAULT NULL,
115
- `kb_tenant_id` varchar(255) DEFAULT NULL,
116
- PRIMARY KEY (`id`),
117
- KEY `idx_paypal_express_responses_on_kb_payment_id_kb_tenant_id` (`kb_payment_id`, `kb_tenant_id`),
118
- KEY `idx_paypal_express_responses_on_kb_account_id` (`kb_account_id`),
119
- KEY `idx_paypal_express_responses_on_payer_email` (`payer_email`)
120
- ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;