braintree 2.36.0 → 2.37.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 +7 -0
- data/lib/braintree.rb +1 -0
- data/lib/braintree/credit_card.rb +7 -1
- data/lib/braintree/credit_card_gateway.rb +1 -1
- data/lib/braintree/credit_card_verification.rb +2 -1
- data/lib/braintree/customer.rb +3 -2
- data/lib/braintree/error_codes.rb +19 -0
- data/lib/braintree/payment_method_gateway.rb +2 -0
- data/lib/braintree/risk_data.rb +19 -0
- data/lib/braintree/test/nonce.rb +1 -0
- data/lib/braintree/transaction.rb +3 -0
- data/lib/braintree/transaction_gateway.rb +1 -1
- data/lib/braintree/version.rb +1 -1
- data/lib/braintree/webhook_testing_gateway.rb +1 -1
- data/spec/httpsd.pid +1 -1
- data/spec/integration/braintree/credit_card_spec.rb +33 -27
- data/spec/integration/braintree/customer_spec.rb +28 -0
- data/spec/integration/braintree/payment_method_spec.rb +60 -0
- data/spec/integration/braintree/transaction_spec.rb +101 -154
- data/spec/integration/spec_helper.rb +1 -1
- data/spec/script/httpsd.rb +1 -1
- data/spec/unit/braintree/credit_card_spec.rb +18 -2
- data/spec/unit/braintree/credit_card_verification_spec.rb +13 -0
- data/spec/unit/braintree/customer_spec.rb +2 -1
- data/spec/unit/braintree/risk_data_spec.rb +21 -0
- data/spec/unit/braintree/transaction_spec.rb +8 -0
- data/spec/unit/braintree/webhook_notification_spec.rb +40 -40
- metadata +143 -145
@@ -2,7 +2,7 @@ require "securerandom"
|
|
2
2
|
|
3
3
|
unless defined?(INTEGRATION_SPEC_HELPER_LOADED)
|
4
4
|
INTEGRATION_SPEC_HELPER_LOADED = true
|
5
|
-
SSL_TEST_PORT = ENV['SSL_TEST_PORT'] ||
|
5
|
+
SSL_TEST_PORT = ENV['SSL_TEST_PORT'] || 8444
|
6
6
|
|
7
7
|
require File.dirname(__FILE__) + "/../spec_helper"
|
8
8
|
require File.dirname(__FILE__) + "/../hacks/tcp_socket"
|
data/spec/script/httpsd.rb
CHANGED
@@ -12,7 +12,7 @@ cert = OpenSSL::X509::Certificate.new(File.read(cert_file))
|
|
12
12
|
pid_file = ARGV[0]
|
13
13
|
|
14
14
|
s = WEBrick::HTTPServer.new(
|
15
|
-
:Port => (ENV['SSL_TEST_PORT'] ||
|
15
|
+
:Port => (ENV['SSL_TEST_PORT'] || 8444),
|
16
16
|
:Logger => WEBrick::Log::new(nil, WEBrick::Log::ERROR),
|
17
17
|
:DocumentRoot => File.join(File.dirname(__FILE__)),
|
18
18
|
:ServerType => WEBrick::Daemon,
|
@@ -25,7 +25,7 @@ describe Braintree::CreditCard do
|
|
25
25
|
:device_data,
|
26
26
|
:fraud_merchant_id,
|
27
27
|
:payment_method_nonce,
|
28
|
-
{:options => [:make_default, :verification_merchant_account_id, :verify_card, :venmo_sdk_session, :fail_on_duplicate_payment_method]},
|
28
|
+
{:options => [:make_default, :verification_merchant_account_id, :verify_card, :verification_amount, :venmo_sdk_session, :fail_on_duplicate_payment_method]},
|
29
29
|
{:billing_address => [
|
30
30
|
:company,
|
31
31
|
:country_code_alpha2,
|
@@ -61,7 +61,7 @@ describe Braintree::CreditCard do
|
|
61
61
|
:device_data,
|
62
62
|
:fraud_merchant_id,
|
63
63
|
:payment_method_nonce,
|
64
|
-
{:options => [:make_default, :verification_merchant_account_id, :verify_card, :venmo_sdk_session]},
|
64
|
+
{:options => [:make_default, :verification_merchant_account_id, :verify_card, :verification_amount, :venmo_sdk_session]},
|
65
65
|
{:billing_address => [
|
66
66
|
:company,
|
67
67
|
:country_code_alpha2,
|
@@ -217,4 +217,20 @@ describe Braintree::CreditCard do
|
|
217
217
|
end.to raise_error(NoMethodError, /protected method .new/)
|
218
218
|
end
|
219
219
|
end
|
220
|
+
|
221
|
+
describe "self._new" do
|
222
|
+
describe "initializing verification" do
|
223
|
+
it "picks the youngest verification" do
|
224
|
+
verification1 = { :created_at => Time.now, :id => 123 }
|
225
|
+
verification2 = { :created_at => Time.now - 3600, :id => 456 }
|
226
|
+
credit_card = Braintree::CreditCard._new(Braintree::Configuration.gateway, {:verifications => [verification1, verification2]})
|
227
|
+
credit_card.verification.id.should == 123
|
228
|
+
end
|
229
|
+
|
230
|
+
it "picks nil if verifications are empty" do
|
231
|
+
credit_card = Braintree::CreditCard._new(Braintree::Configuration.gateway, {})
|
232
|
+
credit_card.verification.should be_nil
|
233
|
+
end
|
234
|
+
end
|
235
|
+
end
|
220
236
|
end
|
@@ -81,5 +81,18 @@ describe Braintree::CreditCardVerification do
|
|
81
81
|
verification.should_not == same_id_different_object
|
82
82
|
end
|
83
83
|
end
|
84
|
+
|
85
|
+
describe "risk_data" do
|
86
|
+
it "initializes a RiskData object" do
|
87
|
+
verification = Braintree::CreditCardVerification._new(:risk_data => {:id => "123", :decision => "WOO YOU WON $1000 dollars" })
|
88
|
+
verification.risk_data.id.should == "123"
|
89
|
+
verification.risk_data.decision.should == "WOO YOU WON $1000 dollars"
|
90
|
+
end
|
91
|
+
|
92
|
+
it "handles a nil risk_data" do
|
93
|
+
verification = Braintree::CreditCardVerification._new(:risk_data => nil)
|
94
|
+
verification.risk_data.should be_nil
|
95
|
+
end
|
96
|
+
end
|
84
97
|
end
|
85
98
|
|
@@ -100,7 +100,7 @@ describe Braintree::Customer do
|
|
100
100
|
:device_data,
|
101
101
|
:fraud_merchant_id,
|
102
102
|
:payment_method_nonce,
|
103
|
-
{:options => [:make_default, :verification_merchant_account_id, :verify_card, :venmo_sdk_session, :fail_on_duplicate_payment_method]},
|
103
|
+
{:options => [:make_default, :verification_merchant_account_id, :verify_card, :verification_amount, :venmo_sdk_session, :fail_on_duplicate_payment_method]},
|
104
104
|
{:billing_address => [
|
105
105
|
:company,
|
106
106
|
:country_code_alpha2,
|
@@ -152,6 +152,7 @@ describe Braintree::Customer do
|
|
152
152
|
:make_default,
|
153
153
|
:verification_merchant_account_id,
|
154
154
|
:verify_card,
|
155
|
+
:verification_amount,
|
155
156
|
:venmo_sdk_session,
|
156
157
|
:update_existing_token
|
157
158
|
]},
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
|
2
|
+
|
3
|
+
describe Braintree::RiskData do
|
4
|
+
describe "#initialize" do
|
5
|
+
it "sets id and decision" do
|
6
|
+
risk_data = Braintree::RiskData.new(:id => "123", :decision => "YOU WON $1000 DOLLARS")
|
7
|
+
risk_data.id.should == "123"
|
8
|
+
risk_data.decision.should == "YOU WON $1000 DOLLARS"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "inspect" do
|
13
|
+
it "prints the attributes" do
|
14
|
+
details = Braintree::RiskData.new(
|
15
|
+
:id => "123",
|
16
|
+
:decision => "YOU WON $1000 DOLLARS"
|
17
|
+
)
|
18
|
+
details.inspect.should == %(#<RiskData id: "123", decision: "YOU WON $1000 DOLLARS">)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -179,6 +179,14 @@ describe Braintree::Transaction do
|
|
179
179
|
Braintree::Transaction._new(:gateway, :amount => 12.34)
|
180
180
|
}.to raise_error(/Argument must be a String or BigDecimal/)
|
181
181
|
end
|
182
|
+
|
183
|
+
it "handles nil risk_data" do
|
184
|
+
transaction = Braintree::Transaction._new(
|
185
|
+
:gateway,
|
186
|
+
:risk_data => nil
|
187
|
+
)
|
188
|
+
transaction.risk_data.should be_nil
|
189
|
+
end
|
182
190
|
end
|
183
191
|
|
184
192
|
describe "inspect" do
|
@@ -3,12 +3,12 @@ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
|
3
3
|
describe Braintree::WebhookNotification do
|
4
4
|
describe "self.sample_notification" do
|
5
5
|
it "builds a sample notification and signature given an identifier and kind" do
|
6
|
-
|
6
|
+
sample_notification = Braintree::WebhookTesting.sample_notification(
|
7
7
|
Braintree::WebhookNotification::Kind::SubscriptionWentPastDue,
|
8
8
|
"my_id"
|
9
9
|
)
|
10
10
|
|
11
|
-
notification = Braintree::WebhookNotification.parse(
|
11
|
+
notification = Braintree::WebhookNotification.parse(sample_notification[:bt_signature], sample_notification[:bt_payload])
|
12
12
|
|
13
13
|
notification.kind.should == Braintree::WebhookNotification::Kind::SubscriptionWentPastDue
|
14
14
|
notification.subscription.id.should == "my_id"
|
@@ -16,12 +16,12 @@ describe Braintree::WebhookNotification do
|
|
16
16
|
end
|
17
17
|
|
18
18
|
it "builds a sample notification for a partner merchant connected webhook" do
|
19
|
-
|
19
|
+
sample_notification = Braintree::WebhookTesting.sample_notification(
|
20
20
|
Braintree::WebhookNotification::Kind::PartnerMerchantConnected,
|
21
21
|
"my_id"
|
22
22
|
)
|
23
23
|
|
24
|
-
notification = Braintree::WebhookNotification.parse(
|
24
|
+
notification = Braintree::WebhookNotification.parse(sample_notification[:bt_signature], sample_notification[:bt_payload])
|
25
25
|
|
26
26
|
notification.kind.should == Braintree::WebhookNotification::Kind::PartnerMerchantConnected
|
27
27
|
notification.partner_merchant.merchant_public_id.should == "public_id"
|
@@ -33,12 +33,12 @@ describe Braintree::WebhookNotification do
|
|
33
33
|
end
|
34
34
|
|
35
35
|
it "builds a sample notification for a partner merchant disconnected webhook" do
|
36
|
-
|
36
|
+
sample_notification = Braintree::WebhookTesting.sample_notification(
|
37
37
|
Braintree::WebhookNotification::Kind::PartnerMerchantDisconnected,
|
38
38
|
"my_id"
|
39
39
|
)
|
40
40
|
|
41
|
-
notification = Braintree::WebhookNotification.parse(
|
41
|
+
notification = Braintree::WebhookNotification.parse(sample_notification[:bt_signature], sample_notification[:bt_payload])
|
42
42
|
|
43
43
|
notification.kind.should == Braintree::WebhookNotification::Kind::PartnerMerchantDisconnected
|
44
44
|
notification.partner_merchant.partner_merchant_id.should == "abc123"
|
@@ -46,12 +46,12 @@ describe Braintree::WebhookNotification do
|
|
46
46
|
end
|
47
47
|
|
48
48
|
it "builds a sample notification for a partner merchant declined webhook" do
|
49
|
-
|
49
|
+
sample_notification = Braintree::WebhookTesting.sample_notification(
|
50
50
|
Braintree::WebhookNotification::Kind::PartnerMerchantDeclined,
|
51
51
|
"my_id"
|
52
52
|
)
|
53
53
|
|
54
|
-
notification = Braintree::WebhookNotification.parse(
|
54
|
+
notification = Braintree::WebhookNotification.parse(sample_notification[:bt_signature], sample_notification[:bt_payload])
|
55
55
|
|
56
56
|
notification.kind.should == Braintree::WebhookNotification::Kind::PartnerMerchantDeclined
|
57
57
|
notification.partner_merchant.partner_merchant_id.should == "abc123"
|
@@ -60,12 +60,12 @@ describe Braintree::WebhookNotification do
|
|
60
60
|
|
61
61
|
context "disputes" do
|
62
62
|
it "builds a sample notification for a dispute opened webhook" do
|
63
|
-
|
63
|
+
sample_notification = Braintree::WebhookTesting.sample_notification(
|
64
64
|
Braintree::WebhookNotification::Kind::DisputeOpened,
|
65
65
|
"my_id"
|
66
66
|
)
|
67
67
|
|
68
|
-
notification = Braintree::WebhookNotification.parse(
|
68
|
+
notification = Braintree::WebhookNotification.parse(sample_notification[:bt_signature], sample_notification[:bt_payload])
|
69
69
|
|
70
70
|
notification.kind.should == Braintree::WebhookNotification::Kind::DisputeOpened
|
71
71
|
|
@@ -75,12 +75,12 @@ describe Braintree::WebhookNotification do
|
|
75
75
|
end
|
76
76
|
|
77
77
|
it "builds a sample notification for a dispute lost webhook" do
|
78
|
-
|
78
|
+
sample_notification = Braintree::WebhookTesting.sample_notification(
|
79
79
|
Braintree::WebhookNotification::Kind::DisputeLost,
|
80
80
|
"my_id"
|
81
81
|
)
|
82
82
|
|
83
|
-
notification = Braintree::WebhookNotification.parse(
|
83
|
+
notification = Braintree::WebhookNotification.parse(sample_notification[:bt_signature], sample_notification[:bt_payload])
|
84
84
|
|
85
85
|
notification.kind.should == Braintree::WebhookNotification::Kind::DisputeLost
|
86
86
|
|
@@ -90,12 +90,12 @@ describe Braintree::WebhookNotification do
|
|
90
90
|
end
|
91
91
|
|
92
92
|
it "builds a sample notification for a dispute won webhook" do
|
93
|
-
|
93
|
+
sample_notification = Braintree::WebhookTesting.sample_notification(
|
94
94
|
Braintree::WebhookNotification::Kind::DisputeWon,
|
95
95
|
"my_id"
|
96
96
|
)
|
97
97
|
|
98
|
-
notification = Braintree::WebhookNotification.parse(
|
98
|
+
notification = Braintree::WebhookNotification.parse(sample_notification[:bt_signature], sample_notification[:bt_payload])
|
99
99
|
|
100
100
|
notification.kind.should == Braintree::WebhookNotification::Kind::DisputeWon
|
101
101
|
|
@@ -107,12 +107,12 @@ describe Braintree::WebhookNotification do
|
|
107
107
|
|
108
108
|
context "disbursement" do
|
109
109
|
it "builds a sample notification for a transaction disbursed webhook" do
|
110
|
-
|
110
|
+
sample_notification = Braintree::WebhookTesting.sample_notification(
|
111
111
|
Braintree::WebhookNotification::Kind::TransactionDisbursed,
|
112
112
|
"my_id"
|
113
113
|
)
|
114
114
|
|
115
|
-
notification = Braintree::WebhookNotification.parse(
|
115
|
+
notification = Braintree::WebhookNotification.parse(sample_notification[:bt_signature], sample_notification[:bt_payload])
|
116
116
|
|
117
117
|
notification.kind.should == Braintree::WebhookNotification::Kind::TransactionDisbursed
|
118
118
|
notification.transaction.id.should == "my_id"
|
@@ -121,12 +121,12 @@ describe Braintree::WebhookNotification do
|
|
121
121
|
end
|
122
122
|
|
123
123
|
it "builds a sample notification for a disbursement_exception webhook" do
|
124
|
-
|
124
|
+
sample_notification = Braintree::WebhookTesting.sample_notification(
|
125
125
|
Braintree::WebhookNotification::Kind::DisbursementException,
|
126
126
|
"my_id"
|
127
127
|
)
|
128
128
|
|
129
|
-
notification = Braintree::WebhookNotification.parse(
|
129
|
+
notification = Braintree::WebhookNotification.parse(sample_notification[:bt_signature], sample_notification[:bt_payload])
|
130
130
|
|
131
131
|
notification.kind.should == Braintree::WebhookNotification::Kind::DisbursementException
|
132
132
|
notification.disbursement.id.should == "my_id"
|
@@ -140,12 +140,12 @@ describe Braintree::WebhookNotification do
|
|
140
140
|
end
|
141
141
|
|
142
142
|
it "builds a sample notification for a disbursement webhook" do
|
143
|
-
|
143
|
+
sample_notification = Braintree::WebhookTesting.sample_notification(
|
144
144
|
Braintree::WebhookNotification::Kind::Disbursement,
|
145
145
|
"my_id"
|
146
146
|
)
|
147
147
|
|
148
|
-
notification = Braintree::WebhookNotification.parse(
|
148
|
+
notification = Braintree::WebhookNotification.parse(sample_notification[:bt_signature], sample_notification[:bt_payload])
|
149
149
|
|
150
150
|
notification.kind.should == Braintree::WebhookNotification::Kind::Disbursement
|
151
151
|
notification.disbursement.id.should == "my_id"
|
@@ -161,12 +161,12 @@ describe Braintree::WebhookNotification do
|
|
161
161
|
|
162
162
|
context "merchant account" do
|
163
163
|
it "builds a sample notification for a merchant account approved webhook" do
|
164
|
-
|
164
|
+
sample_notification = Braintree::WebhookTesting.sample_notification(
|
165
165
|
Braintree::WebhookNotification::Kind::SubMerchantAccountApproved,
|
166
166
|
"my_id"
|
167
167
|
)
|
168
168
|
|
169
|
-
notification = Braintree::WebhookNotification.parse(
|
169
|
+
notification = Braintree::WebhookNotification.parse(sample_notification[:bt_signature], sample_notification[:bt_payload])
|
170
170
|
|
171
171
|
notification.kind.should == Braintree::WebhookNotification::Kind::SubMerchantAccountApproved
|
172
172
|
notification.merchant_account.id.should == "my_id"
|
@@ -176,12 +176,12 @@ describe Braintree::WebhookNotification do
|
|
176
176
|
end
|
177
177
|
|
178
178
|
it "builds a sample notification for a merchant account declined webhook" do
|
179
|
-
|
179
|
+
sample_notification = Braintree::WebhookTesting.sample_notification(
|
180
180
|
Braintree::WebhookNotification::Kind::SubMerchantAccountDeclined,
|
181
181
|
"my_id"
|
182
182
|
)
|
183
183
|
|
184
|
-
notification = Braintree::WebhookNotification.parse(
|
184
|
+
notification = Braintree::WebhookNotification.parse(sample_notification[:bt_signature], sample_notification[:bt_payload])
|
185
185
|
|
186
186
|
notification.kind.should == Braintree::WebhookNotification::Kind::SubMerchantAccountDeclined
|
187
187
|
notification.merchant_account.id.should == "my_id"
|
@@ -194,30 +194,30 @@ describe Braintree::WebhookNotification do
|
|
194
194
|
end
|
195
195
|
|
196
196
|
it "includes a valid signature" do
|
197
|
-
|
197
|
+
sample_notification = Braintree::WebhookTesting.sample_notification(
|
198
198
|
Braintree::WebhookNotification::Kind::SubscriptionWentPastDue,
|
199
199
|
"my_id"
|
200
200
|
)
|
201
|
-
expected_signature = Braintree::Digest.hexdigest(Braintree::Configuration.private_key,
|
201
|
+
expected_signature = Braintree::Digest.hexdigest(Braintree::Configuration.private_key, sample_notification[:bt_payload])
|
202
202
|
|
203
|
-
|
203
|
+
sample_notification[:bt_signature].should == "#{Braintree::Configuration.public_key}|#{expected_signature}"
|
204
204
|
end
|
205
205
|
end
|
206
206
|
|
207
207
|
describe "parse" do
|
208
208
|
it "raises InvalidSignature error when the signature is completely invalid" do
|
209
|
-
|
209
|
+
sample_notification = Braintree::WebhookTesting.sample_notification(
|
210
210
|
Braintree::WebhookNotification::Kind::SubscriptionWentPastDue,
|
211
211
|
"my_id"
|
212
212
|
)
|
213
213
|
|
214
214
|
expect do
|
215
|
-
|
215
|
+
Braintree::WebhookNotification.parse("not a valid signature", sample_notification[:bt_payload])
|
216
216
|
end.to raise_error(Braintree::InvalidSignature)
|
217
217
|
end
|
218
218
|
|
219
219
|
it "raises InvalidSignature error with a message when the public key is not found" do
|
220
|
-
|
220
|
+
sample_notification = Braintree::WebhookTesting.sample_notification(
|
221
221
|
Braintree::WebhookNotification::Kind::SubscriptionWentPastDue,
|
222
222
|
"my_id"
|
223
223
|
)
|
@@ -230,51 +230,51 @@ describe Braintree::WebhookNotification do
|
|
230
230
|
gateway = Braintree::Gateway.new(config)
|
231
231
|
|
232
232
|
expect do
|
233
|
-
|
233
|
+
gateway.webhook_notification.parse(sample_notification[:bt_signature], sample_notification[:bt_payload])
|
234
234
|
end.to raise_error(Braintree::InvalidSignature, /no matching public key/)
|
235
235
|
end
|
236
236
|
|
237
237
|
it "raises InvalidSignature error if the payload has been changed" do
|
238
|
-
|
238
|
+
sample_notification = Braintree::WebhookTesting.sample_notification(
|
239
239
|
Braintree::WebhookNotification::Kind::SubscriptionWentPastDue,
|
240
240
|
"my_id"
|
241
241
|
)
|
242
242
|
|
243
243
|
expect do
|
244
|
-
|
244
|
+
Braintree::WebhookNotification.parse(sample_notification[:bt_signature], "badstuff" + sample_notification[:bt_payload])
|
245
245
|
end.to raise_error(Braintree::InvalidSignature, /signature does not match payload - one has been modified/)
|
246
246
|
end
|
247
247
|
|
248
248
|
it "raises InvalidSignature error with a message complaining about invalid characters" do
|
249
|
-
|
249
|
+
sample_notification = Braintree::WebhookTesting.sample_notification(
|
250
250
|
Braintree::WebhookNotification::Kind::SubscriptionWentPastDue,
|
251
251
|
"my_id"
|
252
252
|
)
|
253
253
|
|
254
254
|
expect do
|
255
|
-
|
255
|
+
Braintree::WebhookNotification.parse(sample_notification[:bt_signature], "^& bad ,* chars @!" + sample_notification[:bt_payload])
|
256
256
|
end.to raise_error(Braintree::InvalidSignature, /payload contains illegal characters/)
|
257
257
|
end
|
258
258
|
|
259
259
|
it "allows all valid characters" do
|
260
|
-
|
260
|
+
sample_notification = Braintree::WebhookTesting.sample_notification(
|
261
261
|
Braintree::WebhookNotification::Kind::SubscriptionWentPastDue,
|
262
262
|
"my_id"
|
263
263
|
)
|
264
264
|
|
265
|
-
|
265
|
+
sample_notification[:bt_payload] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+=/\n"
|
266
266
|
expect do
|
267
|
-
|
267
|
+
Braintree::WebhookNotification.parse(sample_notification[:bt_signature], sample_notification[:bt_payload])
|
268
268
|
end.to_not raise_error(Braintree::InvalidSignature, /payload contains illegal characters/)
|
269
269
|
end
|
270
270
|
|
271
271
|
it "retries a payload with a newline" do
|
272
|
-
|
272
|
+
sample_notification = Braintree::WebhookTesting.sample_notification(
|
273
273
|
Braintree::WebhookNotification::Kind::SubscriptionWentPastDue,
|
274
274
|
"my_id"
|
275
275
|
)
|
276
276
|
|
277
|
-
notification = Braintree::WebhookNotification.parse(
|
277
|
+
notification = Braintree::WebhookNotification.parse(sample_notification[:bt_signature], sample_notification[:bt_payload].rstrip)
|
278
278
|
|
279
279
|
notification.kind.should == Braintree::WebhookNotification::Kind::SubscriptionWentPastDue
|
280
280
|
notification.subscription.id.should == "my_id"
|
metadata
CHANGED
@@ -1,30 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: braintree
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
5
|
-
prerelease:
|
4
|
+
version: 2.37.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Braintree
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2014-
|
11
|
+
date: 2014-11-21 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: builder
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 2.0.0
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: 2.0.0
|
30
27
|
description: Ruby library for integrating with the Braintree Gateway
|
@@ -35,202 +32,203 @@ extra_rdoc_files: []
|
|
35
32
|
files:
|
36
33
|
- README.rdoc
|
37
34
|
- LICENSE
|
38
|
-
- lib/braintree/
|
39
|
-
- lib/braintree/
|
40
|
-
- lib/braintree/
|
41
|
-
- lib/braintree/
|
42
|
-
- lib/braintree/
|
35
|
+
- lib/braintree/xml.rb
|
36
|
+
- lib/braintree/exceptions.rb
|
37
|
+
- lib/braintree/plan.rb
|
38
|
+
- lib/braintree/payment_method_gateway.rb
|
39
|
+
- lib/braintree/plan_gateway.rb
|
40
|
+
- lib/braintree/sha256_digest.rb
|
41
|
+
- lib/braintree/transparent_redirect.rb
|
42
|
+
- lib/braintree/credit_card_verification_gateway.rb
|
43
|
+
- lib/braintree/dispute/transaction_details.rb
|
43
44
|
- lib/braintree/client_token.rb
|
44
|
-
- lib/braintree/
|
45
|
-
- lib/braintree/
|
46
|
-
- lib/braintree/
|
45
|
+
- lib/braintree/http.rb
|
46
|
+
- lib/braintree/validation_error.rb
|
47
|
+
- lib/braintree/add_on_gateway.rb
|
48
|
+
- lib/braintree/payment_instrument_type.rb
|
49
|
+
- lib/braintree/customer_gateway.rb
|
50
|
+
- lib/braintree/advanced_search.rb
|
51
|
+
- lib/braintree/apple_pay_card.rb
|
52
|
+
- lib/braintree/testing_gateway.rb
|
53
|
+
- lib/braintree/error_codes.rb
|
47
54
|
- lib/braintree/unknown_payment_method.rb
|
48
|
-
- lib/braintree/
|
49
|
-
- lib/braintree/plan_gateway.rb
|
55
|
+
- lib/braintree/webhook_notification.rb
|
50
56
|
- lib/braintree/customer_search.rb
|
51
|
-
- lib/braintree/http.rb
|
52
57
|
- lib/braintree/successful_result.rb
|
53
|
-
- lib/braintree/
|
54
|
-
- lib/braintree/
|
55
|
-
- lib/braintree/
|
56
|
-
- lib/braintree/
|
57
|
-
- lib/braintree/
|
58
|
-
- lib/braintree/
|
59
|
-
- lib/braintree/
|
60
|
-
- lib/braintree/transaction.rb
|
61
|
-
- lib/braintree/credit_card.rb
|
62
|
-
- lib/braintree/client_token_gateway.rb
|
63
|
-
- lib/braintree/credit_card_verification.rb
|
64
|
-
- lib/braintree/transparent_redirect_gateway.rb
|
65
|
-
- lib/braintree/subscription_search.rb
|
66
|
-
- lib/braintree/transaction/status_details.rb
|
67
|
-
- lib/braintree/transaction/credit_card_details.rb
|
58
|
+
- lib/braintree/merchant_account.rb
|
59
|
+
- lib/braintree/subscription.rb
|
60
|
+
- lib/braintree/paypal_account_gateway.rb
|
61
|
+
- lib/braintree/resource_collection.rb
|
62
|
+
- lib/braintree/settlement_batch_summary.rb
|
63
|
+
- lib/braintree/transaction/address_details.rb
|
64
|
+
- lib/braintree/transaction/customer_details.rb
|
68
65
|
- lib/braintree/transaction/apple_pay_details.rb
|
69
|
-
- lib/braintree/transaction/paypal_details.rb
|
70
66
|
- lib/braintree/transaction/disbursement_details.rb
|
67
|
+
- lib/braintree/transaction/paypal_details.rb
|
68
|
+
- lib/braintree/transaction/status_details.rb
|
71
69
|
- lib/braintree/transaction/subscription_details.rb
|
72
|
-
- lib/braintree/transaction/
|
73
|
-
- lib/braintree/
|
74
|
-
- lib/braintree/
|
75
|
-
- lib/braintree/
|
76
|
-
- lib/braintree/
|
77
|
-
- lib/braintree/
|
78
|
-
- lib/braintree/webhook_notification_gateway.rb
|
79
|
-
- lib/braintree/error_result.rb
|
80
|
-
- lib/braintree/subscription.rb
|
81
|
-
- lib/braintree/add_on_gateway.rb
|
82
|
-
- lib/braintree/version.rb
|
83
|
-
- lib/braintree/address.rb
|
84
|
-
- lib/braintree/plan.rb
|
85
|
-
- lib/braintree/paypal_account_gateway.rb
|
70
|
+
- lib/braintree/transaction/credit_card_details.rb
|
71
|
+
- lib/braintree/merchant_account/address_details.rb
|
72
|
+
- lib/braintree/merchant_account/funding_details.rb
|
73
|
+
- lib/braintree/merchant_account/individual_details.rb
|
74
|
+
- lib/braintree/merchant_account/business_details.rb
|
75
|
+
- lib/braintree/transaction_search.rb
|
86
76
|
- lib/braintree/settlement_batch.rb
|
87
|
-
- lib/braintree/
|
88
|
-
- lib/braintree/
|
89
|
-
- lib/braintree/
|
90
|
-
- lib/braintree/
|
77
|
+
- lib/braintree/credit_card_verification.rb
|
78
|
+
- lib/braintree/discount.rb
|
79
|
+
- lib/braintree/address.rb
|
80
|
+
- lib/braintree/digest.rb
|
91
81
|
- lib/braintree/disbursement.rb
|
92
|
-
- lib/braintree/
|
82
|
+
- lib/braintree/test/merchant_account.rb
|
93
83
|
- lib/braintree/test/venmo_sdk.rb
|
94
|
-
- lib/braintree/test/credit_card.rb
|
95
84
|
- lib/braintree/test/nonce.rb
|
96
85
|
- lib/braintree/test/transaction_amounts.rb
|
97
|
-
- lib/braintree/test/
|
98
|
-
- lib/braintree/
|
99
|
-
- lib/braintree/
|
100
|
-
- lib/braintree/
|
101
|
-
- lib/braintree/merchant_account/individual_details.rb
|
102
|
-
- lib/braintree/merchant_account/address_details.rb
|
103
|
-
- lib/braintree/merchant_account/business_details.rb
|
104
|
-
- lib/braintree/merchant_account_gateway.rb
|
105
|
-
- lib/braintree/testing_gateway.rb
|
106
|
-
- lib/braintree/validation_error_collection.rb
|
107
|
-
- lib/braintree/error_codes.rb
|
86
|
+
- lib/braintree/test/credit_card.rb
|
87
|
+
- lib/braintree/address/country_names.rb
|
88
|
+
- lib/braintree/webhook_testing.rb
|
89
|
+
- lib/braintree/error_result.rb
|
108
90
|
- lib/braintree/paypal_account.rb
|
109
|
-
- lib/braintree/
|
110
|
-
- lib/braintree/
|
111
|
-
- lib/braintree/
|
112
|
-
- lib/braintree/digest.rb
|
113
|
-
- lib/braintree/dispute.rb
|
114
|
-
- lib/braintree/dispute/transaction_details.rb
|
115
|
-
- lib/braintree/advanced_search.rb
|
116
|
-
- lib/braintree/webhook_notification.rb
|
117
|
-
- lib/braintree/merchant_account.rb
|
118
|
-
- lib/braintree/test_transaction.rb
|
91
|
+
- lib/braintree/settlement_batch_summary_gateway.rb
|
92
|
+
- lib/braintree/transaction_gateway.rb
|
93
|
+
- lib/braintree/payment_method.rb
|
119
94
|
- lib/braintree/subscription_gateway.rb
|
120
|
-
- lib/braintree/
|
121
|
-
- lib/braintree/
|
122
|
-
- lib/braintree/
|
123
|
-
- lib/braintree/
|
95
|
+
- lib/braintree/transparent_redirect_gateway.rb
|
96
|
+
- lib/braintree/credit_card_verification_search.rb
|
97
|
+
- lib/braintree/add_on.rb
|
98
|
+
- lib/braintree/transaction.rb
|
99
|
+
- lib/braintree/credit_card.rb
|
100
|
+
- lib/braintree/descriptor.rb
|
124
101
|
- lib/braintree/address_gateway.rb
|
102
|
+
- lib/braintree/signature_service.rb
|
103
|
+
- lib/braintree/webhook_notification_gateway.rb
|
104
|
+
- lib/braintree/configuration.rb
|
105
|
+
- lib/braintree/xml/parser.rb
|
106
|
+
- lib/braintree/xml/generator.rb
|
107
|
+
- lib/braintree/xml/rexml.rb
|
108
|
+
- lib/braintree/xml/libxml.rb
|
109
|
+
- lib/braintree/test_transaction.rb
|
110
|
+
- lib/braintree/customer.rb
|
125
111
|
- lib/braintree/base_module.rb
|
126
|
-
- lib/braintree/
|
127
|
-
- lib/braintree/
|
128
|
-
- lib/braintree/
|
129
|
-
- lib/braintree/
|
112
|
+
- lib/braintree/merchant_account_gateway.rb
|
113
|
+
- lib/braintree/sepa_bank_account_gateway.rb
|
114
|
+
- lib/braintree/credit_card_gateway.rb
|
115
|
+
- lib/braintree/errors.rb
|
116
|
+
- lib/braintree/util.rb
|
117
|
+
- lib/braintree/validation_error_collection.rb
|
118
|
+
- lib/braintree/risk_data.rb
|
119
|
+
- lib/braintree/gateway.rb
|
120
|
+
- lib/braintree/webhook_testing_gateway.rb
|
121
|
+
- lib/braintree/client_token_gateway.rb
|
122
|
+
- lib/braintree/discount_gateway.rb
|
123
|
+
- lib/braintree/sepa_bank_account.rb
|
124
|
+
- lib/braintree/version.rb
|
125
|
+
- lib/braintree/subscription_search.rb
|
126
|
+
- lib/braintree/dispute.rb
|
127
|
+
- lib/braintree/modification.rb
|
130
128
|
- lib/braintree.rb
|
129
|
+
- lib/ssl/www_braintreegateway_com.ca.crt
|
131
130
|
- lib/ssl/sandbox_braintreegateway_com.ca.crt
|
132
131
|
- lib/ssl/securetrust_ca.crt
|
133
|
-
- lib/ssl/www_braintreegateway_com.ca.crt
|
134
132
|
- lib/ssl/api_braintreegateway_com.ca.crt
|
135
|
-
- spec/script/httpsd.rb
|
136
|
-
- spec/ssl/privateKey.key
|
137
|
-
- spec/ssl/certificate.crt
|
138
|
-
- spec/ssl/geotrust_global.crt
|
139
133
|
- spec/spec.opts
|
140
|
-
- spec/
|
141
|
-
- spec/
|
142
|
-
- spec/
|
143
|
-
- spec/unit/
|
144
|
-
- spec/unit/
|
145
|
-
- spec/unit/braintree/
|
146
|
-
- spec/unit/braintree/paypal_account_spec.rb
|
134
|
+
- spec/hacks/tcp_socket.rb
|
135
|
+
- spec/script/httpsd.rb
|
136
|
+
- spec/spec_helper.rb
|
137
|
+
- spec/unit/spec_helper.rb
|
138
|
+
- spec/unit/braintree_spec.rb
|
139
|
+
- spec/unit/braintree/transaction_search_spec.rb
|
147
140
|
- spec/unit/braintree/base_module_spec.rb
|
148
|
-
- spec/unit/braintree/
|
149
|
-
- spec/unit/braintree/
|
150
|
-
- spec/unit/braintree/
|
151
|
-
- spec/unit/braintree/
|
152
|
-
- spec/unit/braintree/
|
141
|
+
- spec/unit/braintree/xml_spec.rb
|
142
|
+
- spec/unit/braintree/subscription_spec.rb
|
143
|
+
- spec/unit/braintree/signature_service_spec.rb
|
144
|
+
- spec/unit/braintree/dispute_spec.rb
|
145
|
+
- spec/unit/braintree/credit_card_verification_search_spec.rb
|
146
|
+
- spec/unit/braintree/disbursement_spec.rb
|
147
|
+
- spec/unit/braintree/configuration_spec.rb
|
148
|
+
- spec/unit/braintree/modification_spec.rb
|
149
|
+
- spec/unit/braintree/transaction_spec.rb
|
153
150
|
- spec/unit/braintree/error_result_spec.rb
|
154
|
-
- spec/unit/braintree/
|
151
|
+
- spec/unit/braintree/paypal_account_spec.rb
|
152
|
+
- spec/unit/braintree/credit_card_verification_spec.rb
|
153
|
+
- spec/unit/braintree/subscription_search_spec.rb
|
155
154
|
- spec/unit/braintree/transaction/customer_details_spec.rb
|
156
155
|
- spec/unit/braintree/transaction/deposit_details_spec.rb
|
157
|
-
- spec/unit/braintree/
|
156
|
+
- spec/unit/braintree/transaction/credit_card_details_spec.rb
|
157
|
+
- spec/unit/braintree/transparent_redirect_spec.rb
|
158
158
|
- spec/unit/braintree/errors_spec.rb
|
159
|
-
- spec/unit/braintree/
|
159
|
+
- spec/unit/braintree/digest_spec.rb
|
160
|
+
- spec/unit/braintree/http_spec.rb
|
161
|
+
- spec/unit/braintree/successful_result_spec.rb
|
162
|
+
- spec/unit/braintree/util_spec.rb
|
163
|
+
- spec/unit/braintree/validation_error_spec.rb
|
164
|
+
- spec/unit/braintree/sha256_digest_spec.rb
|
165
|
+
- spec/unit/braintree/address_spec.rb
|
166
|
+
- spec/unit/braintree/unknown_payment_method_spec.rb
|
167
|
+
- spec/unit/braintree/risk_data_spec.rb
|
168
|
+
- spec/unit/braintree/customer_spec.rb
|
160
169
|
- spec/unit/braintree/xml/parser_spec.rb
|
161
170
|
- spec/unit/braintree/xml/rexml_spec.rb
|
171
|
+
- spec/unit/braintree/xml/libxml_spec.rb
|
172
|
+
- spec/unit/braintree/validation_error_collection_spec.rb
|
173
|
+
- spec/unit/braintree/client_token_spec.rb
|
174
|
+
- spec/unit/braintree/webhook_notification_spec.rb
|
162
175
|
- spec/unit/braintree/payment_method_spec.rb
|
163
|
-
- spec/unit/braintree/successful_result_spec.rb
|
164
|
-
- spec/unit/braintree/subscription_spec.rb
|
165
|
-
- spec/unit/braintree/http_spec.rb
|
166
|
-
- spec/unit/braintree/credit_card_spec.rb
|
167
|
-
- spec/unit/braintree/transaction_search_spec.rb
|
168
|
-
- spec/unit/braintree/modification_spec.rb
|
169
|
-
- spec/unit/braintree/address_spec.rb
|
170
176
|
- spec/unit/braintree/merchant_account_spec.rb
|
171
|
-
- spec/unit/braintree/
|
172
|
-
- spec/unit/braintree/
|
173
|
-
- spec/
|
174
|
-
- spec/
|
175
|
-
- spec/
|
176
|
-
- spec/
|
177
|
-
- spec/unit/braintree/credit_card_verification_search_spec.rb
|
178
|
-
- spec/unit/braintree/sha256_digest_spec.rb
|
179
|
-
- spec/unit/spec_helper.rb
|
180
|
-
- spec/unit/braintree_spec.rb
|
181
|
-
- spec/integration/braintree/plan_spec.rb
|
177
|
+
- spec/unit/braintree/resource_collection_spec.rb
|
178
|
+
- spec/unit/braintree/credit_card_spec.rb
|
179
|
+
- spec/integration/spec_helper.rb
|
180
|
+
- spec/integration/braintree/transaction_search_spec.rb
|
181
|
+
- spec/integration/braintree/subscription_spec.rb
|
182
|
+
- spec/integration/braintree/credit_card_verification_search_spec.rb
|
182
183
|
- spec/integration/braintree/disbursement_spec.rb
|
183
|
-
- spec/integration/braintree/
|
184
|
+
- spec/integration/braintree/client_api/spec_helper.rb
|
185
|
+
- spec/integration/braintree/client_api/client_token_spec.rb
|
186
|
+
- spec/integration/braintree/discount_spec.rb
|
187
|
+
- spec/integration/braintree/transaction_spec.rb
|
188
|
+
- spec/integration/braintree/customer_search_spec.rb
|
184
189
|
- spec/integration/braintree/paypal_account_spec.rb
|
190
|
+
- spec/integration/braintree/credit_card_verification_spec.rb
|
185
191
|
- spec/integration/braintree/transparent_redirect_spec.rb
|
186
|
-
- spec/integration/braintree/error_codes_spec.rb
|
187
|
-
- spec/integration/braintree/advanced_search_spec.rb
|
188
192
|
- spec/integration/braintree/test_transaction_spec.rb
|
189
|
-
- spec/integration/braintree/transaction_spec.rb
|
190
|
-
- spec/integration/braintree/customer_search_spec.rb
|
191
|
-
- spec/integration/braintree/payment_method_spec.rb
|
192
|
-
- spec/integration/braintree/subscription_spec.rb
|
193
193
|
- spec/integration/braintree/http_spec.rb
|
194
|
-
- spec/integration/braintree/credit_card_spec.rb
|
195
|
-
- spec/integration/braintree/transaction_search_spec.rb
|
196
194
|
- spec/integration/braintree/test/transaction_amounts_spec.rb
|
197
195
|
- spec/integration/braintree/address_spec.rb
|
198
|
-
- spec/integration/braintree/
|
199
|
-
- spec/integration/braintree/client_api/client_token_spec.rb
|
200
|
-
- spec/integration/braintree/client_api/spec_helper.rb
|
196
|
+
- spec/integration/braintree/advanced_search_spec.rb
|
201
197
|
- spec/integration/braintree/customer_spec.rb
|
202
|
-
- spec/integration/braintree/
|
203
|
-
- spec/integration/braintree/
|
204
|
-
- spec/integration/braintree/
|
198
|
+
- spec/integration/braintree/payment_method_spec.rb
|
199
|
+
- spec/integration/braintree/merchant_account_spec.rb
|
200
|
+
- spec/integration/braintree/plan_spec.rb
|
205
201
|
- spec/integration/braintree/add_on_spec.rb
|
206
|
-
- spec/integration/
|
202
|
+
- spec/integration/braintree/error_codes_spec.rb
|
203
|
+
- spec/integration/braintree/settlement_batch_summary_spec.rb
|
204
|
+
- spec/integration/braintree/credit_card_spec.rb
|
207
205
|
- spec/httpsd.pid
|
208
|
-
- spec/
|
209
|
-
- spec/
|
206
|
+
- spec/ssl/geotrust_global.crt
|
207
|
+
- spec/ssl/certificate.crt
|
208
|
+
- spec/ssl/privateKey.key
|
210
209
|
- braintree.gemspec
|
211
210
|
homepage: http://www.braintreepayments.com/
|
212
211
|
licenses:
|
213
212
|
- MIT
|
213
|
+
metadata: {}
|
214
214
|
post_install_message:
|
215
215
|
rdoc_options: []
|
216
216
|
require_paths:
|
217
217
|
- lib
|
218
218
|
required_ruby_version: !ruby/object:Gem::Requirement
|
219
|
-
none: false
|
220
219
|
requirements:
|
221
|
-
- -
|
220
|
+
- - '>='
|
222
221
|
- !ruby/object:Gem::Version
|
223
222
|
version: '0'
|
224
223
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
225
|
-
none: false
|
226
224
|
requirements:
|
227
|
-
- -
|
225
|
+
- - '>='
|
228
226
|
- !ruby/object:Gem::Version
|
229
227
|
version: '0'
|
230
228
|
requirements: []
|
231
229
|
rubyforge_project: braintree
|
232
|
-
rubygems_version: 1.
|
230
|
+
rubygems_version: 2.1.11
|
233
231
|
signing_key:
|
234
|
-
specification_version:
|
232
|
+
specification_version: 4
|
235
233
|
summary: Braintree Gateway Ruby Client Library
|
236
234
|
test_files: []
|