gmo 0.3.0 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -0
  3. data/.travis.yml +5 -9
  4. data/CHANGELOG.md +37 -1
  5. data/fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_cancel_deposit_gets_data_about_a_deposit.yml +38 -0
  6. data/fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_cancel_mail_deposit_gets_data_about_a_mail_deposit.yml +38 -0
  7. data/fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_create_account_gets_data_about_an_account.yml +38 -0
  8. data/fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_create_deposit_gets_data_about_a_deposit.yml +38 -0
  9. data/fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_create_mail_deposit_gets_data_about_a_mail_deposit.yml +38 -0
  10. data/fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_delete_account_gets_data_about_an_account.yml +38 -0
  11. data/fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_search_account_gets_data_about_an_account.yml +38 -0
  12. data/fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_search_balance_gets_data_about_balance.yml +38 -0
  13. data/fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_search_deposit_gets_data_about_a_deposit.yml +38 -0
  14. data/fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_search_mail_deposit_gets_data_about_a_mail_deposit.yml +38 -0
  15. data/fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_update_account_gets_data_about_an_account.yml +38 -0
  16. data/fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_change_tran_brandtoken_gets_data_about_order.yml +108 -0
  17. data/fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_cvs_cancel_gets_data_about_a_transaction.yml +63 -0
  18. data/fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_entry_tran_brandtoken_gets_data_about_a_transaction.yml +38 -0
  19. data/fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_entry_tran_docomo_gets_data_about_a_transaction.yml +35 -0
  20. data/fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_entry_tran_rakuten_id_gets_data_about_a_transaction.yml +35 -0
  21. data/fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_brandtoken_gets_data_about_a_transaction.yml +73 -0
  22. data/fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_brandtoken_parameter_contains_Japanese_characters_should_correctly_handle_Japanese.yml +73 -0
  23. data/fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_docomo_gets_data_about_a_transaction.yml +67 -0
  24. data/fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_doesn_t_require_card_info_if_token_is_present.yml +69 -0
  25. data/fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_rakuten_id_gets_data_about_a_transaction.yml +67 -0
  26. data/fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_refund_tran_brandtoken_gets_data_about_a_transaction.yml +108 -0
  27. data/fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_sales_tran_brandtoken_gets_data_about_a_transaction.yml +143 -0
  28. data/fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_secure_tran_gets_data_about_a_transaction.yml +36 -0
  29. data/fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_void_tran_brandtoken_gets_data_about_order.yml +108 -0
  30. data/fixtures/vcr_cassettes/GMO_Payment_ShopAPI/secure_tran_request_params.yml +2 -0
  31. data/fixtures/vcr_cassettes/GMO_Payment_ShopAndSiteAPI/_exec_tran_brandtoken_got_data.yml +73 -0
  32. data/fixtures/vcr_cassettes/GMO_Payment_ShopAndSiteAPI/_trade_brandtoken_got_data.yml +108 -0
  33. data/fixtures/vcr_cassettes/GMO_Payment_SiteAPI/_delete_brandtoken_gets_data_about_a_brandtoken.yml +73 -0
  34. data/fixtures/vcr_cassettes/GMO_Payment_SiteAPI/_search_brandtoken_gets_data_about_a_brandtoken.yml +74 -0
  35. data/fixtures/vcr_cassettes/GMO_Payment_SiteAPI/_search_card_detail_by_member_id_gets_data_about_card_detail.yml +36 -0
  36. data/lib/gmo.rb +10 -3
  37. data/lib/gmo/const.rb +2502 -3
  38. data/lib/gmo/errors.rb +22 -4
  39. data/lib/gmo/remittance_api.rb +331 -0
  40. data/lib/gmo/shop_and_site_api.rb +77 -2
  41. data/lib/gmo/shop_api.rb +315 -5
  42. data/lib/gmo/site_api.rb +70 -3
  43. data/lib/gmo/version.rb +2 -2
  44. data/spec/gmo/{error_spec.rb → errors_spec.rb} +11 -2
  45. data/spec/gmo/remittance_api_spec.rb +506 -0
  46. data/spec/gmo/shop_and_site_api_spec.rb +83 -3
  47. data/spec/gmo/shop_api_spec.rb +429 -1
  48. data/spec/gmo/site_api_spec.rb +88 -1
  49. data/spec/support/config.example.yml +5 -0
  50. data/spec/support/config.yml +5 -0
  51. data/spec/support/config_loader.rb +1 -1
  52. data/spec/support/vcr.rb +9 -2
  53. metadata +41 -8
