killbill-payu-latam 0.0.1
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/.gitignore +36 -0
- data/.travis.yml +19 -0
- data/Gemfile +3 -0
- data/Jarfile +8 -0
- data/LICENSE +201 -0
- data/NEWS +2 -0
- data/README.md +4 -0
- data/Rakefile +30 -0
- data/VERSION +1 -0
- data/config.ru +4 -0
- data/db/ddl.sql +75 -0
- data/db/schema.rb +76 -0
- data/killbill-payu-latam.gemspec +49 -0
- data/killbill.properties +3 -0
- data/lib/payu_latam.rb +25 -0
- data/lib/payu_latam/api.rb +184 -0
- data/lib/payu_latam/application.rb +84 -0
- data/lib/payu_latam/models/payment_method.rb +23 -0
- data/lib/payu_latam/models/response.rb +27 -0
- data/lib/payu_latam/models/transaction.rb +11 -0
- data/lib/payu_latam/private_api.rb +6 -0
- data/lib/payu_latam/views/form.erb +8 -0
- data/payu_latam.yml +54 -0
- data/pom.xml +44 -0
- data/release.sh +41 -0
- data/spec/payu_latam/base_plugin_spec.rb +61 -0
- data/spec/payu_latam/remote/integration_spec.rb +165 -0
- data/spec/spec_helper.rb +24 -0
- metadata +300 -0
data/pom.xml
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!--
|
3
|
+
~ Copyright 2014 The Billing Project, LLC
|
4
|
+
~
|
5
|
+
~ The Billing Project licenses this file to you under the Apache License, version 2.0
|
6
|
+
~ (the "License"); you may not use this file except in compliance with the
|
7
|
+
~ License. You may obtain a copy of the License at:
|
8
|
+
~
|
9
|
+
~ http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
~
|
11
|
+
~ Unless required by applicable law or agreed to in writing, software
|
12
|
+
~ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
13
|
+
~ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
14
|
+
~ License for the specific language governing permissions and limitations
|
15
|
+
~ under the License.
|
16
|
+
-->
|
17
|
+
|
18
|
+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
19
|
+
<parent>
|
20
|
+
<groupId>org.sonatype.oss</groupId>
|
21
|
+
<artifactId>oss-parent</artifactId>
|
22
|
+
<version>5</version>
|
23
|
+
</parent>
|
24
|
+
<modelVersion>4.0.0</modelVersion>
|
25
|
+
<groupId>org.kill-bill.billing.plugin.ruby</groupId>
|
26
|
+
<artifactId>payu-latam-plugin</artifactId>
|
27
|
+
<packaging>pom</packaging>
|
28
|
+
<version>0.0.1</version>
|
29
|
+
<name>payu-latam-plugin</name>
|
30
|
+
<url>http://github.com/killbill/killbill-payu-latam-plugin</url>
|
31
|
+
<description>Plugin for accessing PayuLatam as a payment gateway</description>
|
32
|
+
<licenses>
|
33
|
+
<license>
|
34
|
+
<name>Apache License 2.0</name>
|
35
|
+
<url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
|
36
|
+
<distribution>repo</distribution>
|
37
|
+
</license>
|
38
|
+
</licenses>
|
39
|
+
<scm>
|
40
|
+
<connection>scm:git:git://github.com/killbill/killbill-payu-latam-plugin.git</connection>
|
41
|
+
<url>https://github.com/killbill/killbill-payu-latam-plugin/</url>
|
42
|
+
<developerConnection>scm:git:git@github.com:killbill/killbill-payu-latam-plugin.git</developerConnection>
|
43
|
+
</scm>
|
44
|
+
</project>
|
data/release.sh
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
set -e
|
2
|
+
|
3
|
+
if [ 'GNU' != "$(tar --help | grep GNU | head -1 | awk '{print $1}')" ]; then
|
4
|
+
echo 'Unable to release: make sure to use GNU tar'
|
5
|
+
exit 1
|
6
|
+
fi
|
7
|
+
|
8
|
+
if $(ruby -e'require "java"'); then
|
9
|
+
# Good
|
10
|
+
echo 'Detected JRuby'
|
11
|
+
else
|
12
|
+
echo 'Unable to release: make sure to use JRuby'
|
13
|
+
exit 1
|
14
|
+
fi
|
15
|
+
|
16
|
+
VERSION=`grep -E '<version>([0-9]+\.[0-9]+\.[0-9]+)</version>' pom.xml | sed 's/[\t \n]*<version>\(.*\)<\/version>[\t \n]*/\1/'`
|
17
|
+
if [ "$VERSION" != "$(cat $PWD/VERSION)" ]; then
|
18
|
+
echo 'Unable to release: make sure the versions in pom.xml and VERSION match'
|
19
|
+
exit 1
|
20
|
+
fi
|
21
|
+
|
22
|
+
echo 'Cleaning up'
|
23
|
+
rake killbill:clean ; rake build
|
24
|
+
|
25
|
+
echo 'Pushing the gem to Rubygems'
|
26
|
+
rake release
|
27
|
+
|
28
|
+
echo 'Building artifact'
|
29
|
+
rake killbill:package
|
30
|
+
|
31
|
+
ARTIFACT="$PWD/pkg/killbill-payu-latam-$VERSION.tar.gz"
|
32
|
+
echo "Pushing $ARTIFACT to Maven Central"
|
33
|
+
mvn gpg:sign-and-deploy-file \
|
34
|
+
-DgroupId=org.kill-bill.billing.plugin.ruby \
|
35
|
+
-DartifactId=payu-latam-plugin \
|
36
|
+
-Dversion=$VERSION \
|
37
|
+
-Dpackaging=tar.gz \
|
38
|
+
-DrepositoryId=ossrh-releases \
|
39
|
+
-Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ \
|
40
|
+
-Dfile=$ARTIFACT \
|
41
|
+
-DpomFile=pom.xml
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Killbill::PayuLatam::PaymentPlugin do
|
4
|
+
before(:each) do
|
5
|
+
Dir.mktmpdir do |dir|
|
6
|
+
file = File.new(File.join(dir, 'payu_latam.yml'), "w+")
|
7
|
+
file.write(<<-eos)
|
8
|
+
:payu_latam:
|
9
|
+
:test: true
|
10
|
+
# As defined by spec_helper.rb
|
11
|
+
:database:
|
12
|
+
:adapter: 'sqlite3'
|
13
|
+
:database: 'test.db'
|
14
|
+
eos
|
15
|
+
file.close
|
16
|
+
|
17
|
+
@plugin = Killbill::PayuLatam::PaymentPlugin.new
|
18
|
+
@plugin.logger = Logger.new(STDOUT)
|
19
|
+
@plugin.logger.level = Logger::INFO
|
20
|
+
@plugin.conf_dir = File.dirname(file)
|
21
|
+
@plugin.kb_apis = Killbill::Plugin::KillbillApi.new('payu_latam', {})
|
22
|
+
|
23
|
+
# Start the plugin here - since the config file will be deleted
|
24
|
+
@plugin.start_plugin
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should start and stop correctly' do
|
29
|
+
@plugin.stop_plugin
|
30
|
+
end
|
31
|
+
|
32
|
+
# No support for HPP
|
33
|
+
|
34
|
+
#xit 'should generate forms correctly' do
|
35
|
+
# kb_account_id = SecureRandom.uuid
|
36
|
+
# kb_tenant_id = SecureRandom.uuid
|
37
|
+
# context = @plugin.kb_apis.create_context(kb_tenant_id)
|
38
|
+
# fields = @plugin.hash_to_properties({
|
39
|
+
# :order_id => '1234',
|
40
|
+
# :amount => 10
|
41
|
+
# })
|
42
|
+
# form = @plugin.build_form_descriptor kb_account_id, fields, [], context
|
43
|
+
|
44
|
+
# form.kb_account_id.should == kb_account_id
|
45
|
+
# form.form_method.should == 'POST'
|
46
|
+
# form.form_url.should == 'https://payulatam.com'
|
47
|
+
|
48
|
+
# form_fields = @plugin.properties_to_hash(form.form_fields)
|
49
|
+
#end
|
50
|
+
|
51
|
+
#xit 'should receive notifications correctly' do
|
52
|
+
# description = 'description'
|
53
|
+
|
54
|
+
# kb_tenant_id = SecureRandom.uuid
|
55
|
+
# context = @plugin.kb_apis.create_context(kb_tenant_id)
|
56
|
+
# properties = @plugin.hash_to_properties({ :description => description })
|
57
|
+
|
58
|
+
# notification = ""
|
59
|
+
# gw_notification = @plugin.process_notification notification, properties, context
|
60
|
+
#end
|
61
|
+
end
|
@@ -0,0 +1,165 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
ActiveMerchant::Billing::Base.mode = :test
|
4
|
+
|
5
|
+
module ActiveMerchant #:nodoc:
|
6
|
+
module Billing #:nodoc:
|
7
|
+
class CreditCard < Model
|
8
|
+
def number=(value)
|
9
|
+
@number = value
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe Killbill::PayuLatam::PaymentPlugin do
|
16
|
+
|
17
|
+
include ::Killbill::Plugin::ActiveMerchant::RSpec
|
18
|
+
|
19
|
+
before(:each) do
|
20
|
+
# PayULatamGateway's test server has an improperly installed cert
|
21
|
+
::ActiveMerchant::Billing::PayULatamGateway.ssl_strict = false
|
22
|
+
|
23
|
+
@plugin = Killbill::PayuLatam::PaymentPlugin.new
|
24
|
+
|
25
|
+
@account_api = ::Killbill::Plugin::ActiveMerchant::RSpec::FakeJavaUserAccountApi.new
|
26
|
+
@payment_api = ::Killbill::Plugin::ActiveMerchant::RSpec::FakeJavaPaymentApi.new
|
27
|
+
svcs = {:account_user_api => @account_api, :payment_api => @payment_api}
|
28
|
+
@plugin.kb_apis = Killbill::Plugin::KillbillApi.new('payu', svcs)
|
29
|
+
|
30
|
+
@call_context = ::Killbill::Plugin::Model::CallContext.new
|
31
|
+
@call_context.tenant_id = '00000011-0022-0033-0044-000000000055'
|
32
|
+
@call_context = @call_context.to_ruby(@call_context)
|
33
|
+
|
34
|
+
@plugin.logger = Logger.new(STDOUT)
|
35
|
+
@plugin.logger.level = Logger::INFO
|
36
|
+
@plugin.conf_dir = File.expand_path(File.dirname(__FILE__) + '../../../../')
|
37
|
+
@plugin.start_plugin
|
38
|
+
|
39
|
+
@properties = []
|
40
|
+
# Go through Brazil (supports auth/capture)
|
41
|
+
@properties << create_pm_kv_info('payment_processor_account_id', 'brazil')
|
42
|
+
# Required CVV for token-based transactions
|
43
|
+
@properties << create_pm_kv_info('security_code', '123')
|
44
|
+
@properties << create_pm_kv_info('payment_country', 'BR')
|
45
|
+
|
46
|
+
@pm = create_payment_method(::Killbill::PayuLatam::PayuLatamPaymentMethod, nil, @call_context.tenant_id, @properties, valid_cc_info)
|
47
|
+
@amount = BigDecimal.new('500')
|
48
|
+
@currency = 'BRL'
|
49
|
+
|
50
|
+
kb_payment_id = SecureRandom.uuid
|
51
|
+
1.upto(6) do
|
52
|
+
@kb_payment = @payment_api.add_payment(kb_payment_id)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
after(:each) do
|
57
|
+
@plugin.stop_plugin
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'should be able to charge a Credit Card directly' do
|
61
|
+
properties = build_pm_properties(nil, valid_cc_info)
|
62
|
+
properties += @properties
|
63
|
+
|
64
|
+
# We created the payment method, hence the rows
|
65
|
+
Killbill::PayuLatam::PayuLatamResponse.all.size.should == 1
|
66
|
+
Killbill::PayuLatam::PayuLatamTransaction.all.size.should == 0
|
67
|
+
|
68
|
+
payment_response = @plugin.purchase_payment(@pm.kb_account_id, @kb_payment.id, @kb_payment.transactions[0].id, SecureRandom.uuid, @amount, @currency, properties, @call_context)
|
69
|
+
payment_response.status.should eq(:PROCESSED), payment_response.gateway_error
|
70
|
+
payment_response.amount.should == @amount
|
71
|
+
payment_response.transaction_type.should == :PURCHASE
|
72
|
+
|
73
|
+
responses = Killbill::PayuLatam::PayuLatamResponse.all
|
74
|
+
responses.size.should == 2
|
75
|
+
responses[0].api_call.should == 'add_payment_method'
|
76
|
+
responses[0].message.should == 'Successful transaction'
|
77
|
+
responses[1].api_call.should == 'purchase'
|
78
|
+
responses[1].message.should == 'The transaction was approved'
|
79
|
+
transactions = Killbill::PayuLatam::PayuLatamTransaction.all
|
80
|
+
transactions.size.should == 1
|
81
|
+
transactions[0].api_call.should == 'purchase'
|
82
|
+
end
|
83
|
+
|
84
|
+
# The sandbox doesn't support void, capture, nor refund
|
85
|
+
|
86
|
+
#xit 'should be able to charge and refund' do
|
87
|
+
# payment_response = @plugin.purchase_payment(@pm.kb_account_id, @kb_payment.id, @kb_payment.transactions[0].id, @pm.kb_payment_method_id, @amount, @currency, @properties, @call_context)
|
88
|
+
# payment_response.status.should eq(:PROCESSED), payment_response.gateway_error
|
89
|
+
# payment_response.amount.should == @amount
|
90
|
+
# payment_response.transaction_type.should == :PURCHASE
|
91
|
+
#
|
92
|
+
# # Try a full refund
|
93
|
+
# refund_response = @plugin.refund_payment(@pm.kb_account_id, @kb_payment.id, @kb_payment.transactions[1].id, @pm.kb_payment_method_id, @amount, @currency, @properties, @call_context)
|
94
|
+
# refund_response.status.should eq(:PROCESSED), payment_response.gateway_error
|
95
|
+
# refund_response.amount.should == @amount
|
96
|
+
# refund_response.transaction_type.should == :REFUND
|
97
|
+
#end
|
98
|
+
|
99
|
+
#xit 'should be able to auth, capture and refund' do
|
100
|
+
# payment_response = @plugin.authorize_payment(@pm.kb_account_id, @kb_payment.id, @kb_payment.transactions[0].id, @pm.kb_payment_method_id, @amount, @currency, @properties, @call_context)
|
101
|
+
# payment_response.status.should eq(:PROCESSED), payment_response.gateway_error
|
102
|
+
# payment_response.amount.should == @amount
|
103
|
+
# payment_response.transaction_type.should == :AUTHORIZE
|
104
|
+
#
|
105
|
+
# # Try multiple partial captures
|
106
|
+
# partial_capture_amount = BigDecimal.new('10')
|
107
|
+
# 1.upto(3) do |i|
|
108
|
+
# payment_response = @plugin.capture_payment(@pm.kb_account_id, @kb_payment.id, @kb_payment.transactions[i].id, @pm.kb_payment_method_id, partial_capture_amount, @currency, @properties, @call_context)
|
109
|
+
# payment_response.status.should eq(:PROCESSED), payment_response.gateway_error
|
110
|
+
# payment_response.amount.should == partial_capture_amount
|
111
|
+
# payment_response.transaction_type.should == :CAPTURE
|
112
|
+
# end
|
113
|
+
#
|
114
|
+
# # Try a partial refund
|
115
|
+
# refund_response = @plugin.refund_payment(@pm.kb_account_id, @kb_payment.id, @kb_payment.transactions[4].id, @pm.kb_payment_method_id, partial_capture_amount, @currency, @properties, @call_context)
|
116
|
+
# refund_response.status.should eq(:PROCESSED), payment_response.gateway_error
|
117
|
+
# refund_response.amount.should == partial_capture_amount
|
118
|
+
# refund_response.transaction_type.should == :REFUND
|
119
|
+
#
|
120
|
+
# # Try to capture again
|
121
|
+
# payment_response = @plugin.capture_payment(@pm.kb_account_id, @kb_payment.id, @kb_payment.transactions[5].id, @pm.kb_payment_method_id, partial_capture_amount, @currency, @properties, @call_context)
|
122
|
+
# payment_response.status.should eq(:PROCESSED), payment_response.gateway_error
|
123
|
+
# payment_response.amount.should == partial_capture_amount
|
124
|
+
# payment_response.transaction_type.should == :CAPTURE
|
125
|
+
#end
|
126
|
+
|
127
|
+
#it 'should be able to auth and void' do
|
128
|
+
# payment_response = @plugin.authorize_payment(@pm.kb_account_id, @kb_payment.id, @kb_payment.transactions[0].id, @pm.kb_payment_method_id, @amount, @currency, @properties, @call_context)
|
129
|
+
# payment_response.status.should eq(:PROCESSED), payment_response.gateway_error
|
130
|
+
# payment_response.amount.should == @amount
|
131
|
+
# payment_response.transaction_type.should == :AUTHORIZE
|
132
|
+
#
|
133
|
+
# payment_response = @plugin.void_payment(@pm.kb_account_id, @kb_payment.id, @kb_payment.transactions[1].id, @pm.kb_payment_method_id, @properties, @call_context)
|
134
|
+
# payment_response.status.should eq(:PROCESSED), payment_response.gateway_error
|
135
|
+
# payment_response.transaction_type.should == :VOID
|
136
|
+
#end
|
137
|
+
|
138
|
+
#it 'should be able to auth, partial capture and void' do
|
139
|
+
# payment_response = @plugin.authorize_payment(@pm.kb_account_id, @kb_payment.id, @kb_payment.transactions[0].id, @pm.kb_payment_method_id, @amount, @currency, @properties, @call_context)
|
140
|
+
# payment_response.status.should eq(:PROCESSED), payment_response.gateway_error
|
141
|
+
# payment_response.amount.should == @amount
|
142
|
+
# payment_response.transaction_type.should == :AUTHORIZE
|
143
|
+
#
|
144
|
+
# partial_capture_amount = BigDecimal.new('10')
|
145
|
+
# payment_response = @plugin.capture_payment(@pm.kb_account_id, @kb_payment.id, @kb_payment.transactions[1].id, @pm.kb_payment_method_id, partial_capture_amount, @currency, @properties, @call_context)
|
146
|
+
# payment_response.status.should eq(:PROCESSED), payment_response.gateway_error
|
147
|
+
# payment_response.amount.should == partial_capture_amount
|
148
|
+
# payment_response.transaction_type.should == :CAPTURE
|
149
|
+
#
|
150
|
+
# payment_response = @plugin.void_payment(@pm.kb_account_id, @kb_payment.id, @kb_payment.transactions[2].id, @pm.kb_payment_method_id, @properties, @call_context)
|
151
|
+
# payment_response.status.should eq(:PROCESSED), payment_response.gateway_error
|
152
|
+
# payment_response.transaction_type.should == :VOID
|
153
|
+
#end
|
154
|
+
|
155
|
+
private
|
156
|
+
|
157
|
+
def valid_cc_info
|
158
|
+
{
|
159
|
+
# We can't use the default credit card number as it's seen as a US one (the testing account doesn't allow international credit cards)
|
160
|
+
:cc_number => '4422120000000008',
|
161
|
+
# Enter APPROVED for the cardholder name value if you want the transaction to be approved or REJECTED if you want it to be rejected
|
162
|
+
:cc_last_name => 'APPROVED'
|
163
|
+
}
|
164
|
+
end
|
165
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
require 'payu_latam'
|
3
|
+
require 'killbill/helpers/active_merchant/killbill_spec_helper'
|
4
|
+
|
5
|
+
require 'logger'
|
6
|
+
|
7
|
+
require 'rspec'
|
8
|
+
|
9
|
+
RSpec.configure do |config|
|
10
|
+
config.color_enabled = true
|
11
|
+
config.tty = true
|
12
|
+
config.formatter = 'documentation'
|
13
|
+
end
|
14
|
+
|
15
|
+
require 'active_record'
|
16
|
+
ActiveRecord::Base.establish_connection(
|
17
|
+
:adapter => 'sqlite3',
|
18
|
+
:database => 'test.db'
|
19
|
+
)
|
20
|
+
# For debugging
|
21
|
+
#ActiveRecord::Base.logger = Logger.new(STDOUT)
|
22
|
+
# Create the schema
|
23
|
+
require File.expand_path(File.dirname(__FILE__) + '../../db/schema.rb')
|
24
|
+
|
metadata
ADDED
@@ -0,0 +1,300 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: killbill-payu-latam
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Kill Bill core team
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-12-01 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: killbill
|
15
|
+
version_requirements: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 3.2.0
|
20
|
+
requirement: !ruby/object:Gem::Requirement
|
21
|
+
requirements:
|
22
|
+
- - ~>
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: 3.2.0
|
25
|
+
prerelease: false
|
26
|
+
type: :runtime
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: aktivemerchant
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.0.0
|
34
|
+
requirement: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - ~>
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: 2.0.0
|
39
|
+
prerelease: false
|
40
|
+
type: :runtime
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: offsite_payments
|
43
|
+
version_requirements: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 2.0.1
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- - ~>
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 2.0.1
|
53
|
+
prerelease: false
|
54
|
+
type: :runtime
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: activerecord
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 4.1.0
|
62
|
+
requirement: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - ~>
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 4.1.0
|
67
|
+
prerelease: false
|
68
|
+
type: :runtime
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: actionpack
|
71
|
+
version_requirements: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 4.1.0
|
76
|
+
requirement: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - ~>
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: 4.1.0
|
81
|
+
prerelease: false
|
82
|
+
type: :runtime
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: actionview
|
85
|
+
version_requirements: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ~>
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 4.1.0
|
90
|
+
requirement: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - ~>
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: 4.1.0
|
95
|
+
prerelease: false
|
96
|
+
type: :runtime
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: activesupport
|
99
|
+
version_requirements: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ~>
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 4.1.0
|
104
|
+
requirement: !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- - ~>
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: 4.1.0
|
109
|
+
prerelease: false
|
110
|
+
type: :runtime
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: money
|
113
|
+
version_requirements: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ~>
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 6.1.1
|
118
|
+
requirement: !ruby/object:Gem::Requirement
|
119
|
+
requirements:
|
120
|
+
- - ~>
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: 6.1.1
|
123
|
+
prerelease: false
|
124
|
+
type: :runtime
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: monetize
|
127
|
+
version_requirements: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ~>
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 0.3.0
|
132
|
+
requirement: !ruby/object:Gem::Requirement
|
133
|
+
requirements:
|
134
|
+
- - ~>
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: 0.3.0
|
137
|
+
prerelease: false
|
138
|
+
type: :runtime
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: sinatra
|
141
|
+
version_requirements: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ~>
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 1.3.4
|
146
|
+
requirement: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
148
|
+
- - ~>
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: 1.3.4
|
151
|
+
prerelease: false
|
152
|
+
type: :runtime
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: activerecord-jdbcmysql-adapter
|
155
|
+
version_requirements: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ~>
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: 1.3.7
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
161
|
+
requirements:
|
162
|
+
- - ~>
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: 1.3.7
|
165
|
+
prerelease: false
|
166
|
+
type: :runtime
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: jruby-openssl
|
169
|
+
version_requirements: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ~>
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 0.9.4
|
174
|
+
requirement: !ruby/object:Gem::Requirement
|
175
|
+
requirements:
|
176
|
+
- - ~>
|
177
|
+
- !ruby/object:Gem::Version
|
178
|
+
version: 0.9.4
|
179
|
+
prerelease: false
|
180
|
+
type: :runtime
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: jbundler
|
183
|
+
version_requirements: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ~>
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: 0.4.1
|
188
|
+
requirement: !ruby/object:Gem::Requirement
|
189
|
+
requirements:
|
190
|
+
- - ~>
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: 0.4.1
|
193
|
+
prerelease: false
|
194
|
+
type: :development
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: rake
|
197
|
+
version_requirements: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - '>='
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: 10.0.0
|
202
|
+
requirement: !ruby/object:Gem::Requirement
|
203
|
+
requirements:
|
204
|
+
- - '>='
|
205
|
+
- !ruby/object:Gem::Version
|
206
|
+
version: 10.0.0
|
207
|
+
prerelease: false
|
208
|
+
type: :development
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: rspec
|
211
|
+
version_requirements: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - ~>
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: 2.12.0
|
216
|
+
requirement: !ruby/object:Gem::Requirement
|
217
|
+
requirements:
|
218
|
+
- - ~>
|
219
|
+
- !ruby/object:Gem::Version
|
220
|
+
version: 2.12.0
|
221
|
+
prerelease: false
|
222
|
+
type: :development
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: activerecord-jdbcsqlite3-adapter
|
225
|
+
version_requirements: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - ~>
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: 1.3.7
|
230
|
+
requirement: !ruby/object:Gem::Requirement
|
231
|
+
requirements:
|
232
|
+
- - ~>
|
233
|
+
- !ruby/object:Gem::Version
|
234
|
+
version: 1.3.7
|
235
|
+
prerelease: false
|
236
|
+
type: :development
|
237
|
+
description: Kill Bill payment plugin for PayU Latam.
|
238
|
+
email: killbilling-users@googlegroups.com
|
239
|
+
executables: []
|
240
|
+
extensions: []
|
241
|
+
extra_rdoc_files: []
|
242
|
+
files:
|
243
|
+
- .gitignore
|
244
|
+
- .travis.yml
|
245
|
+
- Gemfile
|
246
|
+
- Jarfile
|
247
|
+
- LICENSE
|
248
|
+
- NEWS
|
249
|
+
- README.md
|
250
|
+
- Rakefile
|
251
|
+
- VERSION
|
252
|
+
- config.ru
|
253
|
+
- db/ddl.sql
|
254
|
+
- db/schema.rb
|
255
|
+
- killbill-payu-latam.gemspec
|
256
|
+
- killbill.properties
|
257
|
+
- lib/payu_latam.rb
|
258
|
+
- lib/payu_latam/api.rb
|
259
|
+
- lib/payu_latam/application.rb
|
260
|
+
- lib/payu_latam/models/payment_method.rb
|
261
|
+
- lib/payu_latam/models/response.rb
|
262
|
+
- lib/payu_latam/models/transaction.rb
|
263
|
+
- lib/payu_latam/private_api.rb
|
264
|
+
- lib/payu_latam/views/form.erb
|
265
|
+
- payu_latam.yml
|
266
|
+
- pom.xml
|
267
|
+
- release.sh
|
268
|
+
- spec/payu_latam/base_plugin_spec.rb
|
269
|
+
- spec/payu_latam/remote/integration_spec.rb
|
270
|
+
- spec/spec_helper.rb
|
271
|
+
homepage: http://kill-bill.org
|
272
|
+
licenses:
|
273
|
+
- Apache License (2.0)
|
274
|
+
metadata: {}
|
275
|
+
post_install_message:
|
276
|
+
rdoc_options:
|
277
|
+
- --exclude
|
278
|
+
- .
|
279
|
+
require_paths:
|
280
|
+
- lib
|
281
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
282
|
+
requirements:
|
283
|
+
- - '>='
|
284
|
+
- !ruby/object:Gem::Version
|
285
|
+
version: 1.9.3
|
286
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
287
|
+
requirements:
|
288
|
+
- - '>='
|
289
|
+
- !ruby/object:Gem::Version
|
290
|
+
version: '0'
|
291
|
+
requirements: []
|
292
|
+
rubyforge_project:
|
293
|
+
rubygems_version: 2.2.2
|
294
|
+
signing_key:
|
295
|
+
specification_version: 4
|
296
|
+
summary: Plugin to use PayU Latam as a gateway.
|
297
|
+
test_files:
|
298
|
+
- spec/payu_latam/base_plugin_spec.rb
|
299
|
+
- spec/payu_latam/remote/integration_spec.rb
|
300
|
+
- spec/spec_helper.rb
|