webpay 2.0.0
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/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +46 -0
- data/Rakefile +1 -0
- data/lib/data/ca-certificates.crt +3829 -0
- data/lib/webpay.rb +66 -0
- data/lib/webpay/account.rb +20 -0
- data/lib/webpay/card.rb +13 -0
- data/lib/webpay/charge.rb +33 -0
- data/lib/webpay/client.rb +62 -0
- data/lib/webpay/customer.rb +70 -0
- data/lib/webpay/entity.rb +63 -0
- data/lib/webpay/entity_list.rb +25 -0
- data/lib/webpay/event.rb +19 -0
- data/lib/webpay/operations.rb +49 -0
- data/lib/webpay/response_converter.rb +45 -0
- data/lib/webpay/token.rb +13 -0
- data/lib/webpay/version.rb +5 -0
- data/lib/webpay/webpay_error.rb +120 -0
- data/webpay.gemspec +27 -0
- metadata +149 -0
data/lib/webpay/token.rb
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
module WebPay
|
|
2
|
+
|
|
3
|
+
# Object for API response hash object with <code>hash['object'] = token</code>
|
|
4
|
+
class Token < Entity
|
|
5
|
+
install_class_operations :create, :retrieve
|
|
6
|
+
|
|
7
|
+
# @return [String] Relative path to API root
|
|
8
|
+
# @api private
|
|
9
|
+
def self.path
|
|
10
|
+
'/tokens'
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
module WebPay
|
|
2
|
+
|
|
3
|
+
# Abstract error class for WebPay errors.
|
|
4
|
+
# All WebPay error classes inherit this.
|
|
5
|
+
# This error itself is not raised.
|
|
6
|
+
class WebPayError < StandardError
|
|
7
|
+
# @api private
|
|
8
|
+
# @return [WebPayError]
|
|
9
|
+
def self.from_response(status, body)
|
|
10
|
+
hash = JSON.load(body)
|
|
11
|
+
unless hash['error']
|
|
12
|
+
return APIConnectionError.new("Invalid response #{body}")
|
|
13
|
+
end
|
|
14
|
+
error_hash = hash['error']
|
|
15
|
+
case status
|
|
16
|
+
when 400, 404
|
|
17
|
+
InvalidRequestError.new(status, error_hash)
|
|
18
|
+
when 401
|
|
19
|
+
AuthenticationError.new(status, error_hash)
|
|
20
|
+
when 402
|
|
21
|
+
CardError.new(status, error_hash)
|
|
22
|
+
else
|
|
23
|
+
APIError.new(status, error_hash)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# @return [Integer, nil] HTTP status code
|
|
28
|
+
attr_reader :status
|
|
29
|
+
|
|
30
|
+
# @return [Hash, nil] Responded error object
|
|
31
|
+
attr_reader :error_response
|
|
32
|
+
|
|
33
|
+
def initialize(message, status = nil, error_response = nil)
|
|
34
|
+
@status, @error_response = status, error_response
|
|
35
|
+
super(message)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# This error is raised when API request fails.
|
|
40
|
+
class APIConnectionError < WebPayError
|
|
41
|
+
# @api private
|
|
42
|
+
# @return [APIConnectionError]
|
|
43
|
+
def self.faraday_error(e)
|
|
44
|
+
new("Connection with WebPay API server failed. #{e.message}", e)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# @return [Error] The original error raised in request
|
|
48
|
+
attr_reader :original_error
|
|
49
|
+
|
|
50
|
+
def initialize(message, original_error)
|
|
51
|
+
@original_error = original_error
|
|
52
|
+
super(message)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# This error means WebPay service reported internal server error.
|
|
57
|
+
class APIError < WebPayError
|
|
58
|
+
|
|
59
|
+
# @return [String] 'api_error' or 'processing_error'
|
|
60
|
+
attr_reader :type
|
|
61
|
+
|
|
62
|
+
def initialize(status, error_response)
|
|
63
|
+
@type = error_response['type']
|
|
64
|
+
super(error_response['message'], status, error_response)
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# Occurs when api_key is invalid.
|
|
69
|
+
# Check again that a correct api_key is set
|
|
70
|
+
class AuthenticationError < WebPayError
|
|
71
|
+
def initialize(status, error_response)
|
|
72
|
+
super(error_response['message'], status, error_response)
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
# Occurs when card information is invalid
|
|
77
|
+
class CardError < WebPayError
|
|
78
|
+
|
|
79
|
+
# @return [String] 'card_error'
|
|
80
|
+
attr_reader :type
|
|
81
|
+
|
|
82
|
+
# @return [String] Error code
|
|
83
|
+
attr_reader :code
|
|
84
|
+
|
|
85
|
+
# @return [String] The field where an error is detected
|
|
86
|
+
attr_reader :param
|
|
87
|
+
|
|
88
|
+
def initialize(status, error_response)
|
|
89
|
+
@type = error_response['type']
|
|
90
|
+
@code = error_response['code']
|
|
91
|
+
@param = error_response['param']
|
|
92
|
+
super(error_response['message'], status, error_response)
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
# Occurs when the specified entity is not found, or request parameters are
|
|
97
|
+
# invalid
|
|
98
|
+
class InvalidRequestError < WebPayError
|
|
99
|
+
|
|
100
|
+
# @return [String] 'invalid_request_error'
|
|
101
|
+
attr_reader :type
|
|
102
|
+
|
|
103
|
+
# @return [String] The field where an error is detected
|
|
104
|
+
attr_reader :param
|
|
105
|
+
|
|
106
|
+
def initialize(status, error_response)
|
|
107
|
+
@type = error_response['type']
|
|
108
|
+
@param = error_response['param']
|
|
109
|
+
super(error_response['message'], status, error_response)
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
# Internal
|
|
113
|
+
def self.invalid_id(id)
|
|
114
|
+
InvalidRequestError.new(nil, {
|
|
115
|
+
'type' => 'invalid_request_error',
|
|
116
|
+
'message' => "ID must not be empty",
|
|
117
|
+
'param' => 'id' })
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end
|
data/webpay.gemspec
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require 'webpay/version'
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |spec|
|
|
7
|
+
spec.name = 'webpay'
|
|
8
|
+
spec.version = WebPay::VERSION
|
|
9
|
+
spec.authors = ['webpay', 'tomykaira']
|
|
10
|
+
spec.email = ['administrators@webpay.jp', 'tomykaira@gmail.com']
|
|
11
|
+
spec.description = 'WebPay is payment gateway service in Japan. see also https://webpay.jp/'
|
|
12
|
+
spec.summary = 'Ruby bindings of WebPay API'
|
|
13
|
+
spec.homepage = 'https://webpay.jp'
|
|
14
|
+
spec.license = 'MIT'
|
|
15
|
+
|
|
16
|
+
spec.files = `git ls-files`.split($/)
|
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
19
|
+
spec.require_paths = ['lib']
|
|
20
|
+
|
|
21
|
+
spec.add_dependency 'faraday', '~> 0.8.7'
|
|
22
|
+
|
|
23
|
+
spec.add_development_dependency 'bundler', '~> 1.3'
|
|
24
|
+
spec.add_development_dependency 'rake'
|
|
25
|
+
spec.add_development_dependency 'yard', '~> 0.8.6.2'
|
|
26
|
+
spec.add_development_dependency 'redcarpet', '~> 3.0.0'
|
|
27
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: webpay
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 2.0.0
|
|
5
|
+
prerelease:
|
|
6
|
+
platform: ruby
|
|
7
|
+
authors:
|
|
8
|
+
- webpay
|
|
9
|
+
- tomykaira
|
|
10
|
+
autorequire:
|
|
11
|
+
bindir: bin
|
|
12
|
+
cert_chain: []
|
|
13
|
+
date: 2013-07-16 00:00:00.000000000 Z
|
|
14
|
+
dependencies:
|
|
15
|
+
- !ruby/object:Gem::Dependency
|
|
16
|
+
name: faraday
|
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
|
18
|
+
none: false
|
|
19
|
+
requirements:
|
|
20
|
+
- - ~>
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: 0.8.7
|
|
23
|
+
type: :runtime
|
|
24
|
+
prerelease: false
|
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
26
|
+
none: false
|
|
27
|
+
requirements:
|
|
28
|
+
- - ~>
|
|
29
|
+
- !ruby/object:Gem::Version
|
|
30
|
+
version: 0.8.7
|
|
31
|
+
- !ruby/object:Gem::Dependency
|
|
32
|
+
name: bundler
|
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
|
34
|
+
none: false
|
|
35
|
+
requirements:
|
|
36
|
+
- - ~>
|
|
37
|
+
- !ruby/object:Gem::Version
|
|
38
|
+
version: '1.3'
|
|
39
|
+
type: :development
|
|
40
|
+
prerelease: false
|
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
42
|
+
none: false
|
|
43
|
+
requirements:
|
|
44
|
+
- - ~>
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '1.3'
|
|
47
|
+
- !ruby/object:Gem::Dependency
|
|
48
|
+
name: rake
|
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
|
50
|
+
none: false
|
|
51
|
+
requirements:
|
|
52
|
+
- - ! '>='
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '0'
|
|
55
|
+
type: :development
|
|
56
|
+
prerelease: false
|
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
58
|
+
none: false
|
|
59
|
+
requirements:
|
|
60
|
+
- - ! '>='
|
|
61
|
+
- !ruby/object:Gem::Version
|
|
62
|
+
version: '0'
|
|
63
|
+
- !ruby/object:Gem::Dependency
|
|
64
|
+
name: yard
|
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
|
66
|
+
none: false
|
|
67
|
+
requirements:
|
|
68
|
+
- - ~>
|
|
69
|
+
- !ruby/object:Gem::Version
|
|
70
|
+
version: 0.8.6.2
|
|
71
|
+
type: :development
|
|
72
|
+
prerelease: false
|
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
74
|
+
none: false
|
|
75
|
+
requirements:
|
|
76
|
+
- - ~>
|
|
77
|
+
- !ruby/object:Gem::Version
|
|
78
|
+
version: 0.8.6.2
|
|
79
|
+
- !ruby/object:Gem::Dependency
|
|
80
|
+
name: redcarpet
|
|
81
|
+
requirement: !ruby/object:Gem::Requirement
|
|
82
|
+
none: false
|
|
83
|
+
requirements:
|
|
84
|
+
- - ~>
|
|
85
|
+
- !ruby/object:Gem::Version
|
|
86
|
+
version: 3.0.0
|
|
87
|
+
type: :development
|
|
88
|
+
prerelease: false
|
|
89
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
90
|
+
none: false
|
|
91
|
+
requirements:
|
|
92
|
+
- - ~>
|
|
93
|
+
- !ruby/object:Gem::Version
|
|
94
|
+
version: 3.0.0
|
|
95
|
+
description: WebPay is payment gateway service in Japan. see also https://webpay.jp/
|
|
96
|
+
email:
|
|
97
|
+
- administrators@webpay.jp
|
|
98
|
+
- tomykaira@gmail.com
|
|
99
|
+
executables: []
|
|
100
|
+
extensions: []
|
|
101
|
+
extra_rdoc_files: []
|
|
102
|
+
files:
|
|
103
|
+
- .gitignore
|
|
104
|
+
- Gemfile
|
|
105
|
+
- LICENSE.txt
|
|
106
|
+
- README.md
|
|
107
|
+
- Rakefile
|
|
108
|
+
- lib/data/ca-certificates.crt
|
|
109
|
+
- lib/webpay.rb
|
|
110
|
+
- lib/webpay/account.rb
|
|
111
|
+
- lib/webpay/card.rb
|
|
112
|
+
- lib/webpay/charge.rb
|
|
113
|
+
- lib/webpay/client.rb
|
|
114
|
+
- lib/webpay/customer.rb
|
|
115
|
+
- lib/webpay/entity.rb
|
|
116
|
+
- lib/webpay/entity_list.rb
|
|
117
|
+
- lib/webpay/event.rb
|
|
118
|
+
- lib/webpay/operations.rb
|
|
119
|
+
- lib/webpay/response_converter.rb
|
|
120
|
+
- lib/webpay/token.rb
|
|
121
|
+
- lib/webpay/version.rb
|
|
122
|
+
- lib/webpay/webpay_error.rb
|
|
123
|
+
- webpay.gemspec
|
|
124
|
+
homepage: https://webpay.jp
|
|
125
|
+
licenses:
|
|
126
|
+
- MIT
|
|
127
|
+
post_install_message:
|
|
128
|
+
rdoc_options: []
|
|
129
|
+
require_paths:
|
|
130
|
+
- lib
|
|
131
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
132
|
+
none: false
|
|
133
|
+
requirements:
|
|
134
|
+
- - ! '>='
|
|
135
|
+
- !ruby/object:Gem::Version
|
|
136
|
+
version: '0'
|
|
137
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
138
|
+
none: false
|
|
139
|
+
requirements:
|
|
140
|
+
- - ! '>='
|
|
141
|
+
- !ruby/object:Gem::Version
|
|
142
|
+
version: '0'
|
|
143
|
+
requirements: []
|
|
144
|
+
rubyforge_project:
|
|
145
|
+
rubygems_version: 1.8.23
|
|
146
|
+
signing_key:
|
|
147
|
+
specification_version: 3
|
|
148
|
+
summary: Ruby bindings of WebPay API
|
|
149
|
+
test_files: []
|