@@ -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
 
@@ -91,4 +97,78 @@ describe "GMO::Payment::ShopAndSiteAPI" do
91
97
  end
92
98
  end
93
99
 
100
+ describe "#trade_brandtoken" do
101
+
102
+ it "got data", :vcr do
103
+ order_id = generate_id
104
+ result = @shop_api.entry_tran_brandtoken({
105
+ :order_id => order_id,
106
+ :job_cd => "AUTH",
107
+ :amount => 100
108
+ })
109
+ access_id = result["AccessID"]
110
+ access_pass = result["AccessPass"]
111
+ member_id = generate_id
112
+ result = @service.exec_tran_brandtoken({
113
+ :order_id => order_id,
114
+ :access_id => access_id,
115
+ :access_pass => access_pass,
116
+ :token_type => :apple_pay,
117
+ :token => 'base64encodedtoken',
118
+ :member_id => member_id
119
+ })
120
+ result = @service.trade_brandtoken({
121
+ :order_id => order_id,
122
+ :member_id => member_id
123
+ })
124
+ result["TokenSeq"].nil?.should_not be true
125
+ result["CardNoToken"].nil?.should_not be true
126
+ result["Forward"].nil?.should_not be true
127
+ end
128
+
129
+ it "got error if missing options", :vcr do
130
+ lambda {
131
+ result = @service.trade_brandtoken()
132
+ }.should raise_error('Required order_id, member_id were not provided.')
133
+ end
134
+ end
135
+
136
+ describe "#exec_tran_brandtoken" do
137
+
138
+ it "got data", :vcr do
139
+ order_id = generate_id
140
+ result = @shop_api.entry_tran_brandtoken({
141
+ :order_id => order_id,
142
+ :job_cd => "AUTH",
143
+ :amount => 100
144
+ })
145
+ access_id = result["AccessID"]
146
+ access_pass = result["AccessPass"]
147
+ member_id = generate_id
148
+ result = @service.exec_tran_brandtoken({
149
+ :order_id => order_id,
150
+ :access_id => access_id,
151
+ :access_pass => access_pass,
152
+ :token_type => :apple_pay,
153
+ :token => 'base64encodedtoken',
154
+ :member_id => member_id
155
+ })
156
+ result["Status"].nil?.should_not be true
157
+ result["OrderID"].nil?.should_not be true
158
+ result["Forward"].nil?.should_not be true
159
+ result["Approve"].nil?.should_not be true
160
+ result["TranID"].nil?.should_not be true
161
+ result["TranDate"].nil?.should_not be true
162
+ result["ClientField1"].nil?.should_not be true
163
+ result["ClientField2"].nil?.should_not be true
164
+ result["ClientField3"].nil?.should_not be true
165
+ end
166
+
167
+ it "got error if missing options", :vcr do
168
+ lambda {
169
+ result = @service.exec_tran_brandtoken()
170
+ }.should raise_error('Required access_id, access_pass, member_id, order_id were not provided.')
171
+ end
172
+ end
173
+
94
174
  end
@@ -9,10 +9,19 @@ describe "GMO::Payment::ShopAPI" do
9
9
  end
10
10
 
11
11
  before(:each) do
12
+ @shop_site ||= GMO::Payment::ShopAndSiteAPI.new({
13
+ :site_id => SPEC_CONF["site_id"],
14
+ :site_pass => SPEC_CONF["site_pass"],
15
+ :shop_id => SPEC_CONF["shop_id"],
16
+ :shop_pass => SPEC_CONF["shop_pass"],
17
+ :host => SPEC_CONF["host"],
18
+ :locale => :ja
19
+ })
12
20
  @service ||= GMO::Payment::ShopAPI.new({
13
21
  :shop_id => SPEC_CONF["shop_id"],
14
22
  :shop_pass => SPEC_CONF["shop_pass"],
15
- :host => SPEC_CONF["host"]
23
+ :host => SPEC_CONF["host"],
24
+ :locale => :ja
16
25
  })
17
26
  end
18
27
 
@@ -108,6 +117,63 @@ describe "GMO::Payment::ShopAPI" do
108
117
  end
109
118
  end
110
119
 
