gmo 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -14,14 +14,14 @@ module GMO
14
14
 
15
15
  private
16
16
 
17
- def error_message(info)
18
- ::GMO::Const::API_ERROR_MESSAGES[:en][info] || info
17
+ def error_message(info, locale)
18
+ ::GMO::Const::API_ERROR_MESSAGES[locale][info] || info
19
19
  end
20
20
  end
21
21
 
22
22
  module Payment
23
23
  class Error < ::GMO::GMOError
24
- attr_accessor :error_info, :response_body
24
+ attr_accessor :error_info, :response_body, :locale, :error_messages
25
25
 
26
26
  def initialize(response_body = "", error_info = nil)
27
27
  if response_body && response_body.is_a?(String)
@@ -46,8 +46,9 @@ module GMO
46
46
  end
47
47
 
48
48
  class APIError < Error
49
- def initialize(error_info = {})
49
+ def initialize(error_info = {}, locale = ::GMO::Const::DEFAULT_LOCALE)
50
50
  self.error_info = error_info
51
+ self.locale = locale
51
52
  self.response_body = "ErrCode=#{error_info["ErrCode"]}&ErrInfo=#{error_info["ErrInfo"]}"
52
53
  set_error_messages
53
54
  message = self.response_body
@@ -57,10 +58,9 @@ module GMO
57
58
  private
58
59
 
59
60
  def set_error_messages
60
- error_messages = self.error_info['ErrInfo'].to_s.split(ERROR_INFO_SEPARATOR)
61
- .map { |e| error_message(e) || e }
62
- .join(ERROR_INFO_SEPARATOR)
63
- self.response_body += "&ErrMessage=#{error_messages}"
61
+ self.error_messages = self.error_info['ErrInfo'].to_s.split(ERROR_INFO_SEPARATOR)
62
+ .map { |e| error_message(e, locale) || e }
63
+ self.response_body += "&ErrMessage=#{self.error_messages.join(ERROR_INFO_SEPARATOR)}"
64
64
  end
65
65
  end
66
66
 
@@ -6,7 +6,8 @@
6
6
  # gmo = GMO::Payment::RemittanceAPI.new({
7
7
  # shop_id: "foo",
8
8
  # shop_pass: "bar",
9
- # host: "test-remittance.gmopg.jp"
9
+ # host: "test-remittance.gmopg.jp",
10
+ # locale: "ja"
10
11
  # })
11
12
  module GMO
12
13
  module Payment
@@ -17,11 +18,12 @@ module GMO
17
18
  @shop_id = options[:shop_id]
18
19
  @shop_pass = options[:shop_pass]
19
20
  @host = options[:host]
21
+ @locale = options.fetch(:locale, GMO::Const::DEFAULT_LOCALE)
20
22
  unless @shop_id && @shop_pass && @host
21
23
  raise ArgumentError, "Initialize must receive a hash with :shop_id, :shop_pass and either :host! (received #{options.inspect})"
22
24
  end
23
25
  end
24
- attr_reader :shop_id, :shop_pass, :host
26
+ attr_reader :shop_id, :shop_pass, :host, :locale
25
27
 
26
28
  #########
27
29
  # Method
@@ -318,7 +320,7 @@ module GMO
318
320
  args.merge!({ "Shop_ID" => @shop_id, "Shop_Pass" => @shop_pass })
319
321
  api(name, args, verb, options) do |response|
320
322
  if response.is_a?(Hash) && !response["ErrInfo"].nil?
321
- raise APIError.new(response)
323
+ raise APIError.new(response, locale)
322
324
  end
323
325
  end
324
326
  end
@@ -8,7 +8,8 @@
8
8
  # site_pass: "bar",
9
9
  # shop_id: "baz",
10
10
  # shop_pass: "bax",
11
- # host: "p01.mul-pay.jp"
11
+ # host: "p01.mul-pay.jp",
12
+ # locale: "ja"
12
13
  # })
13
14
  module GMO
14
15
  module Payment
@@ -20,11 +21,12 @@ module GMO
20
21
  @site_id = options[:site_id]
21
22
  @site_pass = options[:site_pass]
22
23
  @host = options[:host]
24
+ @locale = options.fetch(:locale, GMO::Const::DEFAULT_LOCALE)
23
25
  unless @site_id && @site_pass && @shop_id && @shop_pass && @host
24
26
  raise ArgumentError, "Initialize must receive a hash with :site_id, :site_pass, :shop_id, :shop_pass and either :host! (received #{options.inspect})"
25
27
  end
26
28
  end
27
- attr_reader :shop_id, :shop_pass, :site_id, :site_pass, :host
29
+ attr_reader :shop_id, :shop_pass, :site_id, :site_pass, :host, :locale
28
30
 
29
31
  # 2.17.2.1.決済後カード登録
30
32
  # 指定されたオーダーID の取引に使用したカードを登録します。
@@ -112,7 +114,7 @@ module GMO
112
114
  })
113
115
  api(name, args, verb, options) do |response|
114
116
  if response.is_a?(Hash) && !response["ErrInfo"].nil?
