killbill-litle 1.0.8 → 1.0.9
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/VERSION +1 -1
- data/lib/litle/api.rb +21 -5
- data/lib/litle/models/litle_transaction.rb +10 -2
- data/pom.xml +1 -1
- data/spec/litle/integration_spec.rb +6 -0
- metadata +1 -1
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.9
|
data/lib/litle/api.rb
CHANGED
@@ -36,6 +36,15 @@ module Killbill::Litle
|
|
36
36
|
response.to_payment_response
|
37
37
|
end
|
38
38
|
|
39
|
+
def get_payment_info(kb_account_id, kb_payment_id, tenant_context, options = {})
|
40
|
+
# We assume the payment is immutable in Litle and only look at our tables since there
|
41
|
+
# doesn't seem to be a Litle API to fetch details for a given transaction.
|
42
|
+
# TODO How can we support Authorization/Sale Recycling?
|
43
|
+
litle_transaction = LitleTransaction.from_kb_payment_id(kb_payment_id.to_s)
|
44
|
+
|
45
|
+
litle_transaction.litle_response.to_payment_response
|
46
|
+
end
|
47
|
+
|
39
48
|
def process_refund(kb_account_id, kb_payment_id, amount_in_cents, currency, call_context, options = {})
|
40
49
|
litle_transaction = LitleTransaction.find_candidate_transaction_for_refund(kb_payment_id.to_s, amount_in_cents)
|
41
50
|
|
@@ -49,13 +58,12 @@ module Killbill::Litle
|
|
49
58
|
response.to_refund_response
|
50
59
|
end
|
51
60
|
|
52
|
-
def
|
53
|
-
# We assume the
|
61
|
+
def get_refund_info(kb_account_id, kb_payment_id, tenant_context, options = {})
|
62
|
+
# We assume the refund is immutable in Litle and only look at our tables since there
|
54
63
|
# doesn't seem to be a Litle API to fetch details for a given transaction.
|
55
|
-
|
56
|
-
litle_transaction = LitleTransaction.from_kb_payment_id(kb_payment_id.to_s)
|
64
|
+
litle_transaction = LitleTransaction.refund_from_kb_payment_id(kb_payment_id.to_s)
|
57
65
|
|
58
|
-
litle_transaction.litle_response.
|
66
|
+
litle_transaction.litle_response.to_refund_response
|
59
67
|
end
|
60
68
|
|
61
69
|
def add_payment_method(kb_account_id, kb_payment_method_id, payment_method_props, set_default, call_context, options = {})
|
@@ -82,10 +90,18 @@ module Killbill::Litle
|
|
82
90
|
LitlePaymentMethod.from_kb_payment_method_id(kb_payment_method_id.to_s).to_payment_method_response
|
83
91
|
end
|
84
92
|
|
93
|
+
def set_default_payment_method(kb_account_id, kb_payment_method_id, call_context, options = {})
|
94
|
+
# No-op
|
95
|
+
end
|
96
|
+
|
85
97
|
def get_payment_methods(kb_account_id, refresh_from_gateway, call_context, options = {})
|
86
98
|
LitlePaymentMethod.from_kb_account_id(kb_account_id.to_s).collect { |pm| pm.to_payment_method_response }
|
87
99
|
end
|
88
100
|
|
101
|
+
def reset_payment_methods(kb_account_id, payment_methods)
|
102
|
+
# No-op
|
103
|
+
end
|
104
|
+
|
89
105
|
private
|
90
106
|
|
91
107
|
def report_group_for_account(kb_account_id)
|
@@ -4,7 +4,15 @@ module Killbill::Litle
|
|
4
4
|
attr_accessible :amount_in_cents, :api_call, :kb_payment_id, :litle_txn_id
|
5
5
|
|
6
6
|
def self.from_kb_payment_id(kb_payment_id)
|
7
|
-
|
7
|
+
single_transaction_from_kb_payment_id :charge, kb_payment_id
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.refund_from_kb_payment_id(kb_payment_id)
|
11
|
+
single_transaction_from_kb_payment_id :refund, kb_payment_id
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.single_transaction_from_kb_payment_id(api_call, kb_payment_id)
|
15
|
+
litle_transactions = find_all_by_api_call_and_kb_payment_id(api_call, kb_payment_id)
|
8
16
|
raise "Unable to find Litle transaction id for payment #{kb_payment_id}" if litle_transactions.empty?
|
9
17
|
raise "Killbill payment mapping to multiple Litle transactions for payment #{kb_payment_id}" if litle_transactions.size > 1
|
10
18
|
litle_transactions[0]
|
@@ -27,4 +35,4 @@ module Killbill::Litle
|
|
27
35
|
litle_transactions.first
|
28
36
|
end
|
29
37
|
end
|
30
|
-
end
|
38
|
+
end
|
data/pom.xml
CHANGED
@@ -25,7 +25,7 @@
|
|
25
25
|
<groupId>com.ning.killbill.ruby</groupId>
|
26
26
|
<artifactId>litle-plugin</artifactId>
|
27
27
|
<packaging>pom</packaging>
|
28
|
-
<version>1.0.
|
28
|
+
<version>1.0.9</version>
|
29
29
|
<name>litle-plugin</name>
|
30
30
|
<scm>
|
31
31
|
<connection>scm:git:git://github.com/killbill/killbill-litle-plugin.git</connection>
|
@@ -88,6 +88,12 @@ describe Killbill::Litle::PaymentPlugin do
|
|
88
88
|
response.test.should be_true
|
89
89
|
response.success.should be_true
|
90
90
|
|
91
|
+
# Check we can retrieve the refund
|
92
|
+
refund_response = @plugin.get_refund_info pm.kb_account_id, kb_payment_id, @call_context
|
93
|
+
# Apparently, Litle returns positive amounts for refunds
|
94
|
+
refund_response.amount.should == amount_in_cents
|
95
|
+
refund_response.status.should == Killbill::Plugin::Model::PaymentPluginStatus.new(:PROCESSED)
|
96
|
+
|
91
97
|
# Make sure we can charge again the same payment method
|
92
98
|
second_amount_in_cents = 29471
|
93
99
|
second_kb_payment_id = SecureRandom.uuid
|