payoneer_api 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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 186608abc85884aea5d12fb594a9e9581ce6fde6
4
+ data.tar.gz: 3f83e3d00cd6ebfe32759ffb7f95eaa228ec802c
5
+ SHA512:
6
+ metadata.gz: 5a000acb2128f7bd5ea79f6a84e409930b35955688bef4e1c01252b801c25c42ae652c51fa08d8e17465b8c49581e98e1b1f7bcee8c22b0eb2e13d0c37907435
7
+ data.tar.gz: fb2456ececf88ad71a6d93b7615b8a01cef0d662462b31f68eb954a4b35cea6bde386c2e83ffd48b3ff5472c1d4d2f5d417591239266abec5abf5a95b7d87443
data/README.md ADDED
@@ -0,0 +1,9 @@
1
+ # Payoneer API Ruby Client
2
+
3
+ [gem]: https://rubygems.org/gems/payoneer_api
4
+
5
+ A Ruby interface to the Payoneer API.
6
+
7
+ ## Installation
8
+ gem install payoneer_api
9
+
@@ -0,0 +1,143 @@
1
+ module PayoneerApi
2
+ class Client
3
+ SANDBOX_API_URL = 'https://api.sandbox.payoneer.com/Payouts/HttpApi/API.aspx?'
4
+ PRODUCTION_API_URL = 'https://api.payoneer.com/payouts/HttpAPI/API.aspx?'
5
+ API_PORT = '443'
6
+
7
+ def self.new_payee_link(partner_id, username, password, member_name)
8
+ new(partner_id, username, password).payee_signup_url(member_name)
9
+ end
10
+
11
+ def initialize(options = {})
12
+ @partner_id, @username, @password = options[:partner_id], options[:username], options[:password]
13
+ @environment = options[:environment]
14
+ if @environment.nil? && defined?(Rails)
15
+ Rails.env.production? ? 'production' : 'sandbox'
16
+ end
17
+ @environment ||= 'sandbox'
18
+ end
19
+
20
+ def payee_signup_url(member_name)
21
+ response = get_api_call(payee_link_args(payee_id: member_name))
22
+ api_result(response)
23
+ end
24
+
25
+ def payee_prefilled_signup_url(member_name, attributes = {})
26
+ response = post_api_call(payee_prefill_args(attributes.merge(payee_id: member_name)))
27
+ xml_api_result(response)
28
+ end
29
+
30
+ private
31
+
32
+ def api_result(response)
33
+ if response.code == '200'
34
+ return response.body
35
+ else
36
+ raise PayoneerException, api_error_description(response)
37
+ end
38
+ end
39
+
40
+ def xml_api_result(response)
41
+ if response.code == '200'
42
+ result = Nokogiri::XML.parse(response.body)
43
+ token = result.css('PayoneerToken Token').first
44
+ return token.text if token
45
+ end
46
+ raise PayoneerException, api_error_description(response)
47
+ end
48
+
49
+ def api_error_description(response)
50
+ return nil unless response and response.body
51
+ body_hash = Nokogiri::XML.parse(response.body)
52
+ if body_hash['PayoneerResponse']
53
+ return body_hash['PayoneerResponse']['Description']
54
+ else
55
+ return body_hash.to_s
56
+ end
57
+ end
58
+
59
+ def get_api_call(args_hash)
60
+ uri = URI.parse(api_url)
61
+ uri.query = URI.encode_www_form(args_hash)
62
+ http = Net::HTTP.new(uri.host, uri.port)
63
+ http.use_ssl = true
64
+
65
+ request = Net::HTTP::Get.new(uri.request_uri)
66
+ http.request(request)
67
+ end
68
+
69
+ def post_api_call(args_hash)
70
+ uri = URI.parse(api_url)
71
+ http = Net::HTTP.new(uri.host, uri.port)
72
+ http.use_ssl = true
73
+
74
+ request = Net::HTTP::Post.new(uri.request_uri)
75
+ request.set_form_data(args_hash)
76
+ http.request(request)
77
+ end
78
+
79
+ def payee_link_args(args)
80
+ {
81
+ mname: 'GetToken',
82
+ p1: @username,
83
+ p2: @password,
84
+ p3: @partner_id,
85
+ p4: args[:payee_id],
86
+ p5: args[:session_id],
87
+ }.delete_if { |_, value| value.nil? || value.empty? }
88
+ end
89
+
90
+ def payee_prefill_args(args)
91
+ {
92
+ mname: 'GetTokenXML',
93
+ p1: @username,
94
+ p2: @password,
95
+ p3: @partner_id,
96
+ p4: args[:payee_id],
97
+ xml: prefill_xml_data(args)
98
+ }
99
+ end
100
+
101
+ def prefill_xml_data(args)
102
+ builder = Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
103
+ xml.PayoneerDetails do
104
+ xml.Details do
105
+ xml.userName @username
106
+ xml.password @password
107
+ xml.prid @partner_id
108
+ xml.apuid args[:payee_id]
109
+ xml.sessionid args[:session_id] if args[:session_id]
110
+ xml.redirect args[:redirect_url] if args[:redirect_url]
111
+ xml.redirectTime args[:redirect_time] if args[:redirect_time]
112
+ xml.cardType args[:card_type] if args[:card_type]
113
+ xml.BlockType args[:block_type] if args[:block_type]
114
+ xml.PayoutMethodList (args[:payout_methods].is_a?(Array) ?
115
+ args[:payout_methods].join(',') :
116
+ args[:payout_methods]) if args[:payout_methods]
117
+ xml.regMode args[:registration_mode] if args[:registration_mode]
118
+ xml.holdApproval args[:hold_approval] if args[:hold_approval]
119
+ end
120
+ xml.PersonalDetails do
121
+ xml.firstName args[:first_name] if args[:first_name]
122
+ xml.lastName args[:last_name] if args[:last_name]
123
+ xml.dateOfBirth args[:date_of_birth] if args[:date_of_birth]
124
+ xml.address1 args[:address].is_a?(Array) ? args[:address].first : args[:address]
125
+ xml.address2 args[:address].last if args[:address].is_a?(Array)
126
+ xml.city args[:city] if args[:city]
127
+ xml.country args[:country_code] if args[:country_code]
128
+ xml.state args[:state_code] if args[:state_code]
129
+ xml.zipCode args[:zip_code] if args[:zip_code]
130
+ xml.mobile args[:mobile_phone] if args[:mobile_phone]
131
+ xml.phone args[:phone] if args[:phone]
132
+ xml.email args[:email] if args[:email]
133
+ end
134
+ end
135
+ end
136
+ builder.to_xml#.tap { |x| puts x.inspect }
137
+ end
138
+
139
+ def api_url
140
+ @environment.to_s == 'production' ? PRODUCTION_API_URL : SANDBOX_API_URL
141
+ end
142
+ end
143
+ end
@@ -0,0 +1,3 @@
1
+ module PayoneerApi
2
+ class PayoneerException < Exception; end
3
+ end
@@ -0,0 +1,15 @@
1
+ module PayoneerApi
2
+ class Version
3
+ MAJOR = 0
4
+ MINOR = 0
5
+ PATCH = 1
6
+ PRE = nil
7
+
8
+ class << self
9
+ # @return [String]
10
+ def to_s
11
+ [MAJOR, MINOR, PATCH, PRE].compact.join('.')
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,4 @@
1
+ require 'net/http'
2
+ require 'net/https'
3
+ require 'payoneer_api/payoneer_exception'
4
+ require 'payoneer_api/client'
@@ -0,0 +1,29 @@
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'payoneer_api/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'payoneer_api'
7
+ spec.version = PayoneerApi::Version
8
+ spec.date = '2014-05-02'
9
+ spec.description = %q(Ruby wrapper for Payoneer API)
10
+ spec.summary = spec.description
11
+ spec.authors = ['Donald Piret']
12
+ spec.email = %w[donald@donaldpiret.com]
13
+ spec.files = %w[README.md payoneer_api.gemspec]
14
+ spec.files += Dir.glob('lib/**/*.rb')
15
+ spec.files += Dir.glob('spec/**/*')
16
+ spec.licenses = %w[MIT]
17
+ spec.require_paths = %w[lib]
18
+ spec.required_rubygems_version = '>= 1.3.5'
19
+ spec.test_files = Dir.glob('spec/**/*')
20
+ spec.homepage = 'https://github.com/donaldpiret/payoneer_api'
21
+
22
+ spec.add_dependency 'nokogiri', '~> 1.5'
23
+
24
+ spec.add_development_dependency 'rspec', '~> 2.14'
25
+ spec.add_development_dependency 'vcr', '~> 2.9'
26
+ spec.add_development_dependency 'webmock', '~> 1.17'
27
+ spec.add_development_dependency 'dotenv', '~> 0.11'
28
+ spec.add_development_dependency 'byebug', '~> 3.1'
29
+ end
@@ -0,0 +1,51 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.sandbox.payoneer.com/Payouts/HttpApi/API.aspx
6
+ body:
7
+ encoding: US-ASCII
8
+ string: mname=GetTokenXML&p1=Room5620&p2=12Gauh3uSe&p3=100035620&p4=1&xml=%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E%0A%3CPayoneerDetails%3E%0A++%3CDetails%3E%0A++++%3CuserName%3ERoom5620%3C%2FuserName%3E%0A++++%3Cpassword%3E12Gauh3uSe%3C%2Fpassword%3E%0A++++%3Cprid%3E100035620%3C%2Fprid%3E%0A++++%3Capuid%3E1%3C%2Fapuid%3E%0A++++%3Credirect%3Ehttp%3A%2F%2Ftest.com%2Fredirect%3C%2Fredirect%3E%0A++++%3CredirectTime%3E10%3C%2FredirectTime%3E%0A++++%3CPayoutMethodList%3EPrepaidCard%3C%2FPayoutMethodList%3E%0A++%3C%2FDetails%3E%0A++%3CPersonalDetails%3E%0A++++%3CfirstName%3EDonald%3C%2FfirstName%3E%0A++++%3ClastName%3EPiret%3C%2FlastName%3E%0A++++%3CdateOfBirth%3E1984-04-01%3C%2FdateOfBirth%3E%0A++++%3Caddress1%3E115+Amoy+street%3C%2Faddress1%3E%0A++++%3Ccity%3ESingapore%3C%2Fcity%3E%0A++++%3CzipCode%3E069935%3C%2FzipCode%3E%0A++++%3Cphone%3E%2B123456789%3C%2Fphone%3E%0A++++%3Cemail%3Edonald%40roomorama.com%3C%2Femail%3E%0A++%3C%2FPersonalDetails%3E%0A%3C%2FPayoneerDetails%3E%0A
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - '*/*'
14
+ User-Agent:
15
+ - Ruby
16
+ Content-Type:
17
+ - application/x-www-form-urlencoded
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Cache-Control:
24
+ - no-cache, no-store, must-revalidate
25
+ Pragma:
26
+ - no-cache
27
+ Content-Type:
28
+ - text/html; charset=utf-8
29
+ Expires:
30
+ - '-1'
31
+ Set-Cookie:
32
+ - ASP.NET_SessionId=o3lj0gw4e5owdto2rblf4xkw; domain=.sandbox.payoneer.com;
33
+ path=/; secure; HttpOnly
34
+ - pid=100035620; domain=.sandbox.payoneer.com; expires=Fri, 01-May-2015 03:32:26
35
+ GMT; path=/; secure
36
+ P3p:
37
+ - CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
38
+ X-Powered-By:
39
+ - ASP.NET
40
+ Date:
41
+ - Fri, 02 May 2014 03:32:27 GMT
42
+ Content-Length:
43
+ - '185'
44
+ Connection:
45
+ - Keep-Alive
46
+ body:
47
+ encoding: UTF-8
48
+ string: <?xml version="1.0" encoding="UTF-8"?><PayoneerToken><Token>http://payouts.sandbox.payoneer.com/partners/lp.aspx?token=b8e8eab41931475cb4b66b54996a7cb1A9A9579049</Token></PayoneerToken>
49
+ http_version:
50
+ recorded_at: Fri, 02 May 2014 03:32:26 GMT
51
+ recorded_with: VCR 2.9.0
@@ -0,0 +1,51 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.sandbox.payoneer.com/Payouts/HttpApi/API.aspx
6
+ body:
7
+ encoding: US-ASCII
8
+ string: mname=GetTokenXML&p1=Room5620&p2=12Gauh3uSe&p3=100035620&p4=1&xml=%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E%0A%3CPayoneerDetails%3E%0A++%3CDetails%3E%0A++++%3CuserName%3ERoom5620%3C%2FuserName%3E%0A++++%3Cpassword%3E12Gauh3uSe%3C%2Fpassword%3E%0A++++%3Cprid%3E100035620%3C%2Fprid%3E%0A++++%3Capuid%3E1%3C%2Fapuid%3E%0A++++%3Credirect%3Ehttp%3A%2F%2Ftest.com%2Fredirect%3C%2Fredirect%3E%0A++++%3CredirectTime%3E10%3C%2FredirectTime%3E%0A++++%3CPayoutMethodList%3EPrepaidCard%3C%2FPayoutMethodList%3E%0A++%3C%2FDetails%3E%0A++%3CPersonalDetails%3E%0A++++%3CfirstName%3EDonald%3C%2FfirstName%3E%0A++++%3ClastName%3EPiret%3C%2FlastName%3E%0A++++%3CdateOfBirth%3E1984-04-01%3C%2FdateOfBirth%3E%0A++++%3Caddress1%3E115+Amoy+street%3C%2Faddress1%3E%0A++++%3Ccity%3ESingapore%3C%2Fcity%3E%0A++++%3CzipCode%3E069935%3C%2FzipCode%3E%0A++++%3Cphone%3E%2B123456789%3C%2Fphone%3E%0A++++%3Cemail%3Edonald%40roomorama.com%3C%2Femail%3E%0A++%3C%2FPersonalDetails%3E%0A%3C%2FPayoneerDetails%3E%0A
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - '*/*'
14
+ User-Agent:
15
+ - Ruby
16
+ Content-Type:
17
+ - application/x-www-form-urlencoded
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Cache-Control:
24
+ - no-cache, no-store, must-revalidate
25
+ Pragma:
26
+ - no-cache
27
+ Content-Type:
28
+ - text/html; charset=utf-8
29
+ Expires:
30
+ - '-1'
31
+ Set-Cookie:
32
+ - ASP.NET_SessionId=ggmjf5i3ls0zaaghaxt1kk5w; domain=.sandbox.payoneer.com;
33
+ path=/; secure; HttpOnly
34
+ - pid=100035620; domain=.sandbox.payoneer.com; expires=Fri, 01-May-2015 03:10:21
35
+ GMT; path=/; secure
36
+ P3p:
37
+ - CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
38
+ X-Powered-By:
39
+ - ASP.NET
40
+ Date:
41
+ - Fri, 02 May 2014 03:10:21 GMT
42
+ Content-Length:
43
+ - '185'
44
+ Connection:
45
+ - Keep-Alive
46
+ body:
47
+ encoding: UTF-8
48
+ string: <?xml version="1.0" encoding="UTF-8"?><PayoneerToken><Token>http://payouts.sandbox.payoneer.com/partners/lp.aspx?token=b8e8eab41931475cb4b66b54996a7cb1A9A9579049</Token></PayoneerToken>
49
+ http_version:
50
+ recorded_at: Fri, 02 May 2014 03:10:21 GMT
51
+ recorded_with: VCR 2.9.0
@@ -0,0 +1,49 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.sandbox.payoneer.com/Payouts/HttpApi/API.aspx?mname=GetToken&p1=Room5620&p2=12Gauh3uSe&p3=100035620&p4=1
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - '*/*'
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Cache-Control:
22
+ - no-cache, no-store, must-revalidate
23
+ Pragma:
24
+ - no-cache
25
+ Content-Type:
26
+ - text/html; charset=utf-8
27
+ Expires:
28
+ - '-1'
29
+ Set-Cookie:
30
+ - ASP.NET_SessionId=0ismdumpgdhxsjd1lj3hiuk5; domain=.sandbox.payoneer.com;
31
+ path=/; secure; HttpOnly
32
+ - pid=100035620; domain=.sandbox.payoneer.com; expires=Fri, 01-May-2015 03:29:35
33
+ GMT; path=/; secure
34
+ P3p:
35
+ - CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
36
+ X-Powered-By:
37
+ - ASP.NET
38
+ Date:
39
+ - Fri, 02 May 2014 03:29:35 GMT
40
+ Content-Length:
41
+ - '101'
42
+ Connection:
43
+ - Keep-Alive
44
+ body:
45
+ encoding: UTF-8
46
+ string: http://payouts.sandbox.payoneer.com/partners/lp.aspx?token=b8e8eab41931475cb4b66b54996a7cb1A9A9579049
47
+ http_version:
48
+ recorded_at: Fri, 02 May 2014 03:29:35 GMT
49
+ recorded_with: VCR 2.9.0
@@ -0,0 +1,47 @@
1
+ require 'spec_helper'
2
+ describe PayoneerApi::Client do
3
+ let(:client) {
4
+ PayoneerApi::Client.new(
5
+ partner_id: ENV['PAYONEER_ID'],
6
+ username: ENV['PAYONEER_USERNAME'],
7
+ password: ENV['PAYONEER_PASSWORD'],
8
+ environment: 'sandbox'
9
+ )
10
+ }
11
+
12
+ describe '#payee_signup_url', vcr: true do
13
+ it 'returns a url to the registration page' do
14
+ response = client.payee_signup_url('1')
15
+ expect(URI.parse(response).host).to eq('payouts.sandbox.payoneer.com')
16
+ end
17
+ end
18
+
19
+ describe '#payee_prefilled_signup_url', vcr: true do
20
+ context 'with all correct params passed in' do
21
+ let(:params) {{
22
+ redirect_url: 'http://test.com/redirect',
23
+ redirect_time: 10,
24
+ payout_methods: 'PrepaidCard',
25
+ first_name: 'Donald',
26
+ last_name: 'Piret',
27
+ date_of_birth: Date.parse('1984-04-01'),
28
+ address: '115 Amoy street',
29
+ city: 'Singapore',
30
+ county_code: 'SG',
31
+ zip_code: '069935',
32
+ phone: '+123456789',
33
+ email: 'donald@roomorama.com'
34
+ }}
35
+
36
+ it 'returns a url to the prefilled registration page' do
37
+ response = client.payee_prefilled_signup_url('1', params)
38
+ expect(URI.parse(response).host).to eq('payouts.sandbox.payoneer.com')
39
+ end
40
+
41
+ it 'includes a token parameter in this url' do
42
+ response = client.payee_prefilled_signup_url('1', params)
43
+ expect(CGI.parse(URI.parse(response).query)).to have_key('token')
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,20 @@
1
+ require 'bundler/setup'
2
+ Bundler.setup
3
+
4
+ require 'payoneer_api'
5
+ require 'vcr'
6
+ require 'webmock'
7
+ require 'nokogiri'
8
+ require 'byebug'
9
+ require 'dotenv'
10
+ Dotenv.load
11
+
12
+ RSpec.configure do |c|
13
+ c.treat_symbols_as_metadata_keys_with_true_values = true
14
+ end
15
+
16
+ VCR.configure do |c|
17
+ c.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
18
+ c.hook_into :webmock
19
+ c.configure_rspec_metadata!
20
+ end
metadata ADDED
@@ -0,0 +1,144 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: payoneer_api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Donald Piret
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-05-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: nokogiri
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.5'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.5'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '2.14'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '2.14'
41
+ - !ruby/object:Gem::Dependency
42
+ name: vcr
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '2.9'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '2.9'
55
+ - !ruby/object:Gem::Dependency
56
+ name: webmock
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '1.17'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '1.17'
69
+ - !ruby/object:Gem::Dependency
70
+ name: dotenv
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: '0.11'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '0.11'
83
+ - !ruby/object:Gem::Dependency
84
+ name: byebug
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: '3.1'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: '3.1'
97
+ description: Ruby wrapper for Payoneer API
98
+ email:
99
+ - donald@donaldpiret.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - README.md
105
+ - lib/payoneer_api.rb
106
+ - lib/payoneer_api/client.rb
107
+ - lib/payoneer_api/payoneer_exception.rb
108
+ - lib/payoneer_api/version.rb
109
+ - payoneer_api.gemspec
110
+ - spec/fixtures/vcr_cassettes/PayoneerApi_Client/_payee_prefilled_signup_url/with_all_correct_params_passed_in/includes_a_token_parameter_in_this_url.yml
111
+ - spec/fixtures/vcr_cassettes/PayoneerApi_Client/_payee_prefilled_signup_url/with_all_correct_params_passed_in/returns_a_url_to_the_prefilled_registration_page.yml
112
+ - spec/fixtures/vcr_cassettes/PayoneerApi_Client/_payee_signup_url/returns_a_url_to_the_registration_page.yml
113
+ - spec/payoneer_api/client_spec.rb
114
+ - spec/spec_helper.rb
115
+ homepage: https://github.com/donaldpiret/payoneer_api
116
+ licenses:
117
+ - MIT
118
+ metadata: {}
119
+ post_install_message:
120
+ rdoc_options: []
121
+ require_paths:
122
+ - lib
123
+ required_ruby_version: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - '>='
126
+ - !ruby/object:Gem::Version
127
+ version: '0'
128
+ required_rubygems_version: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - '>='
131
+ - !ruby/object:Gem::Version
132
+ version: 1.3.5
133
+ requirements: []
134
+ rubyforge_project:
135
+ rubygems_version: 2.2.2
136
+ signing_key:
137
+ specification_version: 4
138
+ summary: Ruby wrapper for Payoneer API
139
+ test_files:
140
+ - spec/fixtures/vcr_cassettes/PayoneerApi_Client/_payee_prefilled_signup_url/with_all_correct_params_passed_in/includes_a_token_parameter_in_this_url.yml
141
+ - spec/fixtures/vcr_cassettes/PayoneerApi_Client/_payee_prefilled_signup_url/with_all_correct_params_passed_in/returns_a_url_to_the_prefilled_registration_page.yml
142
+ - spec/fixtures/vcr_cassettes/PayoneerApi_Client/_payee_signup_url/returns_a_url_to_the_registration_page.yml
143
+ - spec/payoneer_api/client_spec.rb
144
+ - spec/spec_helper.rb