115
- raise APIError.new(response)
117
+ raise APIError.new(response, locale)
116
118
  end
117
119
  end
118
120
  end
@@ -6,7 +6,9 @@
6
6
  # gmo = GMO::Payment::ShopAPI.new({
7
7
  # shop_id: "foo",
8
8
  # shop_pass: "bar",
9
- # host: "mul-pay.com"
9
+ # host: "mul-pay.com",
10
+ # locale: "ja"
11
+
10
12
  # })
11
13
  # result = gmo.post_request("EntryTran.idPass", options)
12
14
  module GMO
@@ -18,11 +20,12 @@ module GMO
18
20
  @shop_id = options[:shop_id]
19
21
  @shop_pass = options[:shop_pass]
20
22
  @host = options[:host]
23
+ @locale = options.fetch(:locale, GMO::Const::DEFAULT_LOCALE)
21
24
  unless @shop_id && @shop_pass && @host
22
25
  raise ArgumentError, "Initialize must receive a hash with :shop_id, :shop_pass and either :host! (received #{options.inspect})"
23
26
  end
24
27
  end
25
- attr_reader :shop_id, :shop_pass, :host
28
+ attr_reader :shop_id, :shop_pass, :host, :locale
26
29
 
27
30
  ## 2.1.2.1.取引登録
28
31
  # これ以降の決済取引で必要となる取引 ID と取引パスワードの発行を行い、取引を開始します。
@@ -422,6 +425,16 @@ module GMO
422
425
  post_request name, options
423
426
  end
424
427
 
428
+ # 【コンビニ払い】
429
+ ## 2.2.2.1. 支払停止
430
+ # コンビニ決済センターとの通信を行い取引の支払停止処理を行います。
431
+ def cvs_cancel(options = {})
432
+ name = "CvsCancel.idPass"
433
+ required = [:access_id, :access_pass, :order_id]
434
+ assert_required_options(required, options)
435
+ post_request name, options
436
+ end
437
+
425
438
  ## 2.16.2.1.取引状態参照
426
439
  # 指定したオーダーID の取引情報を取得します。
427
440
  def search_trade(options = {})
@@ -478,7 +491,7 @@ module GMO
478
491
  args.merge!({ "ShopID" => @shop_id, "ShopPass" => @shop_pass })
479
492
  api(name, args, verb, options) do |response|
480
493
  if response.is_a?(Hash) && !response["ErrInfo"].nil?
481
- raise APIError.new(response)
494
+ raise APIError.new(response, locale)
482
495
  end
483
496
  end
484
497
  end
@@ -6,7 +6,9 @@
6
6
  # gmo = GMO::Payment::SiteAPI.new({
7
7
  # site_id: "foo",
8
8
  # site_pass: "bar",
9
- # host: "mul-pay.com"
9
+ # host: "mul-pay.com",
10
+ # locale: "ja"
11
+
10
12
  # })
11
13
  # result = gmo.post_request("EntryTran.idPass", options)
12
14
  module GMO
@@ -18,11 +20,12 @@ module GMO
18
20
  @site_id = options[:site_id]
19
21
  @site_pass = options[:site_pass]
20
22
  @host = options[:host]
23
+ @locale = options.fetch(:locale, GMO::Const::DEFAULT_LOCALE)
21
24
  unless @site_id && @site_pass && @host
22
25
  raise ArgumentError, "Initialize must receive a hash with :site_id, :site_pass and either :host! (received #{options.inspect})"
23
26
  end
24
27
  end
25
- attr_reader :site_id, :site_pass, :host
28
+ attr_reader :site_id, :site_pass, :host, :locale
26
29
 
27
30
  ## 2.3.2.1.会員登録
28
31
  # 指定されたサイトに会員を登録します。
@@ -173,7 +176,7 @@ module GMO
173
176
  args.merge!({ "SiteID" => @site_id, "SitePass" => @site_pass })
174
177
  api(name, args, verb, options) do |response|
175
178
  if response.is_a?(Hash) && !response["ErrInfo"].nil?
176
- raise APIError.new(response)
179
+ raise APIError.new(response, locale)
177
180
  end
178
181
  end
179
182
  end
@@ -1,3 +1,3 @@
1
1
  module GMO
2
- VERSION = "0.4.0"
3
- end
2
+ VERSION = "0.5.0"
3
+ end
@@ -8,7 +8,9 @@ describe "GMO::Payment::RemittanceAPI" do
8
8
  @service ||= GMO::Payment::RemittanceAPI.new({
9
9
  :shop_id => SPEC_CONF["remittance"]["shop_id"],
10
10
  :shop_pass => SPEC_CONF["remittance"]["shop_pass"],
11
- :host => SPEC_CONF["remittance"]["host"]
11
+ :host => SPEC_CONF["remittance"]["host"],
12
+ :locale => :ja
13
+
12
14
  })
13
15
  end
14
16
 
@@ -8,17 +8,23 @@ describe "GMO::Payment::ShopAndSiteAPI" do
8
8
  :shop_pass => SPEC_CONF["shop_pass"],
9
9
  :site_id => SPEC_CONF["site_id"],
10
10
  :site_pass => SPEC_CONF["site_pass"],
