killbill-paypal-express 1.6.2 → 1.6.3
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/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:
|