killbill-paypal-express 1.6.2 → 1.6.3
Sign up to get free protection for your applications and to get access to all the features.
- data/NEWS +3 -0
- data/VERSION +1 -1
- data/lib/paypal_express/api.rb +13 -12
- data/lib/paypal_express/models/paypal_express_response.rb +3 -3
- data/pom.xml +1 -1
- metadata +2 -2
data/NEWS
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.6.
|
1
|
+
1.6.3
|
data/lib/paypal_express/api.rb
CHANGED
@@ -23,7 +23,10 @@ module Killbill::PaypalExpress
|
|
23
23
|
paypal_express_transaction = PaypalExpressTransaction.from_kb_payment_id(kb_payment_id) rescue nil
|
24
24
|
return paypal_express_transaction.paypal_express_response.to_payment_response unless paypal_express_transaction.nil?
|
25
25
|
|
26
|
-
|
26
|
+
# Check for currency conversion
|
27
|
+
actual_amount, actual_currency = convert_amount_currency_if_required(amount_in_cents, currency, kb_payment_id)
|
28
|
+
|
29
|
+
options[:currency] ||= actual_currency.to_s
|
27
30
|
options[:payment_type] ||= 'Any'
|
28
31
|
options[:invoice_id] ||= kb_payment_id
|
29
32
|
options[:description] ||= Killbill::PaypalExpress.paypal_payment_description || "Kill Bill payment for #{kb_payment_id}"
|
@@ -34,8 +37,6 @@ module Killbill::PaypalExpress
|
|
34
37
|
options[:reference_id] = payment_method.paypal_express_baid
|
35
38
|
end
|
36
39
|
|
37
|
-
# Check for currency conversion
|
38
|
-
actual_amount, actual_currency = convert_amount_currency_if_required(amount_in_cents, currency, kb_payment_id)
|
39
40
|
|
40
41
|
# Go to Paypal (DoReferenceTransaction call)
|
41
42
|
paypal_response = @gateway.reference_transaction actual_amount, options
|
@@ -55,15 +56,15 @@ module Killbill::PaypalExpress
|
|
55
56
|
def process_refund(kb_account_id, kb_payment_id, amount, currency, call_context = nil, options = {})
|
56
57
|
amount_in_cents = (amount * 100).to_i
|
57
58
|
|
58
|
-
|
59
|
+
# Check for currency conversion
|
60
|
+
actual_amount, actual_currency = convert_amount_currency_if_required(amount_in_cents, currency, kb_payment_id)
|
59
61
|
|
60
|
-
|
61
|
-
options[:refund_type] ||= paypal_express_transaction.amount_in_cents != amount_in_cents ? 'Partial' : 'Full'
|
62
|
+
paypal_express_transaction = PaypalExpressTransaction.find_candidate_transaction_for_refund(kb_payment_id, actual_amount)
|
62
63
|
|
63
|
-
|
64
|
+
options[:currency] ||= actual_currency.to_s
|
65
|
+
options[:refund_type] ||= paypal_express_transaction.amount_in_cents != actual_amount ? 'Partial' : 'Full'
|
64
66
|
|
65
|
-
|
66
|
-
actual_amount, actual_currency = convert_amount_currency_if_required(amount_in_cents, currency, kb_payment_id)
|
67
|
+
identification = paypal_express_transaction.paypal_express_txn_id
|
67
68
|
|
68
69
|
# Go to Paypal
|
69
70
|
paypal_response = @gateway.refund actual_amount, identification, options
|
@@ -185,15 +186,15 @@ module Killbill::PaypalExpress
|
|
185
186
|
|
186
187
|
kb_payment = @kb_apis.payment_api.get_payment(kb_payment_id, false, @kb_apis.create_context)
|
187
188
|
|
188
|
-
currency_conversion = @kb_apis.currency_conversion_api.get_currency_conversion(
|
189
|
+
currency_conversion = @kb_apis.currency_conversion_api.get_currency_conversion(converted_currency, kb_payment.effective_date)
|
189
190
|
rates = currency_conversion.rates
|
190
191
|
found = rates.select do |r|
|
191
|
-
r.currency.to_s.upcase.to_sym ==
|
192
|
+
r.currency.to_s.upcase.to_sym == input_currency.to_s.upcase.to_sym
|
192
193
|
end
|
193
194
|
|
194
195
|
if found.nil? || found.empty?
|
195
196
|
@logger.warn "Failed to find converted currency #{converted_currency} for input currency #{input_currency}"
|
196
|
-
return [input_amount, input_currency]
|
197
|
+
return [input_amount, input_currency]
|
197
198
|
end
|
198
199
|
|
199
200
|
# conversion rounding ?
|
@@ -131,7 +131,7 @@ module Killbill::PaypalExpress
|
|
131
131
|
if paypal_express_transaction.nil?
|
132
132
|
# payment_info_grossamount is e.g. "100.00" - we need to convert it in cents
|
133
133
|
amount_in_cents = payment_info_grossamount ? (payment_info_grossamount.to_f * 100).to_i : nil
|
134
|
-
currency =
|
134
|
+
currency = nil
|
135
135
|
created_date = created_at
|
136
136
|
first_payment_reference_id = nil
|
137
137
|
second_payment_reference_id = nil
|
@@ -150,7 +150,7 @@ module Killbill::PaypalExpress
|
|
150
150
|
if type == :payment
|
151
151
|
p_info_plugin = Killbill::Plugin::Model::PaymentInfoPlugin.new
|
152
152
|
p_info_plugin.amount = BigDecimal.new(amount_in_cents.to_s) / 100.0 if amount_in_cents
|
153
|
-
p_info_plugin.
|
153
|
+
p_info_plugin.currency = currency
|
154
154
|
p_info_plugin.created_date = created_date
|
155
155
|
p_info_plugin.effective_date = effective_date
|
156
156
|
p_info_plugin.status = (success ? :PROCESSED : :ERROR)
|
@@ -162,7 +162,7 @@ module Killbill::PaypalExpress
|
|
162
162
|
else
|
163
163
|
r_info_plugin = Killbill::Plugin::Model::RefundInfoPlugin.new
|
164
164
|
r_info_plugin.amount = BigDecimal.new(amount_in_cents.to_s) / 100.0 if amount_in_cents
|
165
|
-
r_info_plugin.
|
165
|
+
r_info_plugin.currency = currency
|
166
166
|
r_info_plugin.created_date = created_date
|
167
167
|
r_info_plugin.effective_date = effective_date
|
168
168
|
r_info_plugin.status = (success ? :PROCESSED : :ERROR)
|
data/pom.xml
CHANGED
@@ -25,7 +25,7 @@
|
|
25
25
|
<groupId>com.ning.killbill.ruby</groupId>
|
26
26
|
<artifactId>paypal-express-plugin</artifactId>
|
27
27
|
<packaging>pom</packaging>
|
28
|
-
<version>1.6.
|
28
|
+
<version>1.6.3</version>
|
29
29
|
<name>paypal-express-plugin</name>
|
30
30
|
<url>http://github.com/killbill/killbill-paypal-express-plugin</url>
|
31
31
|
<description>Plugin for accessing paypal as a payment gateway</description>
|
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: killbill-paypal-express
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.2
|
5
4
|
prerelease:
|
5
|
+
version: 1.6.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Kill Bill core team
|
@@ -213,9 +213,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
213
213
|
- !ruby/object:Gem::Version
|
214
214
|
segments:
|
215
215
|
- 0
|
216
|
+
hash: 2
|
216
217
|
version: !binary |-
|
217
218
|
MA==
|
218
|
-
hash: 2
|
219
219
|
none: false
|
220
220
|
requirements: []
|
221
221
|
rubyforge_project:
|