killbill-litle 1.3.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/Jarfile CHANGED
@@ -1,5 +1,5 @@
1
1
  jar 'com.ning.billing:killbill-api', '0.3.0'
2
2
  jar 'com.ning.billing.plugin:killbill-plugin-api-notification', '0.2.4'
3
3
  jar 'com.ning.billing.plugin:killbill-plugin-api-payment', '0.2.4'
4
- jar 'com.ning.billing:killbill-util:tests', '0.2.6-SNAPSHOT'
4
+ jar 'com.ning.billing:killbill-util:tests', '0.3.0'
5
5
  jar 'javax.servlet:javax.servlet-api', '3.0.1'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.3.0
1
+ 1.4.0
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
22
22
 
23
23
  s.rdoc_options << '--exclude' << '.'
24
24
 
25
- s.add_dependency 'killbill', '~> 1.1.2'
25
+ s.add_dependency 'killbill', '~> 1.2.0'
26
26
  s.add_dependency 'activemerchant', '~> 2.0.0'
27
27
  s.add_dependency 'activerecord', '~> 3.2.1'
28
28
  s.add_dependency 'sinatra', '~> 1.3.4'
data/lib/litle/api.rb CHANGED
@@ -13,7 +13,9 @@ module Killbill::Litle
13
13
  ActiveRecord::Base.connection.close
14
14
  end
15
15
 
16
- def process_payment(kb_account_id, kb_payment_id, kb_payment_method_id, amount_in_cents, currency, call_context = nil, options = {})
16
+ def process_payment(kb_account_id, kb_payment_id, kb_payment_method_id, amount, currency, call_context = nil, options = {})
17
+ amount_in_cents = (amount * 100).to_i
18
+
17
19
  # If the payment was already made, just return the status
18
20
  # TODO Should we set the Litle Id field to check for dups (https://www.litle.com/mc-secure/DupeChecking_V1.2.pdf)?
19
21
  litle_transaction = LitleTransaction.from_kb_payment_id(kb_payment_id) rescue nil
@@ -45,7 +47,9 @@ module Killbill::Litle
45
47
  litle_transaction.litle_response.to_payment_response
46
48
  end
47
49
 
48
- def process_refund(kb_account_id, kb_payment_id, amount_in_cents, currency, call_context = nil, options = {})
50
+ def process_refund(kb_account_id, kb_payment_id, amount, currency, call_context = nil, options = {})
51
+ amount_in_cents = (amount * 100).to_i
52
+
49
53
  litle_transaction = LitleTransaction.find_candidate_transaction_for_refund(kb_payment_id, amount_in_cents)
50
54
 
51
55
  # Set a default report group
@@ -105,7 +105,7 @@ module Killbill::Litle
105
105
 
106
106
  if type == :payment
107
107
  p_info_plugin = Killbill::Plugin::Model::PaymentInfoPlugin.new
108
- p_info_plugin.amount = amount_in_cents
108
+ p_info_plugin.amount = BigDecimal.new(amount_in_cents.to_s) / 100.0 if amount_in_cents
109
109
  p_info_plugin.created_date = created_date
110
110
  p_info_plugin.effective_date = effective_date
111
111
  p_info_plugin.status = (success ? :PROCESSED : :ERROR)
@@ -116,7 +116,7 @@ module Killbill::Litle
116
116
  p_info_plugin
117
117
  else
118
118
  r_info_plugin = Killbill::Plugin::Model::RefundInfoPlugin.new
119
- r_info_plugin.amount = amount_in_cents
119
+ r_info_plugin.amount = BigDecimal.new(amount_in_cents.to_s) / 100.0 if amount_in_cents
120
120
  r_info_plugin.created_date = created_date
121
121
  r_info_plugin.effective_date = effective_date
122
122
  r_info_plugin.status = (success ? :PROCESSED : :ERROR)
data/lib/litle.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'active_record'
2
2
  require 'activemerchant'
3
+ require 'bigdecimal'
3
4
  require 'pathname'
4
5
  require 'sinatra'
5
6
  require 'singleton'
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.3.0</version>
28
+ <version>1.4.0</version>
29
29
  <name>litle-plugin</name>
