iyzipay-subscriptions 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (114) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.rspec +2 -0
  4. data/.ruby-gemset +1 -0
  5. data/.travis.yml +17 -0
  6. data/Gemfile +6 -0
  7. data/LICENSE +21 -0
  8. data/README.md +183 -0
  9. data/Rakefile +5 -0
  10. data/VERSION +1 -0
  11. data/contributors +2 -0
  12. data/examples/options.rb +4 -0
  13. data/examples/plan.rb +36 -0
  14. data/examples/product.rb +32 -0
  15. data/examples/subscription.rb +33 -0
  16. data/examples/subscription_checkout_form_initialize.rb +39 -0
  17. data/examples/subscription_initialize.rb +47 -0
  18. data/gemfiles/Gemfile.nokogiri-1.6.8.1 +7 -0
  19. data/iyzipay.gemspec +24 -0
  20. data/lib/iyzipay.rb +16 -0
  21. data/lib/iyzipay/http_client.rb +39 -0
  22. data/lib/iyzipay/iyzipay_resource.rb +60 -0
  23. data/lib/iyzipay/iyzipay_resource_v2.rb +39 -0
  24. data/lib/iyzipay/model.rb +63 -0
  25. data/lib/iyzipay/model/address.rb +17 -0
  26. data/lib/iyzipay/model/api_test.rb +10 -0
  27. data/lib/iyzipay/model/approval.rb +17 -0
  28. data/lib/iyzipay/model/basic_bkm.rb +17 -0
  29. data/lib/iyzipay/model/basic_bkm_initialize.rb +24 -0
  30. data/lib/iyzipay/model/basic_payment.rb +27 -0
  31. data/lib/iyzipay/model/basic_payment_post_auth.rb +20 -0
  32. data/lib/iyzipay/model/basic_payment_pre_auth.rb +27 -0
  33. data/lib/iyzipay/model/basic_threeds_initialize.rb +27 -0
  34. data/lib/iyzipay/model/basic_threeds_initialize_pre_auth.rb +27 -0
  35. data/lib/iyzipay/model/basic_threeds_payment.rb +18 -0
  36. data/lib/iyzipay/model/basket.rb +26 -0
  37. data/lib/iyzipay/model/basket_item_type.rb +8 -0
  38. data/lib/iyzipay/model/bin_number.rb +17 -0
  39. data/lib/iyzipay/model/bkm.rb +17 -0
  40. data/lib/iyzipay/model/bkm_initialize.rb +26 -0
  41. data/lib/iyzipay/model/bounced_bank_transfer_list.rb +17 -0
  42. data/lib/iyzipay/model/buyer.rb +25 -0
  43. data/lib/iyzipay/model/cancel.rb +20 -0
  44. data/lib/iyzipay/model/card.rb +36 -0
  45. data/lib/iyzipay/model/card_information.rb +17 -0
  46. data/lib/iyzipay/model/card_list.rb +17 -0
  47. data/lib/iyzipay/model/checkout_form.rb +17 -0
  48. data/lib/iyzipay/model/checkout_form_initialize.rb +31 -0
  49. data/lib/iyzipay/model/checkout_form_initialize_pre_auth.rb +30 -0
  50. data/lib/iyzipay/model/cross_booking_from_sub_merchant.rb +20 -0
  51. data/lib/iyzipay/model/cross_booking_to_sub_merchant.rb +20 -0
  52. data/lib/iyzipay/model/currency.rb +11 -0
  53. data/lib/iyzipay/model/disapproval.rb +17 -0
  54. data/lib/iyzipay/model/installment_details.rb +19 -0
  55. data/lib/iyzipay/model/installment_info.rb +18 -0
  56. data/lib/iyzipay/model/installment_prices.rb +19 -0
  57. data/lib/iyzipay/model/locale.rb +8 -0
  58. data/lib/iyzipay/model/pay_with_iyzico_initialize.rb +31 -0
  59. data/lib/iyzipay/model/pay_with_iyzico_retrieve.rb +17 -0
  60. data/lib/iyzipay/model/payment.rb +47 -0
  61. data/lib/iyzipay/model/payment_card.rb +22 -0
  62. data/lib/iyzipay/model/payment_channel.rb +14 -0
  63. data/lib/iyzipay/model/payment_group.rb +9 -0
  64. data/lib/iyzipay/model/payment_post_auth.rb +20 -0
  65. data/lib/iyzipay/model/payment_pre_auth.rb +47 -0
  66. data/lib/iyzipay/model/payout_completed_transaction_list.rb +17 -0
  67. data/lib/iyzipay/model/pecco_initialize.rb +27 -0
  68. data/lib/iyzipay/model/pecco_payment.rb +17 -0
  69. data/lib/iyzipay/model/refund.rb +22 -0
  70. data/lib/iyzipay/model/refund_charged_from_merchant.rb +20 -0
  71. data/lib/iyzipay/model/refund_reason.rb +10 -0
  72. data/lib/iyzipay/model/refund_to_balance.rb +18 -0
  73. data/lib/iyzipay/model/settlement_to_balance.rb +19 -0
  74. data/lib/iyzipay/model/sub_merchant.rb +72 -0
  75. data/lib/iyzipay/model/sub_merchant_type.rb +9 -0
  76. data/lib/iyzipay/model/threeds_initialize.rb +32 -0
  77. data/lib/iyzipay/model/threeds_initialize_pre_auth.rb +32 -0
  78. data/lib/iyzipay/model/threeds_payment.rb +34 -0
  79. data/lib/iyzipay/model/v2/checkout_form.rb +20 -0
  80. data/lib/iyzipay/model/v2/checkout_form_initialize.rb +21 -0
  81. data/lib/iyzipay/model/v2/plan.rb +33 -0
  82. data/lib/iyzipay/model/v2/product.rb +39 -0
  83. data/lib/iyzipay/model/v2/subscription.rb +60 -0
  84. data/lib/iyzipay/model/v2/subscription_initialize.rb +21 -0
  85. data/lib/iyzipay/options.rb +7 -0
  86. data/lib/iyzipay/pki_builder.rb +101 -0
  87. data/spec/api_test_spec.rb +28 -0
  88. data/spec/approval_spec.rb +41 -0
  89. data/spec/bin_number_spec.rb +42 -0
  90. data/spec/bkm_spec.rb +91 -0
  91. data/spec/builder.rb +9 -0
  92. data/spec/builder/approval_builder.rb +18 -0
  93. data/spec/builder/card_builder.rb +27 -0
  94. data/spec/builder/checkout_form_builder.rb +75 -0
  95. data/spec/builder/payment_builder.rb +167 -0
  96. data/spec/builder/pecco_initialize_builder.rb +74 -0
  97. data/spec/builder/sub_merchant_builder.rb +91 -0
  98. data/spec/cancel_spec.rb +72 -0
  99. data/spec/card_storage_spec.rb +153 -0
  100. data/spec/checkout_form_spec.rb +113 -0
  101. data/spec/disapproval_spec.rb +47 -0
  102. data/spec/installment_spec.rb +46 -0
  103. data/spec/pay_with_iyzico_spec.rb +109 -0
  104. data/spec/payment_spec.rb +320 -0
  105. data/spec/pecco_spec.rb +116 -0
  106. data/spec/refund_spec.rb +76 -0
  107. data/spec/refund_to_balance_spec.rb +37 -0
  108. data/spec/retrieve_transactions_spec.rb +55 -0
  109. data/spec/settlement_to_balance_spec.rb +40 -0
  110. data/spec/spec_helper.rb +81 -0
  111. data/spec/spec_options.rb +5 -0
  112. data/spec/sub_merchant_spec.rb +227 -0
  113. data/spec/threeds_payment_spec.rb +229 -0
  114. metadata +226 -0