120
+ describe "#entry_tran_brandtoken" do
121
+ it "gets data about a transaction", :vcr do
122
+ order_id = @order_id
123
+ result = @service.entry_tran_brandtoken({
124
+ :order_id => order_id,
125
+ :job_cd => "AUTH",
126
+ :amount => 100
127
+ })
128
+ result["AccessID"].nil?.should_not be true
129
+ result["AccessPass"].nil?.should_not be true
130
+ end
131
+
132
+ it "got error if missing options", :vcr do
133
+ lambda {
134
+ result = @service.entry_tran_brandtoken()
135
+ }.should raise_error('Required order_id, job_cd, amount were not provided.')
136
+ end
137
+ end
138
+
139
+ describe "#entry_tran_rakuten_id" do
140
+ it "gets data about a transaction", :vcr do
141
+ order_id = @order_id
142
+ result = @service.entry_tran_rakuten_id({
143
+ :order_id => order_id,
144
+ :job_cd => "AUTH",
145
+ :amount => 100
146
+ })
147
+ result["AccessID"].nil?.should_not be true
148
+ result["AccessPass"].nil?.should_not be true
149
+ end
150
+
151
+ it "got error if missing options", :vcr do
152
+ lambda {
153
+ result = @service.entry_tran_rakuten_id()
154
+ }.should raise_error('Required order_id, job_cd, amount were not provided.')
155
+ end
156
+ end
157
+
158
+ describe "#entry_tran_docomo" do
159
+ it "gets data about a transaction", :vcr do
160
+ order_id = @order_id
161
+ result = @service.entry_tran_docomo({
162
+ :order_id => order_id,
163
+ :job_cd => "AUTH",
164
+ :amount => 100
165
+ })
166
+ result["AccessID"].nil?.should_not be true
167
+ result["AccessPass"].nil?.should_not be true
168
+ end
169
+
170
+ it "got error if missing options", :vcr do
171
+ lambda {
172
+ result = @service.entry_tran_docomo()
173
+ }.should raise_error('Required order_id, job_cd, amount were not provided.')
174
+ end
175
+ end
176
+
111
177
  describe "#exec_tran" do
112
178
  it "gets data about a transaction", :vcr do
113
179
  order_id = generate_id
@@ -149,6 +215,27 @@ describe "GMO::Payment::ShopAPI" do
149
215
  }.should raise_error("Required access_id, access_pass, order_id, card_no, expire were not provided.")
150
216
  end
151
217
 
218
+ it "doesn't require card info if token is present", :vcr do
219
+ lambda {
220
+ order_id = generate_id
221
+ result = @service.entry_tran({
222
+ :order_id => order_id,
223
+ :job_cd => "AUTH",
224
+ :amount => 100
225
+ })
226
+ access_id = result["AccessID"]
227
+ access_pass = result["AccessPass"]
228
+ result = @service.exec_tran({
229
+ :order_id => order_id,
230
+ :access_id => access_id,
231
+ :access_pass => access_pass,
232
+ :method => 1,
233
+ :pay_times => 1,
234
+ :token => "onetimetokenfromgmo"
235
+ })
236
+ }.should_not raise_error("Required card_no, expire were not provided.")
237
+ end
238
+
152
239
  context "parameter contains Japanese characters" do
153
240
  before { require "kconv" unless defined?(Kconv) }
154
241
 
@@ -189,6 +276,26 @@ describe "GMO::Payment::ShopAPI" do
189
276
  end
190
277
  end
191
278
 
279
+ describe "#secure_tran" do
280
+ it "gets data about a transaction", :vcr do
281
+ params = File.read("fixtures/vcr_cassettes/GMO_Payment_ShopAPI/secure_tran_request_params.yml")
282
+ params = YAML.load(params)
283
+
284
+ result = @service.secure_tran({
285
+ :pa_res => params["pa_res"],
286
+ :md => params["md"]
287
+ })
288
+ result["OrderID"].nil?.should_not be_truthy
289
+ result["Forward"].nil?.should_not be_truthy
290
+ result["Method"].nil?.should_not be_truthy
291
+ result["PayTimes"].nil?.should_not be_truthy
292
+ result["Approve"].nil?.should_not be_truthy
293
+ result["TranID"].nil?.should_not be_truthy
294
+ result["TranDate"].nil?.should_not be_truthy
295
+ result["CheckString"].nil?.should_not be_truthy
296
+ end
297
+ end
298
+
192
299
  describe "#exec_tran_cvs" do
193
300
  it "gets data about a transaction", :vcr do
194
301
  order_id = generate_id
@@ -299,6 +406,141 @@ describe "GMO::Payment::ShopAPI" do
299
406
  end
300
407
  end