30
30
  <url>http://github.com/killbill/killbill-litle-plugin</url>
31
31
  <description>Plugin for accessing Litle as a payment gateway</description>
@@ -1,5 +1,4 @@
1
1
  require 'spec_helper'
2
- require 'logger'
3
2
 
4
3
  ActiveMerchant::Billing::Base.mode = :test
5
4
 
@@ -54,12 +53,12 @@ describe Killbill::Litle::PaymentPlugin do
54
53
 
55
54
  it 'should be able to charge and refund' do
56
55
  pm = create_payment_method
57
- amount_in_cents = 10000
56
+ amount = BigDecimal.new("100")
58
57
  currency = 'USD'
59
58
  kb_payment_id = SecureRandom.uuid
60
59
 
61
- payment_response = @plugin.process_payment pm.kb_account_id, kb_payment_id, pm.kb_payment_method_id, amount_in_cents, currency
62
- payment_response.amount.should == amount_in_cents
60
+ payment_response = @plugin.process_payment pm.kb_account_id, kb_payment_id, pm.kb_payment_method_id, amount, currency
61
+ payment_response.amount.should == amount
63
62
  payment_response.status.should == :PROCESSED
64
63
 
65
64
  # Verify our table directly
@@ -70,14 +69,14 @@ describe Killbill::Litle::PaymentPlugin do
70
69
  response.params_litleonelineresponse_saleresponse_order_id.should == Killbill::Litle::Utils.compact_uuid(kb_payment_id)
71
70
 
72
71
  payment_response = @plugin.get_payment_info pm.kb_account_id, kb_payment_id
73
- payment_response.amount.should == amount_in_cents
72
+ payment_response.amount.should == amount
74
73
  payment_response.status.should == :PROCESSED
75
74
 
76
75
  # Check we cannot refund an amount greater than the original charge
77
- lambda { @plugin.process_refund pm.kb_account_id, kb_payment_id, amount_in_cents + 1, currency }.should raise_error RuntimeError
76
+ lambda { @plugin.process_refund pm.kb_account_id, kb_payment_id, amount + 1, currency }.should raise_error RuntimeError
78
77
 
79
- refund_response = @plugin.process_refund pm.kb_account_id, kb_payment_id, amount_in_cents, currency
80
- refund_response.amount.should == amount_in_cents
78
+ refund_response = @plugin.process_refund pm.kb_account_id, kb_payment_id, amount, currency
79
+ refund_response.amount.should == amount
81
80
  refund_response.status.should == :PROCESSED
82
81
 
83
82
  # Verify our table directly
@@ -88,15 +87,15 @@ describe Killbill::Litle::PaymentPlugin do
88
87
  # Check we can retrieve the refund
89
88
  refund_response = @plugin.get_refund_info pm.kb_account_id, kb_payment_id
90
89
  # Apparently, Litle returns positive amounts for refunds
91
- refund_response.amount.should == amount_in_cents
90
+ refund_response.amount.should == amount
92
91
  refund_response.status.should == :PROCESSED
93
92
 
94
93
  # Make sure we can charge again the same payment method
95
- second_amount_in_cents = 29471
94
+ second_amount = BigDecimal.new("294.71")
96
95
  second_kb_payment_id = SecureRandom.uuid
97
96
 
98
- payment_response = @plugin.process_payment pm.kb_account_id, second_kb_payment_id, pm.kb_payment_method_id, second_amount_in_cents, currency
99
- payment_response.amount.should == second_amount_in_cents
97
+ payment_response = @plugin.process_payment pm.kb_account_id, second_kb_payment_id, pm.kb_payment_method_id, second_amount, currency
98
+ payment_response.amount.should == second_amount
100
99
  payment_response.status.should == :PROCESSED
101
100
  end
102
101
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: killbill-litle
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-21 00:00:00.000000000 Z
12
+ date: 2013-06-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: killbill
@@ -17,13 +17,13 @@ dependencies:
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: 1.1.2
20
+ version: 1.2.0
21
21
  none: false
22
22
  requirement: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.1.2
26
+ version: 1.2.0
27
27
  none: false
28
28
  prerelease: false
29
29
  type: :runtime