@@ -0,0 +1,74 @@
1
+ # coding: utf-8
2
+
3
+ require_relative '../spec_helper'
4
+
5
+ module Builder
6
+ class PeccoInitializeBuilder
7
+
8
+ def create_pecco_initialize(options)
9
+ buyer = {
10
+ id: 'BY789',
11
+ name: 'John',
12
+ surname: 'Doe',
13
+ identityNumber: '74300864791',
14
+ email: 'email@email.com',
15
+ gsmNumber: '+905350000000',
16
+ registrationDate: '2013-04-21 15:12:09',
17
+ lastLoginDate: '2015-10-05 12:43:35',
18
+ registrationAddress: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
19
+ city: 'Istanbul',
20
+ country: 'Turkey',
21
+ zipCode: '34732',
22
+ ip: '85.34.78.112'
23
+ }
24
+ address = {
25
+ address: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
26
+ zipCode: '34732',
27
+ contactName: 'John Doe',
28
+ city: 'Istanbul',
29
+ country: 'Turkey'
30
+ }
31
+
32
+ item1 = {
33
+ id: 'BI101',
34
+ name: 'Binocular',
35
+ category1: 'Collectibles',
36
+ category2: 'Accessories',
37
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
38
+ price: '30000'
39
+ }
40
+ item2 = {
41
+ id: 'BI102',
42
+ name: 'Game code',
43
+ category1: 'Game',
44
+ category2: 'Online Game Items',
45
+ itemType: Iyzipay::Model::BasketItemType::VIRTUAL,
46
+ price: '50000'
47
+ }
48
+ item3 = {
49
+ id: 'BI103',
50
+ name: 'Usb',
51
+ category1: 'Electronics',
52
+ category2: 'Usb / Cable',
53
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
54
+ price: '20000'
55
+ }
56
+ request = {
57
+ locale: Iyzipay::Model::Locale::TR,
58
+ conversationId: '123456789',
59
+ price: '100000',
60
+ paidPrice: '120000',
61
+ basketId: 'B67832',
62
+ paymentGroup: Iyzipay::Model::PaymentGroup::LISTING,
63
+ callbackUrl: 'https://www.merchant.com/callback',
64
+ currency: Iyzipay::Model::Currency::IRR,
65
+ buyer: buyer,
66
+ billingAddress: address,
67
+ shippingAddress: address,
68
+ basketItems: [item1, item2, item3]
69
+ }
70
+ pecco_initialize = Iyzipay::Model::PeccoInitialize.new.create(request, options)
71
+ JSON.parse(pecco_initialize)
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,91 @@
1
+ # coding: utf-8
2
+
3
+ require_relative '../spec_helper'
4
+
5
+ module Builder
6
+ class SubMerchantBuilder
7
+
8
+ def create_personal_sub_merchant(options)
9
+ random_number = Random.rand(11**11).to_s
10
+ request = {
11
+ locale: Iyzipay::Model::Locale::TR,
12
+ conversationId: '123456789',
13
+ subMerchantExternalId: 'B' + random_number,
14
+ subMerchantType: Iyzipay::Model::SubMerchantType::PERSONAL,
15
+ address: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
16
+ contactName: 'John',
17
+ contactSurname: 'Doe',
18
+ email: random_number + '@email.com',
19
+ gsmNumber: '+905350000000',
20
+ name: 'John\'s market',
21
+ iban: 'TR180006200119000006672315',
22
+ identityNumber: random_number,
23
+ currency: Iyzipay::Model::Currency::TRY
24
+ }
25
+ sub_merchant = Iyzipay::Model::SubMerchant.new.create(request, options)
26
+ JSON.parse(sub_merchant)
27
+ end
28
+
29
+ def create_private_sub_merchant(options)
30
+ random_number = Random.rand(11**11).to_s
31
+ request = {
32
+ locale: Iyzipay::Model::Locale::TR,
33
+ conversationId: '123456789',
34
+ subMerchantExternalId: 'B' + random_number,
35
+ subMerchantType: Iyzipay::Model::SubMerchantType::PRIVATE_COMPANY,
36
+ address: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
37
+ taxOffice: 'Tax office',
38
+ legalCompanyTitle: 'John Doe inc',
39
+ email: random_number + '@email.com',
40
+ gsmNumber: '+905350000000',
41
+ name: 'John\'s market',
42
+ iban: 'TR180006200119000006672315',
43
+ identityNumber: '31300864726',
44
+ currency: Iyzipay::Model::Currency::TRY
45
+ }
46
+ sub_merchant = Iyzipay::Model::SubMerchant.new.create(request, options)
47
+ JSON.parse(sub_merchant)
48
+ end
49
+
50
+ def create_limited_sub_merchant(options)
51
+ random_number = Random.rand(11**11).to_s
52
+ request = {
53
+ locale: Iyzipay::Model::Locale::TR,
54
+ conversationId: '123456789',
55
+ subMerchantExternalId: 'B' + random_number,
56
+ subMerchantType: Iyzipay::Model::SubMerchantType::LIMITED_OR_JOINT_STOCK_COMPANY,
57
+ address: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
58
+ taxOffice: 'Tax office',
59
+ taxNumber: '9261877',
60
+ legalCompanyTitle: 'XYZ inc',
61
+ email: 'email@submerchantemail.com',
62
+ gsmNumber: '+905350000000',
63
+ name: 'John\'s market',
64
+ iban: 'TR180006200119000006672315',
65
+ currency: Iyzipay::Model::Currency::TRY
66
+ }
67
+ sub_merchant = Iyzipay::Model::SubMerchant.new.create(request, options)
68
+ JSON.parse(sub_merchant)
69
+ end
70
+
71
+ def create_limited_sub_merchant_with_external_key(external_key, options)
72
+ request = {
73
+ locale: Iyzipay::Model::Locale::TR,
74
+ conversationId: '123456789',
75
+ subMerchantExternalId: external_key,
76
+ subMerchantType: Iyzipay::Model::SubMerchantType::LIMITED_OR_JOINT_STOCK_COMPANY,
77
+ address: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
78
+ taxOffice: 'Tax office',
79
+ taxNumber: '9261877',
80
+ legalCompanyTitle: 'XYZ inc',
81
+ email: 'email@submerchantemail.com',
82
+ gsmNumber: '+905350000000',
83
+ name: 'John\'s market',
84
+ iban: 'TR180006200119000006672315',
85
+ currency: Iyzipay::Model::Currency::TRY
86
+ }
87
+ sub_merchant = Iyzipay::Model::SubMerchant.new.create(request, options)
88
+ JSON.parse(sub_merchant)
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,72 @@
1
+ # coding: utf-8
2
+
3
+ require_relative 'spec_helper'
4
+ require_relative 'builder'
5
+
6
+ RSpec.describe 'Iyzipay' do
7
+ before :all do
8
+ @options = Iyzipay::Options.new
9
+ @options.api_key = SpecOptions::API_KEY
10
+ @options.secret_key = SpecOptions::SECRET_KEY
11
+ @options.base_url = SpecOptions::BASE_URL
12
+ end
13
+
14
+ it 'should cancel payment' do
15
+ payment = Builder::PaymentBuilder.new.create_standard_listing_payment(@options)
16
+
17
+ request = {
18
+ locale: Iyzipay::Model::Locale::TR,
19
+ conversationId: '123456789',
20
+ paymentId: payment['paymentId'],
21
+ ip: '85.34.78.112'
22
+ }
23
+ cancel = Iyzipay::Model::Cancel.new.create(request, @options)
24
+ begin
25
+ $stdout.puts cancel.inspect
26
+ cancel = JSON.parse(cancel)
27
+ expect(cancel['status']).to eq('success')
28
+ expect(cancel['locale']).to eq('tr')
29
+ expect(cancel['systemTime']).not_to be_nil
30
+ expect(cancel['conversationId']).to eq('123456789')
31
+ expect(cancel['paymentId']).to eq(payment['paymentId'])
32
+ expect(cancel['price']).to eq(1.10000000)
33
+ expect(cancel['currency']).to eq('TRY')
34
+ expect(cancel['authCode']).not_to be_nil
35
+ rescue
36
+ $stderr.puts 'oops'
37
+ raise
38
+ end
39
+ end
40
+
41
+ it 'should cancel payment with reason and description' do
42
+ payment = Builder::PaymentBuilder.new.create_standard_listing_payment(@options)
43
+
44
+ request = {
45
+ locale: Iyzipay::Model::Locale::TR,
46
+ conversationId: '123456789',
47
+ paymentId: payment['paymentId'],
48
+ ip: '85.34.78.112',
49
+ reason: Iyzipay::Model::RefundReason::OTHER,
50
+ description: 'customer requested for default sample'
51
+ }
52
+ cancel = Iyzipay::Model::Cancel.new.create(request, @options)
53
+ begin
54
+ $stdout.puts cancel.inspect
55
+ cancel = JSON.parse(cancel)
56
+ expect(cancel['status']).to eq('success')
57
+ expect(cancel['locale']).to eq('tr')
58
+ expect(cancel['systemTime']).not_to be_nil
59
+ expect(cancel['conversationId']).to eq('123456789')
60
+ expect(cancel['paymentId']).to eq(payment['paymentId'])
61
+ expect(cancel['price']).to eq(1.10000000)
62
+ expect(cancel['currency']).to eq('TRY')
63
+ expect(cancel['authCode']).not_to be_nil
64
+ rescue
65
+ $stderr.puts 'oops'
66
+ raise
67
+ end
68
+ end
69
+
70
+ after :each do
71
+ end
72
+ end
@@ -0,0 +1,153 @@
1
+ # coding: utf-8
2
+
3
+ require_relative 'spec_helper'
4
+ require_relative 'builder'
5
+
6
+ RSpec.describe 'Iyzipay' do
7
+ before :all do
8
+ @options = Iyzipay::Options.new
9
+ @options.api_key = SpecOptions::API_KEY
10
+ @options.secret_key = SpecOptions::SECRET_KEY
11
+ @options.base_url = SpecOptions::BASE_URL
12
+ end
13
+
14
+ it 'should create user and add card' do
15
+ card_information = {
16
+ cardAlias: 'card alias',
17
+ cardHolderName: 'John Doe',
18
+ cardNumber: '5528790000000008',
19
+ expireYear: '2030',
20
+ expireMonth: '12'
21
+ }
22
+ request = {
23
+ locale: Iyzipay::Model::Locale::TR,
24
+ conversationId: '123456789',
25
+ email: 'email@email.com',
26
+ externalId: 'external id',
27
+ card: card_information
28
+ }
29
+ card = Iyzipay::Model::Card.new.create(request, @options)
30
+ begin
31
+ $stdout.puts card.inspect
32
+ card = JSON.parse(card)
33
+ expect(card['status']).to eq('success')
34
+ expect(card['locale']).to eq('tr')
35
+ expect(card['systemTime']).not_to be_nil
36
+ expect(card['conversationId']).to eq('123456789')
37
+ expect(card['externalId']).to eq('external id')
38
+ expect(card['email']).to eq('email@email.com')
39
+ expect(card['cardUserKey']).to eq(card['cardUserKey'])
40
+ expect(card['cardToken']).to eq(card['cardToken'])
41
+ expect(card['cardAlias']).to eq('card alias')
42
+ expect(card['binNumber']).to eq('552879')
43
+ expect(card['cardType']).to eq('CREDIT_CARD')
44
+ expect(card['cardAssociation']).to eq('MASTER_CARD')
45
+ expect(card['cardFamily']).to eq('Paraf')
46
+ expect(card['cardBankCode']).to eq(12)
47
+ expect(card['cardBankName']).to eq('Halk Bankası')
48
+ rescue
49
+ $stderr.puts 'oops'
50
+ raise
51
+ end
52
+ end
53
+
54
+ it 'should create card and add card to existing user' do
55
+ # create card user
56
+ card = Builder::CardBuilder.new.create_card(@options)
57
+
58
+ card_information = {
59
+ cardAlias: 'card alias',
60
+ cardHolderName: 'John Doe',
61
+ cardNumber: '5528790000000008',
62
+ expireYear: '2030',
63
+ expireMonth: '12'
64
+ }
65
+ request = {
66
+ locale: Iyzipay::Model::Locale::TR,
67
+ conversationId: '123456789',
68
+ email: 'email@email.com',
69
+ cardUserKey: card['cardUserKey'],
70
+ card: card_information
71
+ }
72
+ card = Iyzipay::Model::Card.new.create(request, @options)
73
+ begin
74
+ $stdout.puts card.inspect
75
+ card = JSON.parse(card)
76
+ expect(card['status']).to eq('success')
77
+ expect(card['locale']).to eq('tr')
78
+ expect(card['systemTime']).not_to be_nil
79
+ expect(card['conversationId']).to eq('123456789')
80
+ expect(card['email']).to eq('email@email.com')
81
+ expect(card['cardUserKey']).to eq(card['cardUserKey'])
82
+ expect(card['cardToken']).to eq(card['cardToken'])
83
+ expect(card['cardAlias']).to eq('card alias')
84
+ expect(card['binNumber']).to eq('552879')
85
+ expect(card['cardType']).to eq('CREDIT_CARD')
86
+ expect(card['cardAssociation']).to eq('MASTER_CARD')
87
+ expect(card['cardFamily']).to eq('Paraf')
88
+ expect(card['cardBankCode']).to eq(12)
89
+ expect(card['cardBankName']).to eq('Halk Bankası')
90
+ rescue
91
+ $stderr.puts 'oops'
92
+ raise
93
+ end
94
+ end
95
+
96
+ it 'should delete card' do
97
+ # create card
98
+ card = Builder::CardBuilder.new.create_card(@options)
99
+
100
+ request = {
101
+ locale: Iyzipay::Model::Locale::TR,
102
+ conversationId: '123456789',
103
+ cardToken: card['cardToken'],
104
+ cardUserKey: card['cardUserKey']
105
+ }
106
+ card = Iyzipay::Model::Card.new.delete(request, @options)
107
+ begin
108
+ $stdout.puts card.inspect
109
+ card = JSON.parse(card)
110
+ expect(card['status']).to eq('success')
111
+ expect(card['locale']).to eq('tr')
112
+ expect(card['systemTime']).not_to be_nil
113
+ expect(card['conversationId']).to eq('123456789')
114
+ rescue
115
+ $stderr.puts 'oops'
116
+ raise
117
+ end
118
+ end
119
+
120
+ it 'should retrieve card' do
121
+ card = Builder::CardBuilder.new.create_card(@options)
122
+
123
+ request = {
124
+ locale: Iyzipay::Model::Locale::TR,
125
+ conversationId: '123456789',
126
+ cardUserKey: card['cardUserKey']
127
+ }
128
+ card_list = Iyzipay::Model::CardList.new.retrieve(request, @options)
129
+ begin
130
+ $stdout.puts card_list.inspect
131
+ card_list = JSON.parse(card_list)
132
+ expect(card_list['status']).to eq('success')
133
+ expect(card_list['locale']).to eq('tr')
134
+ expect(card_list['systemTime']).not_to be_nil
135
+ expect(card_list['conversationId']).to eq('123456789')
136
+ expect(card_list['cardUserKey']).to eq(card['cardUserKey'])
137
+ expect(card_list['cardDetails'][0]['cardToken']).to eq(card['cardToken'])
138
+ expect(card_list['cardDetails'][0]['cardAlias']).to eq('card alias')
139
+ expect(card_list['cardDetails'][0]['binNumber']).to eq('552879')
140
+ expect(card_list['cardDetails'][0]['cardType']).to eq('CREDIT_CARD')
141
+ expect(card_list['cardDetails'][0]['cardAssociation']).to eq('MASTER_CARD')
142
+ expect(card_list['cardDetails'][0]['cardFamily']).to eq('Paraf')
143
+ expect(card_list['cardDetails'][0]['cardBankCode']).to eq(12)
144
+ expect(card_list['cardDetails'][0]['cardBankName']).to eq('Halk Bankası')
145
+ rescue
146
+ $stderr.puts 'oops'
147
+ raise
148
+ end
149
+ end
150
+
151
+ after :each do
152
+ end
153
+ end
@@ -0,0 +1,113 @@
1
+ # coding: utf-8
2
+
3
+ require_relative 'spec_helper'
4
+ require_relative 'builder'
5
+
6
+ RSpec.describe 'Iyzipay' do
7
+ before :all do
8
+ @options = Iyzipay::Options.new
9
+ @options.api_key = SpecOptions::API_KEY
10
+ @options.secret_key = SpecOptions::SECRET_KEY
11
+ @options.base_url = SpecOptions::BASE_URL
12
+ end
13
+
14
+ it 'should initialize checkout form for standard merchant' do
15
+ buyer = {
16
+ id: 'BY789',
17
+ name: 'John',
18
+ surname: 'Doe',
19
+ gsmNumber: '+905350000000',
20
+ email: 'email@email.com',
21
+ identityNumber: '74300864791',
22
+ lastLoginDate: '2015-10-05 12:43:35',
23
+ registrationDate: '2013-04-21 15:12:09',
24
+ registrationAddress: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
25
+ ip: '85.34.78.112',
26
+ city: 'Istanbul',
27
+ country: 'Turkey',
28
+ zipCode: '34732'
29
+ }
30
+ address = {
31
+ contactName: 'Jane Doe',
32
+ city: 'Istanbul',
33
+ country: 'Turkey',
34
+ address: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
35
+ zipCode: '34732'
36
+ }
37
+
38
+ item1 = {
39
+ id: 'BI101',
40
+ name: 'Binocular',
41
+ category1: 'Collectibles',
42
+ category2: 'Accessories',
43
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
44
+ price: '0.3'
45
+ }
46
+ item2 = {
47
+ id: 'BI102',
48
+ name: 'Game code',
49
+ category1: 'Game',
50
+ category2: 'Online Game Items',
51
+ itemType: Iyzipay::Model::BasketItemType::VIRTUAL,
52
+ price: '0.5'
53
+ }
54
+ item3 = {
55
+ id: 'BI103',
56
+ name: 'Usb',
57
+ category1: 'Electronics',
58
+ category2: 'Usb / Cable',
59
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
60
+ price: '0.2'
61
+ }
62
+ request = {
63
+ locale: Iyzipay::Model::Locale::TR,
64
+ conversationId: '123456789',
65
+ price: '1',
66
+ paidPrice: '1.2',
67
+ currency: Iyzipay::Model::Currency::TRY,
68
+ basketId: 'B67832',
69
+ paymentGroup: Iyzipay::Model::PaymentGroup::LISTING,
70
+ callbackUrl: 'https://www.merchant.com/callback',
71
+ enabledInstallments: [2, 3, 6, 9],
72
+ buyer: buyer,
73
+ billingAddress: address,
74
+ shippingAddress: address,
75
+ basketItems: [item1, item2, item3]
76
+ }
77
+ checkout_form_initialize = Iyzipay::Model::CheckoutFormInitialize.new.create(request, @options)
78
+
79
+ begin
80
+ $stdout.puts checkout_form_initialize.inspect
81
+ checkout_form_initialize = JSON.parse(checkout_form_initialize)
82
+ expect(checkout_form_initialize['status']).to eq('success')
83
+ expect(checkout_form_initialize['locale']).to eq('tr')
84
+ expect(checkout_form_initialize['systemTime']).not_to be_nil
85
+ expect(checkout_form_initialize['token']).not_to be_nil
86
+ expect(checkout_form_initialize['checkoutFormContent']).not_to be_nil
87
+ rescue
88
+ $stderr.puts 'oops'
89
+ raise
90
+ end
91
+ end
92
+
93
+ it 'should retrieve checkout form result' do
94
+ # This test needs manual on sandbox environment. So it does not contain any assertions.
95
+ checkout_form_initialize = Builder::CheckoutFormBuilder.new.create_checkout_form_initialize(@options)
96
+
97
+ request = {
98
+ locale: Iyzipay::Model::Locale::TR,
99
+ conversationId: '123456789',
100
+ token: checkout_form_initialize['token']
101
+ }
102
+ checkout_form_payment = Iyzipay::Model::CheckoutForm.new.retrieve(request, @options)
103
+ begin
104
+ $stdout.puts checkout_form_payment.inspect
105
+ rescue
106
+ $stderr.puts 'oops'
107
+ raise
108
+ end
109
+ end
110
+
111
+ after :each do
112
+ end
113
+ end