301
408
 
409
+ describe "#exec_tran_rakuten_id" do
410
+ it "gets data about a transaction", :vcr do
411
+ order_id = generate_id
412
+ result = @service.entry_tran_rakuten_id({
413
+ :order_id => order_id,
414
+ :job_cd => 'CAPTURE',
415
+ :amount => 100
416
+ })
417
+ access_id = result["AccessID"]
418
+ access_pass = result["AccessPass"]
419
+ result = @service.exec_tran_rakuten_id({
420
+ :order_id => order_id,
421
+ :access_id => access_id,
422
+ :access_pass => access_pass,
423
+ :ret_url => 'https://example.com/path/to/return/success',
424
+ :error_rcv_url => 'https://example.com/path/to/return/failure',
425
+ :item_id => '0001',
426
+ :item_name => '購入する商品名'
427
+ })
428
+ result["AccessID"].nil?.should_not be_truthy
429
+ result["Token"].nil?.should_not be_truthy
430
+ result["StartURL"].nil?.should_not be_truthy
431
+ result["StartLimitDate"].nil?.should_not be_truthy
432
+ end
433
+
434
+ it "got error if missing options", :vcr do
435
+ lambda {
436
+ result = @service.exec_tran_rakuten_id()
437
+ }.should raise_error("Required access_id, access_pass, order_id were not provided.")
438
+ end
439
+ end
440
+
441
+ describe "#exec_tran_docomo" do
442
+ it "gets data about a transaction", :vcr do
443
+ order_id = generate_id
444
+ result = @service.entry_tran_docomo({
445
+ :order_id => order_id,
446
+ :job_cd => 'CAPTURE',
447
+ :amount => 100
448
+ })
449
+ access_id = result["AccessID"]
450
+ access_pass = result["AccessPass"]
451
+ result = @service.exec_tran_docomo({
452
+ :order_id => order_id,
453
+ :access_id => access_id,
454
+ :access_pass => access_pass,
455
+ :ret_url => 'https://example.com/path/to/return/success',
456
+ :error_rcv_url => 'https://example.com/path/to/return/failure',
457
+ :item_id => '0001',
458
+ :item_name => '購入する商品名'
459
+ })
460
+ result["AccessID"].nil?.should_not be_truthy
461
+ result["Token"].nil?.should_not be_truthy
462
+ result["StartURL"].nil?.should_not be_truthy
463
+ result["StartLimitDate"].nil?.should_not be_truthy
464
+ end
465
+
466
+ it "got error if missing options", :vcr do
467
+ lambda {
468
+ result = @service.exec_tran_docomo()
469
+ }.should raise_error("Required access_id, access_pass, order_id were not provided.")
470
+ end
471
+ end
472
+
473
+ describe "#exec_tran_brandtoken" do
474
+ it "gets data about a transaction", :vcr do
475
+ order_id = generate_id
476
+ client_field_1 = "client_field1"
477
+ result = @service.entry_tran_brandtoken({
478
+ :order_id => order_id,
479
+ :job_cd => "AUTH",
480
+ :amount => 100
481
+ })
482
+ access_id = result["AccessID"]
483
+ access_pass = result["AccessPass"]
484
+ result = @service.exec_tran_brandtoken({
485
+ :order_id => order_id,
486
+ :access_id => access_id,
487
+ :access_pass => access_pass,
488
+ :token_type => :apple_pay,
489
+ :token => 'base64encodedtoken',
490
+ :client_field_1 => client_field_1
491
+ })
492
+ result["Status"].nil?.should_not be true
493
+ result["OrderID"].nil?.should_not be true
494
+ result["Forward"].nil?.should_not be true
495
+ result["Approve"].nil?.should_not be true
496
+ result["TranID"].nil?.should_not be true
497
+ result["TranDate"].nil?.should_not be true
498
+ (result["ClientField1"] == client_field_1).should be true
499
+ result["ClientField2"].nil?.should_not be true
500
+ result["ClientField3"].nil?.should_not be true
501
+ end
502
+
503
+ it "got error if missing options", :vcr do
504
+ lambda {
505
+ result = @service.exec_tran_brandtoken()
506
+ }.should raise_error("Required access_id, access_pass, order_id were not provided.")
507
+ end
508
+
509
+ context "parameter contains Japanese characters" do
510
+ before { require "kconv" unless defined?(Kconv) }
511
+
512
+ it "should correctly handle Japanese", :vcr do
513
+ order_id = generate_id
514
+ client_field_1 = "〜−¢£¬−‖①ほげほげhogehoge"
515
+ result = @service.entry_tran_brandtoken({
516
+ :order_id => order_id,
517
+ :job_cd => "AUTH",
518
+ :amount => 100
519
+ })
520
+ access_id = result["AccessID"]
521
+ access_pass = result["AccessPass"]
522
+ result = @service.exec_tran_brandtoken({
523
+ :order_id => order_id,
524
+ :access_id => access_id,
525
+ :access_pass => access_pass,
526
+ :token_type => :apple_pay,
527
+ :token => 'base64encodedtoken',
528
+ :client_field_1 => client_field_1
529
+ })
530
+ result["Status"].nil?.should_not be true
531
+ result["OrderID"].nil?.should_not be true
532
+ result["Forward"].nil?.should_not be true
533
+ result["Approve"].nil?.should_not be true
534
+ result["TranID"].nil?.should_not be true
535
+ result["TranDate"].nil?.should_not be true
536
+ (result["ClientField1"] == client_field_1).should be true
537
+ (result["ClientField1"].encoding.to_s == "UTF-8").should be true
538
+ result["ClientField2"].nil?.should_not be true
539
+ result["ClientField3"].nil?.should_not be true
540
+ end
541
+ end
542
+ end
543
+
302
544
  describe "#alter_tran" do
