iyzipay-subscriptions 1.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.
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,28 @@
1
+ # coding: utf-8
2
+
3
+ require_relative 'spec_helper'
4
+
5
+ RSpec.describe 'Iyzipay' do
6
+ before :all do
7
+ @options = Iyzipay::Options.new
8
+ @options.api_key = SpecOptions::API_KEY
9
+ @options.secret_key = SpecOptions::SECRET_KEY
10
+ @options.base_url = SpecOptions::BASE_URL
11
+ end
12
+
13
+ it 'should test api' do
14
+ api_test = Iyzipay::Model::ApiTest.new.retrieve(@options)
15
+ begin
16
+ api_test = JSON.parse(api_test)
17
+ expect(api_test['status']).to eq('success')
18
+ expect(api_test['locale']).to eq('tr')
19
+ expect(api_test['systemTime']).not_to be_nil
20
+ rescue
21
+ $stderr.puts 'oops'
22
+ raise
23
+ end
24
+ end
25
+
26
+ after :each do
27
+ end
28
+ end
@@ -0,0 +1,41 @@
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
+ context 'when create a payment for market place and then approve payment' do
15
+ it 'should approve payment item' do
16
+ sub_merchant = Builder::SubMerchantBuilder.new.create_personal_sub_merchant(@options)
17
+ payment = Builder::PaymentBuilder.new.create_marketplace_payment(@options, sub_merchant['subMerchantKey'])
18
+
19
+ request = {
20
+ locale: Iyzipay::Model::Locale::TR,
21
+ conversationId: '123456789',
22
+ paymentTransactionId: payment['itemTransactions'][0]['paymentTransactionId']
23
+ }
24
+ approval = Iyzipay::Model::Approval.new.create(request, @options)
25
+
26
+ begin
27
+ approval = JSON.parse(approval)
28
+ expect(approval['status']).to eq('success')
29
+ expect(approval['locale']).to eq('tr')
30
+ expect(approval['systemTime']).not_to be_nil
31
+ expect(approval['paymentTransactionId']).to eq(payment['itemTransactions'][0]['paymentTransactionId'])
32
+ rescue
33
+ $stderr.puts 'oops'
34
+ raise
35
+ end
36
+ end
37
+ end
38
+
39
+ after :each do
40
+ end
41
+ end
@@ -0,0 +1,42 @@
1
+ # coding: utf-8
2
+
3
+ require_relative 'spec_helper'
4
+
5
+ RSpec.describe 'Iyzipay' do
6
+ before :all do
7
+ @options = Iyzipay::Options.new
8
+ @options.api_key = SpecOptions::API_KEY
9
+ @options.secret_key = SpecOptions::SECRET_KEY
10
+ @options.base_url = SpecOptions::BASE_URL
11
+ end
12
+
13
+ it 'should retrieve bin number' do
14
+ request = {
15
+ locale: Iyzipay::Model::Locale::TR,
16
+ conversationId: '123456789',
17
+ binNumber: '554960'
18
+ }
19
+ bin_number = Iyzipay::Model::BinNumber.new.retrieve(request, @options)
20
+ begin
21
+ #$stderr.puts bin_number.inspect
22
+ bin_number = JSON.parse(bin_number)
23
+ expect(bin_number['status']).to eq('success')
24
+ expect(bin_number['locale']).to eq('tr')
25
+ expect(bin_number['systemTime']).not_to be_nil
26
+ expect(bin_number['conversationId']).to eq('123456789')
27
+ expect(bin_number['binNumber']).to eq('554960')
28
+ expect(bin_number['cardType']).to eq('CREDIT_CARD')
29
+ expect(bin_number['cardAssociation']).to eq('MASTER_CARD')
30
+ expect(bin_number['cardFamily']).to eq('Bonus')
31
+ expect(bin_number['bankName']).to eq('Garanti Bankası')
32
+ expect(bin_number['bankCode']).to eq(62)
33
+ expect(bin_number['commercial']).to eq(0)
34
+ rescue
35
+ $stderr.puts 'oops'
36
+ raise
37
+ end
38
+ end
39
+
40
+ after :each do
41
+ end
42
+ end
@@ -0,0 +1,91 @@
1
+ # coding: utf-8
2
+
3
+ require_relative 'spec_helper'
4
+
5
+ RSpec.describe 'Iyzipay' do
6
+ before :all do
7
+ @options = Iyzipay::Options.new
8
+ @options.api_key = SpecOptions::API_KEY
9
+ @options.secret_key = SpecOptions::SECRET_KEY
10
+ @options.base_url = SpecOptions::BASE_URL
11
+ end
12
+
13
+ it 'should initialize bkm' do
14
+ buyer = {
15
+ id: 'BY789',
16
+ name: 'John',
17
+ surname: 'Doe',
18
+ gsmNumber: '+905350000000',
19
+ email: 'email@email.com',
20
+ identityNumber: '74300864791',
21
+ lastLoginDate: '2015-10-05 12:43:35',
22
+ registrationDate: '2013-04-21 15:12:09',
23
+ registrationAddress: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
24
+ ip: '85.34.78.112',
25
+ city: 'Istanbul',
26
+ country: 'Turkey',
27
+ zipCode: '34732'
28
+ }
29
+ address = {
30
+ contactName: 'Jane Doe',
31
+ city: 'Istanbul',
32
+ country: 'Turkey',
33
+ address: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
34
+ zipCode: '34732'
35
+ }
36
+
37
+ item1 = {
38
+ id: 'BI101',
39
+ name: 'Binocular',
40
+ category1: 'Collectibles',
41
+ category2: 'Accessories',
42
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
43
+ price: '0.3'
44
+ }
45
+ item2 = {
46
+ id: 'BI102',
47
+ name: 'Game code',
48
+ category1: 'Game',
49
+ category2: 'Online Game Items',
50
+ itemType: Iyzipay::Model::BasketItemType::VIRTUAL,
51
+ price: '0.5'
52
+ }
53
+ item3 = {
54
+ id: 'BI103',
55
+ name: 'Usb',
56
+ category1: 'Electronics',
57
+ category2: 'Usb / Cable',
58
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
59
+ price: '0.2'
60
+ }
61
+ request = {
62
+ locale: Iyzipay::Model::Locale::TR,
63
+ conversationId: '123456789',
64
+ price: '1',
65
+ basketId: 'B67832',
66
+ paymentGroup: Iyzipay::Model::PaymentGroup::LISTING,
67
+ callbackUrl: 'https://www.merchant.com/callback',
68
+ enabledInstallments: [2, 3, 6, 9],
69
+ buyer: buyer,
70
+ billingAddress: address,
71
+ shippingAddress: address,
72
+ basketItems: [item1, item2, item3]
73
+ }
74
+ bkm_initialize = Iyzipay::Model::BkmInitialize.new.create(request, @options)
75
+
76
+ begin
77
+ bkm_initialize_dict = JSON.parse(bkm_initialize)
78
+
79
+ unless bkm_initialize_dict['htmlContent'].nil?
80
+ expect(Base64.decode64(bkm_initialize_dict['htmlContent'])).not_to be_nil
81
+ end
82
+ rescue
83
+ $stderr.puts 'oops'
84
+ raise
85
+ end
86
+ end
87
+
88
+
89
+ after :each do
90
+ end
91
+ end
@@ -0,0 +1,9 @@
1
+ module Builder
2
+ end
3
+
4
+ require_relative 'builder/payment_builder'
5
+ require_relative 'builder/sub_merchant_builder'
6
+ require_relative 'builder/checkout_form_builder'
7
+ require_relative 'builder/approval_builder'
8
+ require_relative 'builder/card_builder'
9
+ require_relative 'builder/pecco_initialize_builder'
@@ -0,0 +1,18 @@
1
+ # coding: utf-8
2
+
3
+ require_relative '../spec_helper'
4
+
5
+ module Builder
6
+ class ApprovalBuilder
7
+
8
+ def create_approval(options, payment_transaction_id)
9
+ request = {
10
+ locale: Iyzipay::Model::Locale::TR,
11
+ conversationId: '123456789',
12
+ paymentTransactionId: payment_transaction_id
13
+ }
14
+ approval = Iyzipay::Model::Approval.new.create(request, options)
15
+ JSON.parse(approval)
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,27 @@
1
+ # coding: utf-8
2
+
3
+ require_relative '../spec_helper'
4
+
5
+ module Builder
6
+ class CardBuilder
7
+
8
+ def create_card(options)
9
+ card_information = {
10
+ cardAlias: 'card alias',
11
+ cardHolderName: 'John Doe',
12
+ cardNumber: '5528790000000008',
13
+ expireYear: '2030',
14
+ expireMonth: '12'
15
+ }
16
+ request = {
17
+ locale: Iyzipay::Model::Locale::TR,
18
+ conversationId: '123456789',
19
+ email: 'email@email.com',
20
+ externalId: 'external id',
21
+ card: card_information
22
+ }
23
+ card = Iyzipay::Model::Card.new.create(request, options)
24
+ JSON.parse(card)
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,75 @@
1
+ # coding: utf-8
2
+
3
+ require_relative '../spec_helper'
4
+
5
+ module Builder
6
+ class CheckoutFormBuilder
7
+
8
+ def create_checkout_form_initialize(options)
9
+ buyer = {
10
+ id: 'BY789',
11
+ name: 'John',
12
+ surname: 'Doe',
13
+ gsmNumber: '+905350000000',
14
+ email: 'email@email.com',
15
+ identityNumber: '74300864791',
16
+ lastLoginDate: '2015-10-05 12:43:35',
17
+ registrationDate: '2013-04-21 15:12:09',
18
+ registrationAddress: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
19
+ ip: '85.34.78.112',
20
+ city: 'Istanbul',
21
+ country: 'Turkey',
22
+ zipCode: '34732'
23
+ }
24
+ address = {
25
+ contactName: 'Jane Doe',
26
+ city: 'Istanbul',
27
+ country: 'Turkey',
28
+ address: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
29
+ zipCode: '34732'
30
+ }
31
+
32
+ item1 = {
33
+ id: 'BI101',
34
+ name: 'Binocular',
35
+ category1: 'Collectibles',
36
+ category2: 'Accessories',
37
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
38
+ price: '0.3'
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: '0.5'
47
+ }
48
+ item3 = {
49
+ id: 'BI103',
50
+ name: 'Usb',
51
+ category1: 'Electronics',
52
+ category2: 'Usb / Cable',
53
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
54
+ price: '0.2'
55
+ }
56
+ request = {
57
+ locale: Iyzipay::Model::Locale::TR,
58
+ conversationId: '123456789',
59
+ price: '1',
60
+ paidPrice: '1.2',
61
+ currency: Iyzipay::Model::Currency::TRY,
62
+ basketId: 'B67832',
63
+ paymentGroup: Iyzipay::Model::PaymentGroup::LISTING,
64
+ callbackUrl: 'https://www.merchant.com/callback',
65
+ enabledInstallments: [2, 3, 6, 9],
66
+ buyer: buyer,
67
+ billingAddress: address,
68
+ shippingAddress: address,
69
+ basketItems: [item1, item2, item3]
70
+ }
71
+ checkout_form_initialize = Iyzipay::Model::CheckoutFormInitialize.new.create(request, options)
72
+ JSON.parse(checkout_form_initialize)
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,167 @@
1
+ # coding: utf-8
2
+
3
+ require_relative '../spec_helper'
4
+
5
+ module Builder
6
+ class PaymentBuilder
7
+
8
+ def create_marketplace_payment(options, sub_merchant_key)
9
+ payment_card = {
10
+ cardHolderName: 'John Doe',
11
+ cardNumber: '5528790000000008',
12
+ expireYear: '2030',
13
+ expireMonth: '12',
14
+ cvc: '123',
15
+ registerCard: 0
16
+ }
17
+ buyer = {
18
+ id: 'BY789',
19
+ name: 'John',
20
+ surname: 'Doe',
21
+ gsmNumber: '+905350000000',
22
+ email: 'email@email.com',
23
+ identityNumber: '74300864791',
24
+ lastLoginDate: '2015-10-05 12:43:35',
25
+ registrationDate: '2013-04-21 15:12:09',
26
+ registrationAddress: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
27
+ ip: '85.34.78.112',
28
+ city: 'Istanbul',
29
+ country: 'Turkey',
30
+ zipCode: '34732'
31
+ }
32
+ address = {
33
+ contactName: 'Jane Doe',
34
+ city: 'Istanbul',
35
+ country: 'Turkey',
36
+ address: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
37
+ zipCode: '34732'
38
+ }
39
+
40
+ item1 = {
41
+ id: 'BI101',
42
+ name: 'Binocular',
43
+ category1: 'Collectibles',
44
+ category2: 'Accessories',
45
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
46
+ subMerchantKey: sub_merchant_key,
47
+ subMerchantPrice: '0.27',
48
+ price: '0.3'
49
+ }
50
+ item2 = {
51
+ id: 'BI102',
52
+ name: 'Game code',
53
+ category1: 'Game',
54
+ category2: 'Online Game Items',
55
+ itemType: Iyzipay::Model::BasketItemType::VIRTUAL,
56
+ subMerchantKey: sub_merchant_key,
57
+ subMerchantPrice: '0.42',
58
+ price: '0.5'
59
+ }
60
+ item3 = {
61
+ id: 'BI103',
62
+ name: 'Usb',
63
+ category1: 'Electronics',
64
+ category2: 'Usb / Cable',
65
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
66
+ subMerchantKey: sub_merchant_key,
67
+ subMerchantPrice: '0.18',
68
+ price: '0.2'
69
+ }
70
+ request = {
71
+ locale: Iyzipay::Model::Locale::TR,
72
+ conversationId: '123456789',
73
+ price: '1',
74
+ paidPrice: '1.1',
75
+ currency: Iyzipay::Model::Currency::TRY,
76
+ installment: 1,
77
+ basketId: 'B67832',
78
+ paymentChannel: Iyzipay::Model::PaymentChannel::WEB,
79
+ paymentGroup: Iyzipay::Model::PaymentGroup::PRODUCT,
80
+ paymentCard: payment_card,
81
+ buyer: buyer,
82
+ billingAddress: address,
83
+ shippingAddress: address,
84
+ basketItems: [item1, item2, item3]
85
+ }
86
+ payment = Iyzipay::Model::Payment.new.create(request, options)
87
+ JSON.parse(payment)
88
+ end
89
+
90
+ def create_standard_listing_payment(options)
91
+ payment_card = {
92
+ cardHolderName: 'John Doe',
93
+ cardNumber: '5528790000000008',
94
+ expireYear: '2030',
95
+ expireMonth: '12',
96
+ cvc: '123',
97
+ registerCard: 0
98
+ }
99
+ buyer = {
100
+ id: 'BY789',
101
+ name: 'John',
102
+ surname: 'Doe',
103
+ gsmNumber: '+905350000000',
104
+ email: 'email@email.com',
105
+ identityNumber: '74300864791',
106
+ lastLoginDate: '2015-10-05 12:43:35',
107
+ registrationDate: '2013-04-21 15:12:09',
108
+ registrationAddress: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
109
+ ip: '85.34.78.112',
110
+ city: 'Istanbul',
111
+ country: 'Turkey',
112
+ zipCode: '34732'
113
+ }
114
+ address = {
115
+ contactName: 'Jane Doe',
116
+ city: 'Istanbul',
117
+ country: 'Turkey',
118
+ address: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
119
+ zipCode: '34732'
120
+ }
121
+
122
+ item1 = {
123
+ id: 'BI101',
124
+ name: 'Binocular',
125
+ category1: 'Collectibles',
126
+ category2: 'Accessories',
127
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
128
+ price: '0.3'
129
+ }
130
+ item2 = {
131
+ id: 'BI102',
132
+ name: 'Game code',
133
+ category1: 'Game',
134
+ category2: 'Online Game Items',
135
+ itemType: Iyzipay::Model::BasketItemType::VIRTUAL,
136
+ price: '0.5'
137
+ }
138
+ item3 = {
139
+ id: 'BI103',
140
+ name: 'Usb',
141
+ category1: 'Electronics',
142
+ category2: 'Usb / Cable',
143
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
144
+ price: '0.2'
145
+ }
146
+ request = {
147
+ locale: Iyzipay::Model::Locale::TR,
148
+ conversationId: '123456789',
149
+ price: '1',
150
+ paidPrice: '1.1',
151
+ currency: Iyzipay::Model::Currency::TRY,
152
+ installment: 1,
153
+ basketId: 'B67832',
154
+ paymentChannel: Iyzipay::Model::PaymentChannel::WEB,
155
+ paymentGroup: Iyzipay::Model::PaymentGroup::LISTING,
156
+ paymentCard: payment_card,
157
+ buyer: buyer,
158
+ billingAddress: address,
159
+ shippingAddress: address,
160
+ basketItems: [item1, item2, item3]
161
+ }
162
+ payment = Iyzipay::Model::Payment.new.create(request, options)
163
+ JSON.parse(payment)
164
+ end
165
+
166
+ end
167
+ end