11
- :host => SPEC_CONF["host"]
11
+ :host => SPEC_CONF["host"],
12
+ :locale => :ja
13
+
12
14
  })
13
15
  @shop_api ||= GMO::Payment::ShopAPI.new({
14
16
  :shop_id => SPEC_CONF["shop_id"],
15
17
  :shop_pass => SPEC_CONF["shop_pass"],
16
- :host => SPEC_CONF["host"]
18
+ :host => SPEC_CONF["host"],
19
+ :locale => :ja
20
+
17
21
  })
18
22
  @site_api ||= GMO::Payment::SiteAPI.new({
19
23
  :site_id => SPEC_CONF["site_id"],
20
24
  :site_pass => SPEC_CONF["site_pass"],
21
- :host => SPEC_CONF["host"]
25
+ :host => SPEC_CONF["host"],
26
+ :locale => :ja
27
+
22
28
  })
23
29
  end
24
30
 
@@ -14,12 +14,14 @@ describe "GMO::Payment::ShopAPI" do
14
14
  :site_pass => SPEC_CONF["site_pass"],
15
15
  :shop_id => SPEC_CONF["shop_id"],
16
16
  :shop_pass => SPEC_CONF["shop_pass"],
17
- :host => SPEC_CONF["host"]
17
+ :host => SPEC_CONF["host"],
18
+ :locale => :ja
18
19
  })
19
20
  @service ||= GMO::Payment::ShopAPI.new({
20
21
  :shop_id => SPEC_CONF["shop_id"],
21
22
  :shop_pass => SPEC_CONF["shop_pass"],
22
- :host => SPEC_CONF["host"]
23
+ :host => SPEC_CONF["host"],
24
+ :locale => :ja
23
25
  })
24
26
  end
25
27
 
@@ -692,6 +694,32 @@ describe "GMO::Payment::ShopAPI" do
692
694
  end
693
695
  end
694
696
 
697
+ describe "#cvs_cancel" do
698
+ it "gets data about a transaction", :vcr do
699
+ order_id = generate_id
700
+ result = @service.entry_tran_cvs({
701
+ :order_id => order_id,
702
+ :amount => 100
703
+ })
704
+ access_id = result["AccessID"]
705
+ access_pass = result["AccessPass"]
706
+ result = @service.cvs_cancel({
707
+ :order_id => order_id,
708
+ :access_id => access_id,
709
+ :access_pass => access_pass,
710
+ })
711
+
712
+ result["OrderID"].nil?.should_not be_truthy
713
+ result["Status"].nil?.should_not be_truthy
714
+ end
715
+
716
+ it "got error if missing options", :vcr do
717
+ lambda {
718
+ result = @service.cvs_cancel()
719
+ }.should raise_error("Required access_id, access_pass, order_id were not provided.")
720
+ end
721
+ end
722
+
695
723
  describe "#search_trade" do
696
724
  it "gets data about order", :vcr do
697
725
  order_id = @order_id
@@ -12,12 +12,16 @@ describe "GMO::Payment::SiteAPI" do
12
12
  :site_pass => SPEC_CONF["site_pass"],
13
13
  :shop_id => SPEC_CONF["shop_id"],
14
14
  :shop_pass => SPEC_CONF["shop_pass"],
15
- :host => SPEC_CONF["host"]
15
+ :host => SPEC_CONF["host"],
16
+ :locale => :ja
17
+
16
18
  })
17
19
  @service ||= GMO::Payment::SiteAPI.new({
18
20
  :site_id => SPEC_CONF["site_id"],
19
21
  :site_pass => SPEC_CONF["site_pass"],
20
- :host => SPEC_CONF["host"]
22
+ :host => SPEC_CONF["host"],
23
+ :locale => :ja
24
+
21
25
  })
22
26
  end
23
27
 
@@ -283,4 +287,4 @@ describe "GMO::Payment::SiteAPI" do
283
287
  }.should raise_error('Required member_id, seq_mode, token_seq were not provided.')
284
288
  end
285
289
  end
286
- end
290
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gmo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tatsuo Kaniwa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-26 00:00:00.000000000 Z
11
+ date: 2020-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -128,6 +128,7 @@ files:
128
128
  - fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_change_tran_brandtoken_gets_data_about_order.yml
129
129
  - fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_change_tran_gets_data_about_order.yml
130
130
  - fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_change_tran_got_error_if_missing_options.yml
131
+ - fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_cvs_cancel_gets_data_about_a_transaction.yml
131
132
  - fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_entry_tran_brandtoken_gets_data_about_a_transaction.yml
132
133
  - fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_entry_tran_cvs_gets_data_about_a_transaction.yml
133
134
  - fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_entry_tran_cvs_got_error_if_missing_options.yml
@@ -216,7 +217,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
216
217
  version: '0'
217
218
  requirements: []
218
219
  rubyforge_project:
219
- rubygems_version: 2.7.4
220
+ rubygems_version: 2.7.6
220
221
  signing_key:
221
222
  specification_version: 4
222
223
  summary: 'GMO Payment API client: Ruby client library for the GMO Payment Platform.'