303
545
  it "gets data about order", :vcr do
304
546
  order_id = generate_id
@@ -413,6 +655,192 @@ describe "GMO::Payment::ShopAPI" do
413
655
  end
414
656
  end
415
657
 
658
+ describe "#change_tran_brandtoken" do
659
+ it "gets data about order", :vcr do
660
+ order_id = generate_id
661
+ result = @service.entry_tran_brandtoken({
662
+ :order_id => order_id,
663
+ :job_cd => "AUTH",
664
+ :amount => 100
665
+ })
666
+ access_id = result["AccessID"]
667
+ access_pass = result["AccessPass"]
668
+ @service.exec_tran_brandtoken({
669
+ :order_id => order_id,
670
+ :access_id => access_id,
671
+ :access_pass => access_pass,
672
+ :token_type => :apple_pay,
673
+ :token => 'base64encodedtoken'
674
+ })
675
+ result = @service.change_tran_brandtoken({
676
+ :order_id => order_id,
677
+ :access_id => access_id,
678
+ :access_pass => access_pass,
679
+ :job_cd => "CAPTURE",
680
+ :amount => 1500
681
+ })
682
+ result["AccessID"].nil?.should_not be true
683
+ result["AccessPass"].nil?.should_not be true
684
+ result["Status"].nil?.should_not be true
685
+ result["Forward"].nil?.should_not be true
686
+ result["Approve"].nil?.should_not be true
687
+ result["TranID"].nil?.should_not be true
688
+ result["TranDate"].nil?.should_not be true
689
+ end
690
+
691
+ it "got error if missing options", :vcr do
692
+ lambda {
693
+ result = @service.change_tran_brandtoken()
694
+ }.should raise_error('Required access_id, access_pass, order_id, job_cd, amount were not provided.')
695
+ end
696
+ end
697
+
698
+ describe "#void_tran_brandtoken" do
699
+ it "gets data about order", :vcr do
700
+ order_id = generate_id
701
+ result = @service.entry_tran_brandtoken({
702
+ :order_id => order_id,
703
+ :job_cd => "AUTH",
704
+ :amount => 100
705
+ })
706
+ access_id = result["AccessID"]
707
+ access_pass = result["AccessPass"]
708
+ @service.exec_tran_brandtoken({
709
+ :order_id => order_id,
710
+ :access_id => access_id,
711
+ :access_pass => access_pass,
712
+ :token_type => :apple_pay,
713
+ :token => 'base64encodedtoken'
714
+ })
715
+ result = @service.void_tran_brandtoken({
716
+ :order_id => order_id,
717
+ :access_id => access_id,
718
+ :access_pass => access_pass
719
+ })
720
+ result["AccessID"].nil?.should_not be true
721
+ result["AccessPass"].nil?.should_not be true
722
+ result["Status"].nil?.should_not be true
723
+ result["Forward"].nil?.should_not be true
724
+ result["Approve"].nil?.should_not be true
725
+ result["TranID"].nil?.should_not be true
726
+ result["TranDate"].nil?.should_not be true
727
+ end
728
+
729
+ it "got error if missing options", :vcr do
730
+ lambda {
731
+ result = @service.void_tran_brandtoken()
732
+ }.should raise_error('Required access_id, access_pass, order_id were not provided.')
733
+ end
734
+ end
735
+
736
+ describe "#sales_tran_brandtoken" do
737
+ it "gets data about a transaction", :vcr do
738
+ order_id = generate_id
739
+ result = @service.entry_tran_brandtoken({
740
+ :order_id => order_id,
741
+ :job_cd => "AUTH",
742
+ :amount => 1000
743
+ })
744
+ access_id = result["AccessID"]
745
+ access_pass = result["AccessPass"]
746
+ @service.exec_tran_brandtoken({
747
+ :order_id => order_id,
748
+ :access_id => access_id,
749
+ :access_pass => access_pass,
750
+ :token_type => :apple_pay,
751
+ :token => 'base64encodedtoken'
752
+ })
753
+ member_id = generate_id
754
+ @shop_site.trade_brandtoken({
755
+ :member_id => member_id,
756
+ :order_id => order_id
757
+ })
758
+ result = @service.sales_tran_brandtoken({
759
+ :access_id => access_id,
760
+ :access_pass => access_pass,
761
+ :order_id => order_id,
762
+ :amount => 1000
763
+ })
764
+ result["AccessID"].nil?.should_not be true
765
+ result["AccessPass"].nil?.should_not be true
766
+ result["Status"].nil?.should_not be true
767
+ result["Forward"].nil?.should_not be true
768
+ result["Approve"].nil?.should_not be true
769
+ result["TranID"].nil?.should_not be true
770
+ result["TranDate"].nil?.should_not be true
771
+ end
772
+
773
+ it "got error if missing options", :vcr do
774
+ lambda {
775
+ result = @service.sales_tran_brandtoken()
776
+ }.should raise_error('Required access_id, access_pass, order_id, amount were not provided.')
777
+ end
778
+ end
779
+
780
+ describe "#refund_tran_brandtoken" do
781
+ it "gets data about a transaction", :vcr do
782
+ order_id = generate_id
783
+ result = @service.entry_tran_brandtoken({
784
+ :order_id => order_id,
785
+ :job_cd => "CAPTURE",
786
+ :amount => 1000
787
+ })
788
+ access_id = result["AccessID"]
789
+ access_pass = result["AccessPass"]
790
+ @service.exec_tran_brandtoken({
791
+ :order_id => order_id,
792
+ :access_id => access_id,
793
+ :access_pass => access_pass,
794
+ :token_type => :apple_pay,
795
+ :token => 'base64encodedtoken'
796
+ })
797
+ result = @service.refund_tran_brandtoken({
798
+ :access_id => access_id,
799
+ :access_pass => access_pass,
800
+ :order_id => order_id,
801
+ :amount => 1000
802
+ })
803
+ result["AccessID"].nil?.should_not be true
804
+ result["AccessPass"].nil?.should_not be true
805
+ result["Status"].nil?.should_not be true
806
+ result["Forward"].nil?.should_not be true
807
+ result["Approve"].nil?.should_not be true
808
+ result["TranID"].nil?.should_not be true
809
+ result["TranDate"].nil?.should_not be true
810
+ end
811
+
812
+ it "got error if missing options", :vcr do
813
+ lambda {
814
+ result = @service.refund_tran_brandtoken()
815
+ }.should raise_error('Required access_id, access_pass, order_id, amount were not provided.')
816
+ end
817
+ end
818
+
819
+ describe "#cvs_cancel" do
820
+ it "gets data about a transaction", :vcr do
821
+ order_id = generate_id
822
+ result = @service.entry_tran_cvs({
823
+ :order_id => order_id,
824
+ :amount => 100
825
+ })
826
+ access_id = result["AccessID"]
827
+ access_pass = result["AccessPass"]
828
+ result = @service.cvs_cancel({
829
+ :order_id => order_id,
830
+ :access_id => access_id,
831
+ :access_pass => access_pass,
832
+ })
833
+
834
+ result["OrderID"].nil?.should_not be_truthy
835
+ result["Status"].nil?.should_not be_truthy
836
+ end
837
+
838
+ it "got error if missing options", :vcr do
839
+ lambda {
840
+ result = @service.cvs_cancel()
841
+ }.should raise_error("Required access_id, access_pass, order_id were not provided.")
842
+ end
843
+ end
416
844
 
417
845
  describe "#search_trade" do
418
846
  it "gets data about order", :vcr do