gmo 0.2.1 → 0.2.2
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/CHANGELOG.md +3 -0
- data/README.ja.md +6 -12
- data/README.md +2 -8
- data/fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_parameter_contains_Japanese_characters_should_correctly_handle_Japanese.yml +71 -0
- data/lib/gmo.rb +4 -1
- data/lib/gmo/http_services.rb +3 -1
- data/lib/gmo/version.rb +1 -1
- data/spec/gmo/shop_api_spec.rb +39 -0
- metadata +20 -19
data/CHANGELOG.md
CHANGED
data/README.ja.md
CHANGED
|
@@ -3,9 +3,9 @@ GMO
|
|
|
3
3
|
[](https://rubygems.org/gems/gmo)
|
|
4
4
|
[](https://travis-ci.org/t-k/gmo-payment-ruby)
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
RubyからGMOペイメント(PGマルチペイメントサービス)のAPIを扱うためのGemです。
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
インストール方法
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
Install GMO as a gem:
|
|
@@ -20,18 +20,12 @@ gem "gmo"
|
|
|
20
20
|
```
|
|
21
21
|
and run bundle install to install the dependency.
|
|
22
22
|
|
|
23
|
-
Overview
|
|
24
|
-
---
|
|
25
|
-
|
|
26
23
|
TODO
|
|
27
24
|
---
|
|
28
25
|
* add supported APIs
|
|
29
26
|
* improve docs
|
|
30
27
|
|
|
31
|
-
|
|
32
|
-
---
|
|
33
|
-
|
|
34
|
-
Usage
|
|
28
|
+
使い方
|
|
35
29
|
---
|
|
36
30
|
```ruby
|
|
37
31
|
require 'gmo'
|
|
@@ -45,8 +39,8 @@ option = {
|
|
|
45
39
|
}
|
|
46
40
|
result = gmo.entry_tran(option)
|
|
47
41
|
```
|
|
48
|
-
|
|
42
|
+
その他、詳細な使い方は<a href="https://github.com/t-k/gmo-payment-ruby/wiki/_pages">wiki</a>で説明しています。
|
|
49
43
|
|
|
50
|
-
|
|
44
|
+
Contributors
|
|
51
45
|
---
|
|
52
|
-
|
|
46
|
+
Patches contributed by [those people](https://github.com/t-k/gmo-payment-ruby/contributors).
|
data/README.md
CHANGED
|
@@ -20,17 +20,11 @@ gem "gmo"
|
|
|
20
20
|
```
|
|
21
21
|
and run bundle install to install the dependency.
|
|
22
22
|
|
|
23
|
-
Overview
|
|
24
|
-
---
|
|
25
|
-
|
|
26
23
|
TODO
|
|
27
24
|
---
|
|
28
25
|
* add supported APIs
|
|
29
26
|
* improve docs
|
|
30
27
|
|
|
31
|
-
Issues
|
|
32
|
-
---
|
|
33
|
-
|
|
34
28
|
Usage
|
|
35
29
|
---
|
|
36
30
|
```ruby
|
|
@@ -47,6 +41,6 @@ result = gmo.entry_tran(option)
|
|
|
47
41
|
```
|
|
48
42
|
More documentation available <a href="https://github.com/t-k/gmo-payment-ruby/wiki/_pages">on the wiki</a>.
|
|
49
43
|
|
|
50
|
-
|
|
44
|
+
Contributors
|
|
51
45
|
---
|
|
52
|
-
|
|
46
|
+
Patches contributed by [those people](https://github.com/t-k/gmo-payment-ruby/contributors).
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
http_interactions:
|
|
3
|
+
- request:
|
|
4
|
+
method: post
|
|
5
|
+
uri: https://<HOST>/payment/EntryTran.idPass
|
|
6
|
+
body:
|
|
7
|
+
encoding: UTF-8
|
|
8
|
+
string: OrderID=1366160239&JobCd=AUTH&Amount=100&ShopID=<SHOP_ID>&ShopPass=<SHOP_PASS>
|
|
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
|
+
Date:
|
|
22
|
+
- Wed, 17 Apr 2013 01:10:13 GMT
|
|
23
|
+
Connection:
|
|
24
|
+
- close
|
|
25
|
+
Content-Type:
|
|
26
|
+
- text/plain;charset=Windows-31J
|
|
27
|
+
Transfer-Encoding:
|
|
28
|
+
- chunked
|
|
29
|
+
body:
|
|
30
|
+
encoding: UTF-8
|
|
31
|
+
string: AccessID=68334b323b78058c0ecbbaa996b80ca1&AccessPass=8499e4c83fbd277577f6ce2d95e86868
|
|
32
|
+
http_version:
|
|
33
|
+
recorded_at: Wed, 17 Apr 2013 00:57:19 GMT
|
|
34
|
+
- request:
|
|
35
|
+
method: post
|
|
36
|
+
uri: https://<HOST>/payment/ExecTran.idPass
|
|
37
|
+
body:
|
|
38
|
+
encoding: UTF-8
|
|
39
|
+
string: OrderID=1366160239&AccessID=68334b323b78058c0ecbbaa996b80ca1&AccessPass=8499e4c83fbd277577f6ce2d95e86868&Method=1&PayTimes=1&CardNo=4111111111111111&Expire=1405&ClientField1=%81%60%81%7C%81%91%81%92%81%CA%81%7C%81a%87%40%82%D9%82%B0%82%D9%82%B0hogehoge&ClientFieldFlag=1&DeviceCategory=0&ShopID=<SHOP_ID>&ShopPass=<SHOP_PASS>
|
|
40
|
+
headers:
|
|
41
|
+
Accept-Encoding:
|
|
42
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
|
43
|
+
Accept:
|
|
44
|
+
- '*/*'
|
|
45
|
+
User-Agent:
|
|
46
|
+
- Ruby
|
|
47
|
+
response:
|
|
48
|
+
status:
|
|
49
|
+
code: 200
|
|
50
|
+
message: OK
|
|
51
|
+
headers:
|
|
52
|
+
Date:
|
|
53
|
+
- Wed, 17 Apr 2013 01:10:13 GMT
|
|
54
|
+
Connection:
|
|
55
|
+
- close
|
|
56
|
+
Content-Type:
|
|
57
|
+
- text/plain;charset=Windows-31J
|
|
58
|
+
Transfer-Encoding:
|
|
59
|
+
- chunked
|
|
60
|
+
body:
|
|
61
|
+
encoding: ASCII-8BIT
|
|
62
|
+
string: !binary |-
|
|
63
|
+
QUNTPTAmT3JkZXJJRD0xMzY2MTYwMjM5JkZvcndhcmQ9MmE5OTY2MiZNZXRo
|
|
64
|
+
b2Q9MSZQYXlUaW1lcz0mQXBwcm92ZT02NjgzMTg3JlRyYW5JRD0xMzA0MTcx
|
|
65
|
+
MDA3MTExMTExMTExMTExMTk2MjM4JlRyYW5EYXRlPTIwMTMwNDE3MTAxMDE0
|
|
66
|
+
JkNoZWNrU3RyaW5nPWRjODI2ZjFiMWJjNzFiZWRhMzgzNzRkNDRkMzdlMWQz
|
|
67
|
+
JkNsaWVudEZpZWxkMT2BYIF8gZGBkoHKgXyBYYdAgtmCsILZgrBob2dlaG9n
|
|
68
|
+
ZSZDbGllbnRGaWVsZDI9JkNsaWVudEZpZWxkMz0=
|
|
69
|
+
http_version:
|
|
70
|
+
recorded_at: Wed, 17 Apr 2013 00:57:20 GMT
|
|
71
|
+
recorded_with: VCR 2.4.0
|
data/lib/gmo.rb
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
require 'cgi'
|
|
2
2
|
require 'rack/utils'
|
|
3
3
|
require 'multi_json'
|
|
4
|
+
require 'nkf'
|
|
4
5
|
|
|
5
6
|
require "gmo/const"
|
|
6
7
|
require 'gmo/errors'
|
|
@@ -40,7 +41,9 @@ module GMO
|
|
|
40
41
|
raise GMO::Payment::ServerError.new(result.body, error_detail)
|
|
41
42
|
end
|
|
42
43
|
# Parse the body as Query string
|
|
43
|
-
|
|
44
|
+
response = Rack::Utils.parse_nested_query(result.body.to_s)
|
|
45
|
+
# converting to UTF-8
|
|
46
|
+
body = response = Hash[response.map { |k,v| [k, NKF.nkf('-w',v)] }]
|
|
44
47
|
# Check for errors if provided a error_checking_block
|
|
45
48
|
yield(body) if error_checking_block
|
|
46
49
|
# Return result
|
data/lib/gmo/http_services.rb
CHANGED
|
@@ -50,7 +50,9 @@ module GMO
|
|
|
50
50
|
def self.encode_params(param_hash)
|
|
51
51
|
((param_hash || {}).collect do |key_and_value|
|
|
52
52
|
key_and_value[1] = MultiJson.dump(key_and_value[1]) if key_and_value[1].class != String
|
|
53
|
-
|
|
53
|
+
# converting to Shift-JIS
|
|
54
|
+
sjis_value = NKF.nkf('-s', key_and_value[1])
|
|
55
|
+
"#{key_and_value[0].to_s}=#{CGI.escape sjis_value}"
|
|
54
56
|
end).join("&")
|
|
55
57
|
end
|
|
56
58
|
|
data/lib/gmo/version.rb
CHANGED
data/spec/gmo/shop_api_spec.rb
CHANGED
|
@@ -111,6 +111,45 @@ describe "GMO::Payment::ShopAPI" do
|
|
|
111
111
|
result = @service.exec_tran()
|
|
112
112
|
}.should raise_error("Required access_id, access_pass, order_id, card_no, expire were not provided.")
|
|
113
113
|
end
|
|
114
|
+
|
|
115
|
+
context "parameter contains Japanese characters" do
|
|
116
|
+
before { require "kconv" unless defined?(Kconv) }
|
|
117
|
+
|
|
118
|
+
it "should correctly handle Japanese", :vcr do
|
|
119
|
+
order_id = generate_id
|
|
120
|
+
client_field_1 = "〜−¢£¬−‖①ほげほげhogehoge"
|
|
121
|
+
result = @service.entry_tran({
|
|
122
|
+
:order_id => order_id,
|
|
123
|
+
:job_cd => "AUTH",
|
|
124
|
+
:amount => 100
|
|
125
|
+
})
|
|
126
|
+
access_id = result["AccessID"]
|
|
127
|
+
access_pass = result["AccessPass"]
|
|
128
|
+
result = @service.exec_tran({
|
|
129
|
+
:order_id => order_id,
|
|
130
|
+
:access_id => access_id,
|
|
131
|
+
:access_pass => access_pass,
|
|
132
|
+
:method => 1,
|
|
133
|
+
:pay_times => 1,
|
|
134
|
+
:card_no => "4111111111111111",
|
|
135
|
+
:expire => "1405",
|
|
136
|
+
:client_field_1 => client_field_1
|
|
137
|
+
})
|
|
138
|
+
result["ACS"].nil?.should_not be_true
|
|
139
|
+
result["OrderID"].nil?.should_not be_true
|
|
140
|
+
result["Forward"].nil?.should_not be_true
|
|
141
|
+
result["Method"].nil?.should_not be_true
|
|
142
|
+
result["PayTimes"].nil?.should_not be_true
|
|
143
|
+
result["Approve"].nil?.should_not be_true
|
|
144
|
+
result["TranID"].nil?.should_not be_true
|
|
145
|
+
result["TranDate"].nil?.should_not be_true
|
|
146
|
+
result["CheckString"].nil?.should_not be_true
|
|
147
|
+
result["ClientField1"].nil?.should_not be_true
|
|
148
|
+
(result["ClientField1"] == client_field_1).should be_true
|
|
149
|
+
(result["ClientField1"].encoding.to_s == "UTF-8").should be_true
|
|
150
|
+
result["ClientField3"].nil?.should_not be_true
|
|
151
|
+
end
|
|
152
|
+
end
|
|
114
153
|
end
|
|
115
154
|
|
|
116
155
|
describe "#exec_tran_cvs" do
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gmo
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.2
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,14 +9,14 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2013-04-
|
|
12
|
+
date: 2013-04-19 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rack
|
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
|
-
- - '>='
|
|
19
|
+
- - ! '>='
|
|
20
20
|
- !ruby/object:Gem::Version
|
|
21
21
|
version: '0'
|
|
22
22
|
type: :runtime
|
|
@@ -24,7 +24,7 @@ dependencies:
|
|
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
25
|
none: false
|
|
26
26
|
requirements:
|
|
27
|
-
- - '>='
|
|
27
|
+
- - ! '>='
|
|
28
28
|
- !ruby/object:Gem::Version
|
|
29
29
|
version: '0'
|
|
30
30
|
- !ruby/object:Gem::Dependency
|
|
@@ -32,7 +32,7 @@ dependencies:
|
|
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
|
33
33
|
none: false
|
|
34
34
|
requirements:
|
|
35
|
-
- - '>='
|
|
35
|
+
- - ! '>='
|
|
36
36
|
- !ruby/object:Gem::Version
|
|
37
37
|
version: '0'
|
|
38
38
|
type: :runtime
|
|
@@ -40,7 +40,7 @@ dependencies:
|
|
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
|
41
41
|
none: false
|
|
42
42
|
requirements:
|
|
43
|
-
- - '>='
|
|
43
|
+
- - ! '>='
|
|
44
44
|
- !ruby/object:Gem::Version
|
|
45
45
|
version: '0'
|
|
46
46
|
- !ruby/object:Gem::Dependency
|
|
@@ -48,7 +48,7 @@ dependencies:
|
|
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
|
49
49
|
none: false
|
|
50
50
|
requirements:
|
|
51
|
-
- - '>='
|
|
51
|
+
- - ! '>='
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
53
|
version: '0'
|
|
54
54
|
type: :development
|
|
@@ -56,7 +56,7 @@ dependencies:
|
|
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
57
|
none: false
|
|
58
58
|
requirements:
|
|
59
|
-
- - '>='
|
|
59
|
+
- - ! '>='
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
61
|
version: '0'
|
|
62
62
|
- !ruby/object:Gem::Dependency
|
|
@@ -64,7 +64,7 @@ dependencies:
|
|
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
|
65
65
|
none: false
|
|
66
66
|
requirements:
|
|
67
|
-
- - '>='
|
|
67
|
+
- - ! '>='
|
|
68
68
|
- !ruby/object:Gem::Version
|
|
69
69
|
version: '0'
|
|
70
70
|
type: :development
|
|
@@ -72,7 +72,7 @@ dependencies:
|
|
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
|
73
73
|
none: false
|
|
74
74
|
requirements:
|
|
75
|
-
- - '>='
|
|
75
|
+
- - ! '>='
|
|
76
76
|
- !ruby/object:Gem::Version
|
|
77
77
|
version: '0'
|
|
78
78
|
- !ruby/object:Gem::Dependency
|
|
@@ -80,7 +80,7 @@ dependencies:
|
|
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|
|
81
81
|
none: false
|
|
82
82
|
requirements:
|
|
83
|
-
- - '>='
|
|
83
|
+
- - ! '>='
|
|
84
84
|
- !ruby/object:Gem::Version
|
|
85
85
|
version: '0'
|
|
86
86
|
type: :development
|
|
@@ -88,7 +88,7 @@ dependencies:
|
|
|
88
88
|
version_requirements: !ruby/object:Gem::Requirement
|
|
89
89
|
none: false
|
|
90
90
|
requirements:
|
|
91
|
-
- - '>='
|
|
91
|
+
- - ! '>='
|
|
92
92
|
- !ruby/object:Gem::Version
|
|
93
93
|
version: '0'
|
|
94
94
|
- !ruby/object:Gem::Dependency
|
|
@@ -96,7 +96,7 @@ dependencies:
|
|
|
96
96
|
requirement: !ruby/object:Gem::Requirement
|
|
97
97
|
none: false
|
|
98
98
|
requirements:
|
|
99
|
-
- - '>='
|
|
99
|
+
- - ! '>='
|
|
100
100
|
- !ruby/object:Gem::Version
|
|
101
101
|
version: '0'
|
|
102
102
|
type: :development
|
|
@@ -104,7 +104,7 @@ dependencies:
|
|
|
104
104
|
version_requirements: !ruby/object:Gem::Requirement
|
|
105
105
|
none: false
|
|
106
106
|
requirements:
|
|
107
|
-
- - '>='
|
|
107
|
+
- - ! '>='
|
|
108
108
|
- !ruby/object:Gem::Version
|
|
109
109
|
version: '0'
|
|
110
110
|
description: Ruby client library for the GMO Payment Platform.
|
|
@@ -135,6 +135,7 @@ files:
|
|
|
135
135
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_cvs_gets_data_about_a_transaction.yml
|
|
136
136
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_gets_data_about_a_transaction.yml
|
|
137
137
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_got_error_if_missing_options.yml
|
|
138
|
+
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_parameter_contains_Japanese_characters_should_correctly_handle_Japanese.yml
|
|
138
139
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_search_trade_gets_data_about_order.yml
|
|
139
140
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_search_trade_got_error_if_missing_options.yml
|
|
140
141
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_search_trade_multi_gets_data_about_order.yml
|
|
@@ -183,26 +184,26 @@ require_paths:
|
|
|
183
184
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
184
185
|
none: false
|
|
185
186
|
requirements:
|
|
186
|
-
- - '>='
|
|
187
|
+
- - ! '>='
|
|
187
188
|
- !ruby/object:Gem::Version
|
|
188
189
|
version: '0'
|
|
189
190
|
segments:
|
|
190
191
|
- 0
|
|
191
|
-
hash:
|
|
192
|
+
hash: -4347558908987678094
|
|
192
193
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
193
194
|
none: false
|
|
194
195
|
requirements:
|
|
195
|
-
- - '>='
|
|
196
|
+
- - ! '>='
|
|
196
197
|
- !ruby/object:Gem::Version
|
|
197
198
|
version: '0'
|
|
198
199
|
segments:
|
|
199
200
|
- 0
|
|
200
|
-
hash:
|
|
201
|
+
hash: -4347558908987678094
|
|
201
202
|
requirements: []
|
|
202
203
|
rubyforge_project:
|
|
203
204
|
rubygems_version: 1.8.25
|
|
204
205
|
signing_key:
|
|
205
206
|
specification_version: 3
|
|
206
|
-
summary: 'GMO Payment API client: Ruby client library for the GMO Payment Platform.'
|
|
207
|
+
summary: ! 'GMO Payment API client: Ruby client library for the GMO Payment Platform.'
|
|
207
208
|
test_files: []
|
|
208
209
|
has_rdoc:
|