bk-apimatic-sdk 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 (140) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +203 -0
  4. data/bin/console +15 -0
  5. data/lib/boku_direct_payments_api/api_helper.rb +10 -0
  6. data/lib/boku_direct_payments_api/client.rb +99 -0
  7. data/lib/boku_direct_payments_api/configuration.rb +168 -0
  8. data/lib/boku_direct_payments_api/controllers/account_resources_controller.rb +45 -0
  9. data/lib/boku_direct_payments_api/controllers/base_controller.rb +60 -0
  10. data/lib/boku_direct_payments_api/controllers/charge_controller.rb +247 -0
  11. data/lib/boku_direct_payments_api/controllers/config_resources_controller.rb +50 -0
  12. data/lib/boku_direct_payments_api/controllers/consumer_registration_controller.rb +428 -0
  13. data/lib/boku_direct_payments_api/controllers/forex_controller.rb +38 -0
  14. data/lib/boku_direct_payments_api/controllers/fund_check_controller.rb +39 -0
  15. data/lib/boku_direct_payments_api/controllers/refund_controller.rb +80 -0
  16. data/lib/boku_direct_payments_api/controllers/seller_of_record_controller.rb +69 -0
  17. data/lib/boku_direct_payments_api/exceptions/api_exception.rb +21 -0
  18. data/lib/boku_direct_payments_api/http/http_call_back.rb +10 -0
  19. data/lib/boku_direct_payments_api/http/http_method_enum.rb +10 -0
  20. data/lib/boku_direct_payments_api/http/http_request.rb +10 -0
  21. data/lib/boku_direct_payments_api/http/http_response.rb +10 -0
  22. data/lib/boku_direct_payments_api/http/proxy_settings.rb +22 -0
  23. data/lib/boku_direct_payments_api/models/account_profile.rb +122 -0
  24. data/lib/boku_direct_payments_api/models/account_profile_attribute.rb +90 -0
  25. data/lib/boku_direct_payments_api/models/account_profile_request.rb +131 -0
  26. data/lib/boku_direct_payments_api/models/account_profile_response.rb +104 -0
  27. data/lib/boku_direct_payments_api/models/account_profile_response_record.rb +142 -0
  28. data/lib/boku_direct_payments_api/models/account_profile_result_status_enum.rb +47 -0
  29. data/lib/boku_direct_payments_api/models/account_profile_selector.rb +132 -0
  30. data/lib/boku_direct_payments_api/models/base_model.rb +110 -0
  31. data/lib/boku_direct_payments_api/models/begin_single_charge_request.rb +360 -0
  32. data/lib/boku_direct_payments_api/models/begin_single_charge_request_hosted.rb +110 -0
  33. data/lib/boku_direct_payments_api/models/begin_single_charge_request_qr_info.rb +74 -0
  34. data/lib/boku_direct_payments_api/models/begin_single_charge_response.rb +254 -0
  35. data/lib/boku_direct_payments_api/models/begin_single_charge_response_hosted.rb +90 -0
  36. data/lib/boku_direct_payments_api/models/begin_single_charge_response_qr_info.rb +85 -0
  37. data/lib/boku_direct_payments_api/models/business_details.rb +209 -0
  38. data/lib/boku_direct_payments_api/models/cancel_optin_request.rb +123 -0
  39. data/lib/boku_direct_payments_api/models/cancel_optin_response.rb +143 -0
  40. data/lib/boku_direct_payments_api/models/carrier_gw.rb +82 -0
  41. data/lib/boku_direct_payments_api/models/charge.rb +288 -0
  42. data/lib/boku_direct_payments_api/models/charge_msisdn_request.rb +233 -0
  43. data/lib/boku_direct_payments_api/models/charge_plus_optin_request.rb +390 -0
  44. data/lib/boku_direct_payments_api/models/charge_plus_optin_request_hosted.rb +96 -0
  45. data/lib/boku_direct_payments_api/models/charge_plus_optin_response.rb +278 -0
  46. data/lib/boku_direct_payments_api/models/charge_plus_optin_response_hosted.rb +75 -0
  47. data/lib/boku_direct_payments_api/models/charge_request.rb +332 -0
  48. data/lib/boku_direct_payments_api/models/charge_response.rb +253 -0
  49. data/lib/boku_direct_payments_api/models/charge_status_enum.rb +43 -0
  50. data/lib/boku_direct_payments_api/models/check_eligibility_request.rb +117 -0
  51. data/lib/boku_direct_payments_api/models/check_eligibility_response.rb +116 -0
  52. data/lib/boku_direct_payments_api/models/client_call.rb +91 -0
  53. data/lib/boku_direct_payments_api/models/confirm_optin_request.rb +141 -0
  54. data/lib/boku_direct_payments_api/models/confirm_optin_response.rb +211 -0
  55. data/lib/boku_direct_payments_api/models/confirm_verify_device_request.rb +161 -0
  56. data/lib/boku_direct_payments_api/models/confirm_verify_device_response.rb +137 -0
  57. data/lib/boku_direct_payments_api/models/eligibility_status_enum.rb +40 -0
  58. data/lib/boku_direct_payments_api/models/forex_request.rb +97 -0
  59. data/lib/boku_direct_payments_api/models/forex_response.rb +127 -0
  60. data/lib/boku_direct_payments_api/models/fund_check_request.rb +132 -0
  61. data/lib/boku_direct_payments_api/models/fund_check_response.rb +89 -0
  62. data/lib/boku_direct_payments_api/models/invalid_request_field.rb +93 -0
  63. data/lib/boku_direct_payments_api/models/mandate_constraint.rb +92 -0
  64. data/lib/boku_direct_payments_api/models/mandate_period_enum.rb +48 -0
  65. data/lib/boku_direct_payments_api/models/mcc_mnc_mapping.rb +85 -0
  66. data/lib/boku_direct_payments_api/models/method_enum.rb +36 -0
  67. data/lib/boku_direct_payments_api/models/msisdn_network_request.rb +97 -0
  68. data/lib/boku_direct_payments_api/models/msisdn_network_response.rb +116 -0
  69. data/lib/boku_direct_payments_api/models/network_info.rb +84 -0
  70. data/lib/boku_direct_payments_api/models/network_info_network.rb +168 -0
  71. data/lib/boku_direct_payments_api/models/optin_accept_networks.rb +87 -0
  72. data/lib/boku_direct_payments_api/models/optin_info.rb +99 -0
  73. data/lib/boku_direct_payments_api/models/optin_info_optin_network.rb +104 -0
  74. data/lib/boku_direct_payments_api/models/optin_info_optin_types.rb +128 -0
  75. data/lib/boku_direct_payments_api/models/optin_network.rb +115 -0
  76. data/lib/boku_direct_payments_api/models/optin_purpose_enum.rb +62 -0
  77. data/lib/boku_direct_payments_api/models/optin_request.rb +338 -0
  78. data/lib/boku_direct_payments_api/models/optin_request_hosted.rb +110 -0
  79. data/lib/boku_direct_payments_api/models/optin_request_qr_info.rb +75 -0
  80. data/lib/boku_direct_payments_api/models/optin_response.rb +220 -0
  81. data/lib/boku_direct_payments_api/models/optin_response_hosted.rb +87 -0
  82. data/lib/boku_direct_payments_api/models/optin_response_qr_info.rb +85 -0
  83. data/lib/boku_direct_payments_api/models/optin_state.rb +164 -0
  84. data/lib/boku_direct_payments_api/models/optin_status_enum.rb +51 -0
  85. data/lib/boku_direct_payments_api/models/optin_terms.rb +214 -0
  86. data/lib/boku_direct_payments_api/models/optin_type_enum.rb +45 -0
  87. data/lib/boku_direct_payments_api/models/payment_method_status_enum.rb +44 -0
  88. data/lib/boku_direct_payments_api/models/period.rb +89 -0
  89. data/lib/boku_direct_payments_api/models/period_unit_enum.rb +46 -0
  90. data/lib/boku_direct_payments_api/models/query_charge_request.rb +149 -0
  91. data/lib/boku_direct_payments_api/models/query_charge_response.rb +101 -0
  92. data/lib/boku_direct_payments_api/models/query_optin_request.rb +104 -0
  93. data/lib/boku_direct_payments_api/models/query_optin_response.rb +129 -0
  94. data/lib/boku_direct_payments_api/models/query_refund_request.rb +122 -0
  95. data/lib/boku_direct_payments_api/models/query_refund_response.rb +101 -0
  96. data/lib/boku_direct_payments_api/models/refund.rb +249 -0
  97. data/lib/boku_direct_payments_api/models/refund_charge_notification.rb +88 -0
  98. data/lib/boku_direct_payments_api/models/refund_charge_request.rb +231 -0
  99. data/lib/boku_direct_payments_api/models/refund_charge_response.rb +203 -0
  100. data/lib/boku_direct_payments_api/models/refund_status_enum.rb +43 -0
  101. data/lib/boku_direct_payments_api/models/refund_type_enum.rb +36 -0
  102. data/lib/boku_direct_payments_api/models/register_payment_method_request.rb +152 -0
  103. data/lib/boku_direct_payments_api/models/register_payment_method_response.rb +172 -0
  104. data/lib/boku_direct_payments_api/models/register_seller_of_record_request.rb +118 -0
  105. data/lib/boku_direct_payments_api/models/register_seller_of_record_response.rb +156 -0
  106. data/lib/boku_direct_payments_api/models/resend_otp_request.rb +167 -0
  107. data/lib/boku_direct_payments_api/models/resend_otp_response.rb +118 -0
  108. data/lib/boku_direct_payments_api/models/result.rb +154 -0
  109. data/lib/boku_direct_payments_api/models/result_status_enum.rb +36 -0
  110. data/lib/boku_direct_payments_api/models/reversal.rb +89 -0
  111. data/lib/boku_direct_payments_api/models/reverse_charge_request.rb +104 -0
  112. data/lib/boku_direct_payments_api/models/reverse_charge_response.rb +157 -0
  113. data/lib/boku_direct_payments_api/models/seller_of_record.rb +76 -0
  114. data/lib/boku_direct_payments_api/models/seller_of_record_status_enum.rb +44 -0
  115. data/lib/boku_direct_payments_api/models/send_sms.rb +89 -0
  116. data/lib/boku_direct_payments_api/models/settlement.rb +126 -0
  117. data/lib/boku_direct_payments_api/models/silent_mo.rb +78 -0
  118. data/lib/boku_direct_payments_api/models/status_enum.rb +40 -0
  119. data/lib/boku_direct_payments_api/models/subscription.rb +105 -0
  120. data/lib/boku_direct_payments_api/models/timeout.rb +75 -0
  121. data/lib/boku_direct_payments_api/models/type_enum.rb +36 -0
  122. data/lib/boku_direct_payments_api/models/validate_optin_request.rb +179 -0
  123. data/lib/boku_direct_payments_api/models/validate_optin_response.rb +195 -0
  124. data/lib/boku_direct_payments_api/models/verify_device_request.rb +135 -0
  125. data/lib/boku_direct_payments_api/models/verify_device_response.rb +137 -0
  126. data/lib/boku_direct_payments_api/utilities/date_time_helper.rb +11 -0
  127. data/lib/boku_direct_payments_api/utilities/file_wrapper.rb +28 -0
  128. data/lib/boku_direct_payments_api/utilities/xml_utilities.rb +12 -0
  129. data/lib/boku_direct_payments_api.rb +166 -0
  130. data/test/controllers/controller_test_base.rb +23 -0
  131. data/test/controllers/test_account_resources_controller.rb +44 -0
  132. data/test/controllers/test_charge_controller.rb +159 -0
  133. data/test/controllers/test_config_resources_controller.rb +47 -0
  134. data/test/controllers/test_consumer_registration_controller.rb +262 -0
  135. data/test/controllers/test_forex_controller.rb +40 -0
  136. data/test/controllers/test_fund_check_controller.rb +41 -0
  137. data/test/controllers/test_refund_controller.rb +76 -0
  138. data/test/controllers/test_seller_of_record_controller.rb +72 -0
  139. data/test/http_response_catcher.rb +19 -0
  140. metadata +255 -0
@@ -0,0 +1,12 @@
1
+ # boku_direct_payments_api
2
+ #
3
+ # This file was automatically generated by
4
+ # APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ require 'nokogiri'
7
+
8
+ module BokuDirectPaymentsApi
9
+ # A utility class for handling xml parsing.
10
+ class XmlUtilities < CoreLibrary::XmlHelper
11
+ end
12
+ end
@@ -0,0 +1,166 @@
1
+ # boku_direct_payments_api
2
+ #
3
+ # This file was automatically generated by
4
+ # APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ require 'date'
7
+ require 'json'
8
+
9
+ require 'apimatic_core_interfaces'
10
+ require 'apimatic_core'
11
+ require 'apimatic_faraday_client_adapter'
12
+
13
+ require_relative 'boku_direct_payments_api/api_helper'
14
+ require_relative 'boku_direct_payments_api/client'
15
+
16
+ # Utilities
17
+ require_relative 'boku_direct_payments_api/utilities/file_wrapper'
18
+ require_relative 'boku_direct_payments_api/utilities/date_time_helper'
19
+ require_relative 'boku_direct_payments_api/utilities/xml_utilities'
20
+
21
+ # Http
22
+ require_relative 'boku_direct_payments_api/http/http_call_back'
23
+ require_relative 'boku_direct_payments_api/http/http_method_enum'
24
+ require_relative 'boku_direct_payments_api/http/http_request'
25
+ require_relative 'boku_direct_payments_api/http/http_response'
26
+ require_relative 'boku_direct_payments_api/http/proxy_settings'
27
+
28
+
29
+
30
+ # Models
31
+ require_relative 'boku_direct_payments_api/models/base_model'
32
+ require_relative 'boku_direct_payments_api/models/account_profile'
33
+ require_relative 'boku_direct_payments_api/models/account_profile_attribute'
34
+ require_relative 'boku_direct_payments_api/models/account_profile_response'
35
+ require_relative 'boku_direct_payments_api/models/' \
36
+ 'account_profile_response_record'
37
+ require_relative 'boku_direct_payments_api/models/account_profile_selector'
38
+ require_relative 'boku_direct_payments_api/models/invalid_request_field'
39
+ require_relative 'boku_direct_payments_api/models/optin_state'
40
+ require_relative 'boku_direct_payments_api/models/result'
41
+ require_relative 'boku_direct_payments_api/models/account_profile_request'
42
+ require_relative 'boku_direct_payments_api/models/begin_single_charge_response'
43
+ require_relative 'boku_direct_payments_api/models/' \
44
+ 'begin_single_charge_response_hosted'
45
+ require_relative 'boku_direct_payments_api/models/' \
46
+ 'begin_single_charge_response_qr_info'
47
+ require_relative 'boku_direct_payments_api/models/seller_of_record'
48
+ require_relative 'boku_direct_payments_api/models/settlement'
49
+ require_relative 'boku_direct_payments_api/models/begin_single_charge_request'
50
+ require_relative 'boku_direct_payments_api/models/' \
51
+ 'begin_single_charge_request_hosted'
52
+ require_relative 'boku_direct_payments_api/models/' \
53
+ 'begin_single_charge_request_qr_info'
54
+ require_relative 'boku_direct_payments_api/models/timeout'
55
+ require_relative 'boku_direct_payments_api/models/charge_response'
56
+ require_relative 'boku_direct_payments_api/models/charge_request'
57
+ require_relative 'boku_direct_payments_api/models/period'
58
+ require_relative 'boku_direct_payments_api/models/subscription'
59
+ require_relative 'boku_direct_payments_api/models/charge_msisdn_request'
60
+ require_relative 'boku_direct_payments_api/models/charge_plus_optin_response'
61
+ require_relative 'boku_direct_payments_api/models/' \
62
+ 'charge_plus_optin_response_hosted'
63
+ require_relative 'boku_direct_payments_api/models/charge_plus_optin_request'
64
+ require_relative 'boku_direct_payments_api/models/' \
65
+ 'charge_plus_optin_request_hosted'
66
+ require_relative 'boku_direct_payments_api/models/mandate_constraint'
67
+ require_relative 'boku_direct_payments_api/models/optin_terms'
68
+ require_relative 'boku_direct_payments_api/models/forex_response'
69
+ require_relative 'boku_direct_payments_api/models/forex_request'
70
+ require_relative 'boku_direct_payments_api/models/charge'
71
+ require_relative 'boku_direct_payments_api/models/query_charge_response'
72
+ require_relative 'boku_direct_payments_api/models/reversal'
73
+ require_relative 'boku_direct_payments_api/models/query_charge_request'
74
+ require_relative 'boku_direct_payments_api/models/query_refund_response'
75
+ require_relative 'boku_direct_payments_api/models/refund'
76
+ require_relative 'boku_direct_payments_api/models/query_refund_request'
77
+ require_relative 'boku_direct_payments_api/models/refund_charge_response'
78
+ require_relative 'boku_direct_payments_api/models/refund_charge_notification'
79
+ require_relative 'boku_direct_payments_api/models/refund_charge_request'
80
+ require_relative 'boku_direct_payments_api/models/reverse_charge_response'
81
+ require_relative 'boku_direct_payments_api/models/reverse_charge_request'
82
+ require_relative 'boku_direct_payments_api/models/fund_check_response'
83
+ require_relative 'boku_direct_payments_api/models/fund_check_request'
84
+ require_relative 'boku_direct_payments_api/models/mcc_mnc_mapping'
85
+ require_relative 'boku_direct_payments_api/models/network_info'
86
+ require_relative 'boku_direct_payments_api/models/network_info_network'
87
+ require_relative 'boku_direct_payments_api/models/cancel_optin_response'
88
+ require_relative 'boku_direct_payments_api/models/cancel_optin_request'
89
+ require_relative 'boku_direct_payments_api/models/check_eligibility_response'
90
+ require_relative 'boku_direct_payments_api/models/check_eligibility_request'
91
+ require_relative 'boku_direct_payments_api/models/confirm_optin_response'
92
+ require_relative 'boku_direct_payments_api/models/confirm_optin_request'
93
+ require_relative 'boku_direct_payments_api/models/' \
94
+ 'confirm_verify_device_response'
95
+ require_relative 'boku_direct_payments_api/models/confirm_verify_device_request'
96
+ require_relative 'boku_direct_payments_api/models/msisdn_network_response'
97
+ require_relative 'boku_direct_payments_api/models/msisdn_network_request'
98
+ require_relative 'boku_direct_payments_api/models/carrier_gw'
99
+ require_relative 'boku_direct_payments_api/models/client_call'
100
+ require_relative 'boku_direct_payments_api/models/optin_info'
101
+ require_relative 'boku_direct_payments_api/models/optin_info_optin_network'
102
+ require_relative 'boku_direct_payments_api/models/optin_info_optin_types'
103
+ require_relative 'boku_direct_payments_api/models/send_sms'
104
+ require_relative 'boku_direct_payments_api/models/silent_mo'
105
+ require_relative 'boku_direct_payments_api/models/optin_response'
106
+ require_relative 'boku_direct_payments_api/models/optin_response_hosted'
107
+ require_relative 'boku_direct_payments_api/models/optin_response_qr_info'
108
+ require_relative 'boku_direct_payments_api/models/optin_accept_networks'
109
+ require_relative 'boku_direct_payments_api/models/optin_network'
110
+ require_relative 'boku_direct_payments_api/models/optin_request'
111
+ require_relative 'boku_direct_payments_api/models/optin_request_hosted'
112
+ require_relative 'boku_direct_payments_api/models/optin_request_qr_info'
113
+ require_relative 'boku_direct_payments_api/models/query_optin_response'
114
+ require_relative 'boku_direct_payments_api/models/query_optin_request'
115
+ require_relative 'boku_direct_payments_api/models/resend_otp_response'
116
+ require_relative 'boku_direct_payments_api/models/resend_otp_request'
117
+ require_relative 'boku_direct_payments_api/models/validate_optin_response'
118
+ require_relative 'boku_direct_payments_api/models/validate_optin_request'
119
+ require_relative 'boku_direct_payments_api/models/verify_device_response'
120
+ require_relative 'boku_direct_payments_api/models/verify_device_request'
121
+ require_relative 'boku_direct_payments_api/models/' \
122
+ 'register_payment_method_response'
123
+ require_relative 'boku_direct_payments_api/models/' \
124
+ 'register_payment_method_request'
125
+ require_relative 'boku_direct_payments_api/models/' \
126
+ 'register_seller_of_record_response'
127
+ require_relative 'boku_direct_payments_api/models/business_details'
128
+ require_relative 'boku_direct_payments_api/models/' \
129
+ 'register_seller_of_record_request'
130
+ require_relative 'boku_direct_payments_api/models/' \
131
+ 'account_profile_result_status_enum'
132
+ require_relative 'boku_direct_payments_api/models/charge_status_enum'
133
+ require_relative 'boku_direct_payments_api/models/eligibility_status_enum'
134
+ require_relative 'boku_direct_payments_api/models/mandate_period_enum'
135
+ require_relative 'boku_direct_payments_api/models/method_enum'
136
+ require_relative 'boku_direct_payments_api/models/optin_type_enum'
137
+ require_relative 'boku_direct_payments_api/models/optin_purpose_enum'
138
+ require_relative 'boku_direct_payments_api/models/optin_status_enum'
139
+ require_relative 'boku_direct_payments_api/models/payment_method_status_enum'
140
+ require_relative 'boku_direct_payments_api/models/period_unit_enum'
141
+ require_relative 'boku_direct_payments_api/models/refund_type_enum'
142
+ require_relative 'boku_direct_payments_api/models/refund_status_enum'
143
+ require_relative 'boku_direct_payments_api/models/result_status_enum'
144
+ require_relative 'boku_direct_payments_api/models/seller_of_record_status_enum'
145
+ require_relative 'boku_direct_payments_api/models/status_enum'
146
+ require_relative 'boku_direct_payments_api/models/type_enum'
147
+
148
+ # Exceptions
149
+ require_relative 'boku_direct_payments_api/exceptions/api_exception'
150
+
151
+ require_relative 'boku_direct_payments_api/configuration'
152
+
153
+ # Controllers
154
+ require_relative 'boku_direct_payments_api/controllers/base_controller'
155
+ require_relative 'boku_direct_payments_api/controllers/' \
156
+ 'consumer_registration_controller'
157
+ require_relative 'boku_direct_payments_api/controllers/charge_controller'
158
+ require_relative 'boku_direct_payments_api/controllers/refund_controller'
159
+ require_relative 'boku_direct_payments_api/controllers/' \
160
+ 'account_resources_controller'
161
+ require_relative 'boku_direct_payments_api/controllers/forex_controller'
162
+ require_relative 'boku_direct_payments_api/controllers/fund_check_controller'
163
+ require_relative 'boku_direct_payments_api/controllers/' \
164
+ 'config_resources_controller'
165
+ require_relative 'boku_direct_payments_api/controllers/' \
166
+ 'seller_of_record_controller'
@@ -0,0 +1,23 @@
1
+ # boku_direct_payments_api
2
+ #
3
+ # This file was automatically generated by
4
+ # APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ require 'json'
7
+ require 'minitest/autorun'
8
+ require 'minitest/hell'
9
+ require 'minitest/pride'
10
+ require 'minitest/proveit'
11
+ require 'boku_direct_payments_api'
12
+ require_relative '../http_response_catcher'
13
+
14
+ class ControllerTestBase < Minitest::Test
15
+ parallelize_me!
16
+ include BokuDirectPaymentsApi
17
+ include CoreLibrary
18
+
19
+ # Initializes the base test controller
20
+ def setup_class
21
+ @client = Client.from_env(http_callback: HttpResponseCatcher.new)
22
+ end
23
+ end
@@ -0,0 +1,44 @@
1
+ # boku_direct_payments_api
2
+ #
3
+ # This file was automatically generated by
4
+ # APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ require_relative 'controller_test_base'
7
+
8
+ class AccountResourcesControllerTest < ControllerTestBase
9
+ # Called only once for the class before any test has executed
10
+ def setup
11
+ setup_class
12
+ @controller = @client.account_resources
13
+ @response_catcher = @controller.http_call_back
14
+ end
15
+
16
+ # **DISCLAIMER: This API or element is use-case specific and not needed for generic usage of our payment product. Please disregard unless otherwise directed to include in your integration.**
17
+ #
18
+ #The account profile is designed to be a batch API (i.e. each call can request and return multiple account-profile records) but it can also be used for single account-profile record requests.
19
+ #
20
+ #For each input `selector` element in the request, there is always exactly one `record` element in the response even if no corresponding account profile was found. Each `record` element in the response contains the exact `selector` element from the request that was used to process that record. The ordering of elements in the response always corresponds directly to the ordering of elements in the request, i.e. response.records[42].selector equals request.selectors[42].
21
+ def test_get_optin_account_profile
22
+ # Parameters for the API call
23
+ body = AccountProfileRequest.from_hash(APIHelper.json_deserialize(
24
+ '{"merchant-id":"gatewaymerchant","country":"GB","include-carrier-data":'\
25
+ 'true,"selectors":[{"optin-id":"535763050955802561:US"},{"optin-id":"535'\
26
+ '763059545737153:US"}]}', false))
27
+
28
+ # Perform the API call through the SDK function
29
+ result = @controller.get_optin_account_profile(body)
30
+
31
+ # Test response code
32
+ assert_equal(200, @response_catcher.response.status_code)
33
+ # Test headers
34
+ expected_headers = {}
35
+ expected_headers['content-type'] = 'application/xml'
36
+
37
+ assert(ComparisonHelper.match_headers(expected_headers, @response_catcher.response.headers))
38
+
39
+ # Test whether the captured response is as we expected
40
+ refute_nil(result)
41
+ assert_equal("{\r\n \"result\": {\r\n \"reason-code\": 0,\r\n \"message\": \"Operation Successful\",\r\n \"retriable\": false,\r\n \"status\": \"OK\"\r\n },\r\n \"records\": [\r\n {\r\n \"selector\": {\r\n \"optin-id\": \"EnSzVQAAACRERQAAAAAAAA\"\r\n },\r\n \"result\": \"ok\",\r\n \"optin-id\": \"EnSzVQAAACRERQAAAAAAAA\",\r\n \"optin-state\": {\r\n \"optin-status\": \"active\",\r\n \"network-id\": \"62f270\",\r\n \"msisdn\": \"4915111240002\",\r\n \"msisdn-tail\": \"0002\",\r\n \"country\": \"GB\"\r\n },\r\n \"account-profile\": {\r\n \"local-data\": [\r\n {\r\n \"key\": \"successful-transaction-value\"\r\n },\r\n {\r\n \"key\": \"successful-transaction\"\r\n },\r\n {\r\n \"key\": \"account-blacklisted\"\r\n },\r\n {\r\n \"key\": \"integrator-other-merchant-purchase\"\r\n },\r\n {\r\n \"key\": \"refunded\"\r\n },\r\n {\r\n \"key\": \"successful-transaction-count\"\r\n },\r\n {\r\n \"key\": \"refund-count\"\r\n },\r\n {\r\n \"key\": \"refund-value\"\r\n },\r\n {\r\n \"key\": \"integrator-account-tenure\"\r\n }\r\n ],\r\n \"carrier-data\": [\r\n {\r\n \"key\": \"account-type\"\r\n },\r\n {\r\n \"key\": \"eligibility\"\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n \"selector\": {\r\n \"optin-id\": \"EnhtbwAAAAFERQAAAAAAAA\"\r\n },\r\n \"result\": \"ok\",\r\n \"optin-id\": \"EnhtbwAAAAFERQAAAAAAAA\",\r\n \"optin-state\": {\r\n \"optin-status\": \"active\",\r\n \"network-id\": \"62f270\",\r\n \"msisdn\": \"4915111240005\",\r\n \"msisdn-tail\": \"0005\",\r\n \"country\": \"GB\"\r\n },\r\n \"account-profile\": {\r\n \"local-data\": [\r\n {\r\n \"key\": \"successful-transaction-value\"\r\n },\r\n {\r\n \"key\": \"successful-transaction\"\r\n },\r\n {\r\n \"key\": \"account-blacklisted\"\r\n },\r\n {\r\n \"key\": \"integrator-other-merchant-purchase\"\r\n },\r\n {\r\n \"key\": \"refunded\"\r\n },\r\n {\r\n \"key\": \"successful-transaction-count\"\r\n },\r\n {\r\n \"key\": \"refund-count\"\r\n },\r\n {\r\n \"key\": \"refund-value\"\r\n },\r\n {\r\n \"key\": \"integrator-account-tenure\"\r\n }\r\n ],\r\n \"carrier-data\": [\r\n {\r\n \"key\": \"account-type\"\r\n },\r\n {\r\n \"key\": \"eligibility\"\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}", @response_catcher.response.raw_body)
42
+ end
43
+
44
+ end
@@ -0,0 +1,159 @@
1
+ # boku_direct_payments_api
2
+ #
3
+ # This file was automatically generated by
4
+ # APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ require_relative 'controller_test_base'
7
+
8
+ class ChargeControllerTest < ControllerTestBase
9
+ # Called only once for the class before any test has executed
10
+ def setup
11
+ setup_class
12
+ @controller = @client.charge
13
+ @response_catcher = @controller.http_call_back
14
+ end
15
+
16
+ # The 'charge' request processes a payment against a previously authorized opt-in. The 'optin-id' received in the 'optin'/'confirm-optin' response must be supplied in order to validate the consumer payment method.
17
+ #
18
+ #If the 'optin-id' and the other parameters of the request are valid, the charge is submitted to the issuer for processing. A 'charge-id' is returned in the API response.
19
+ #
20
+ #'Charge' may operate as a synchronous request, fully asynchronous, or synchronous with fallback to asynchronous after a timeout. The timeout is supplied with the request, or can default to a value configurable for the merchant. The 'charge' method returns a unique 'charge-id' in all cases where the request has been accepted for processing, including success, failure, and pending cases.
21
+ #
22
+ #The 'charge' method is idempotent. If the same request is sent again (with the same 'merchant-request-id'), Boku will return the current status of the transaction. For example:
23
+ #
24
+ #* If the transaction has completed successfully, a response code of "0" will be returned.
25
+ #* If the transaction has completed with a billing error, a response code of "107" will be returned
26
+ #* If the charge request has been accepted and is being processed, a response code of "139" will be returned. Final confirmation may take several days, depending on the payment method (e.g., direct debit).
27
+ def test_charge
28
+ # Parameters for the API call
29
+ body = ChargeRequest.from_hash(APIHelper.json_deserialize(
30
+ '{"currency":"GBP","merchant-data":"TY235g897qWs","merchant-id":"gateway'\
31
+ 'merchant","merchant-item-description":"Puzzle game","merchant-request-i'\
32
+ 'd":"1002008","merchant-transaction-id":"9002005","optin-id":"IVXecDoa2f'\
33
+ '6Y3oOqp1f7","total-amount":12.34,"timeout":{"after":10000},"consumer-ip'\
34
+ '-address":"24.196.237.108"}', false))
35
+
36
+ # Perform the API call through the SDK function
37
+ result = @controller.charge(body)
38
+
39
+ # Test response code
40
+ assert_equal(200, @response_catcher.response.status_code)
41
+ # Test headers
42
+ expected_headers = {}
43
+ expected_headers['content-type'] = 'application/xml'
44
+
45
+ assert(ComparisonHelper.match_headers(expected_headers, @response_catcher.response.headers))
46
+
47
+ # Test whether the captured response is as we expected
48
+ refute_nil(result)
49
+ assert_equal("{\r\n \"result\": {\r\n \"reason-code\": 0,\r\n \"message\": \"Operation Successful\",\r\n \"retriable\": false,\r\n \"status\": \"OK\"\r\n },\r\n \"timestamp\": \"2015-02-40 04:44:16\",\r\n \"charge-id\": \"b368363a00bbddbf794eba33\",\r\n \"charge-status\": \"success\",\r\n \"merchant-data\": \"TY235g897qWs\",\r\n \"merchant-id\": \"gatewaymerchant\",\r\n \"merchant-request-id\": \"1002008\",\r\n \"merchant-transaction-id\": \"9002005\",\r\n \"optin-id\": \"IVXecDoa2f6Y3oOqp1f7\",\r\n \"country\": \"GB\",\r\n \"network-id\": \"13F040\",\r\n \"settlement\": {\r\n \"currency\": \"USD\",\r\n \"gross-merchant-amount\": 14.99,\r\n \"exchange-rate\": 0.03\r\n }\r\n}", @response_catcher.response.raw_body)
50
+ end
51
+
52
+ # Retrieves the status and all details of prior charges matching the given request criteria.
53
+ #
54
+ #Each returned charge element is similar to a charge-response: although some elements are missing, all present elements have the same names, format and meaning as those in the original charge-response.
55
+ #
56
+ #The query-charge API call is guaranteed to return transactions up to 1 year old. If the transaction was created before that period, this API may return no results.
57
+ #
58
+ #Criteria are evaluated in an AND fashion, i.e. if more than one field is supplied then all will be used to filter the returned charge elements. In normal usage this is not relevant, since you would only supply one of the three fields by itself.
59
+ #
60
+ #The query-charge request one of the following values to be exclusively provided: charge-id, merchant-request-id, or merchant-transaction-id.
61
+ def test_query_charge
62
+ # Parameters for the API call
63
+ body = QueryChargeRequest.from_hash(APIHelper.json_deserialize(
64
+ '{"merchant-id":"gatewaymerchant","country":"GB","merchant-transaction-i'\
65
+ 'd":"9002005"}', false))
66
+
67
+ # Perform the API call through the SDK function
68
+ result = @controller.query_charge(body)
69
+
70
+ # Test response code
71
+ assert_equal(200, @response_catcher.response.status_code)
72
+ # Test headers
73
+ expected_headers = {}
74
+ expected_headers['content-type'] = 'application/xml'
75
+
76
+ assert(ComparisonHelper.match_headers(expected_headers, @response_catcher.response.headers))
77
+
78
+ # Test whether the captured response is as we expected
79
+ refute_nil(result)
80
+ assert_equal("{\r\n \"result\": {\r\n \"reason-code\": 0,\r\n \"message\": \"Found 1 result(s)\",\r\n \"retriable\": false,\r\n \"status\": \"OK\"\r\n },\r\n \"charges\": [\r\n {\r\n \"result\": {\r\n \"reason-code\": 0,\r\n \"message\": \"Operation successful\",\r\n \"retriable\": false,\r\n \"status\": \"OK\"\r\n },\r\n \"charge-status\": \"success\",\r\n \"charge-id\": \"b368363a00bbddbf794eba33\",\r\n \"timestamp\": \"2015-02-40 04:44:16\",\r\n \"merchant-id\": \"gatewaymerchant\",\r\n \"merchant-transaction-id\": \"9002005\",\r\n \"country\": \"GB\",\r\n \"network-id\": \"gb-super\",\r\n \"currency\": \"GBP\",\r\n \"total-amount\": 12.34,\r\n \"merchant-item-description\": \"Puzzle game\"\r\n }\r\n ]\r\n}", @response_catcher.response.raw_body)
81
+ end
82
+
83
+ # **DISCLAIMER: This API is use-case specific and not required for standard payment product integrations. Please disregard unless otherwise directed to include in your integration.**
84
+ #
85
+ # The Reverse Charge API reverses a charge request. This method is typically used when the result of a prior charge is unknown, and the charge was made within the last hour.
86
+ #
87
+ # An unknown result can occur for several reasons:
88
+ # * Network issue
89
+ # * Request timed out by merchant
90
+ # * Response received but could not be recorded
91
+ #
92
+ # Reverse charge requests should be submitted within one hour of the original charge. Requests submitted after one hour will be rejected. In those cases, use the Refund Charge API instead.
93
+ #
94
+ # _**NOTE:** The Reverse Charge API is not applicable for direct debit charge requests. This is because direct debit transactions (e.g., BACS) are processed asynchronously through banking networks and cannot be programmatically reversed once submitted. Use the Refund Charge API to reverse a direct debit charge._
95
+ #
96
+ # Due to the 24-hour idempotency window on charge requests, a reverse charge made more than 24 hours after the original request could still succeed and impact settlement reports. Boku strongly recommends using the Refund Charge API for any charge ID older than 24 hours.
97
+ #
98
+ # In most cases, a reversal request will return a status of "OK" even if Boku never received the original charge.
99
+ #
100
+ def test_reverse_charge
101
+ # Parameters for the API call
102
+ body = ReverseChargeRequest.from_hash(APIHelper.json_deserialize(
103
+ '{"merchant-id":"gatewaymerchant","merchant-request-id":"1002008","count'\
104
+ 'ry":"GB"}', false))
105
+
106
+ # Perform the API call through the SDK function
107
+ result = @controller.reverse_charge(body)
108
+
109
+ # Test response code
110
+ assert_equal(200, @response_catcher.response.status_code)
111
+ # Test headers
112
+ expected_headers = {}
113
+ expected_headers['content-type'] = 'application/xml'
114
+
115
+ assert(ComparisonHelper.match_headers(expected_headers, @response_catcher.response.headers))
116
+
117
+ # Test whether the captured response is as we expected
118
+ refute_nil(result)
119
+ assert_equal("{\r\n \"result\": {\r\n \"reason-code\": 0,\r\n \"message\": \"Operation Successful\",\r\n \"retriable\": false,\r\n \"status\": \"OK\"\r\n },\r\n \"timestamp\": \"2015-02-40 04:44:16\",\r\n \"merchant-id\": \"gatewaymerchant\",\r\n \"merchant-request-id\": \"1002008\",\r\n \"reversal-id\": \"tRtbIVXyXVIbtRtytRt\",\r\n \"country\": \"GB\"\r\n}", @response_catcher.response.raw_body)
120
+ end
121
+
122
+ # **DISCLAIMER: This API or element is use-case specific and not needed for generic usage of our payment product. Please disregard unless otherwise directed to include in your integration.**
123
+ #
124
+ #The 'charge-msisdn' request processes a payment against previously obtained consumer consent for charging.
125
+ #
126
+ #If the 'network', 'msisdn' and 'country' and the other parameters of the request are valid, the charge is submitted to the operator for processing. A 'charge-id' is returned in the API response.
127
+ #
128
+ #'Charge-msisdn' will operate as a synchronous request. The timeout is supplied with the request, or can default to a value configurable per merchant. The 'charge-msisdn' method returns a unique 'charge-id' in all cases where the request has been accepted for processing, including success, failure, and pending cases.
129
+ #
130
+ #The 'charge-msisdn' method is idempotent. If the same request is sent again (with the same 'merchant-request-id'), Boku will return the current status of the transaction. For example:
131
+ #
132
+ #If the transaction has completed successfully, a response code of "0" will be returned.
133
+ #If the transaction has completed with a billing error, a response code of "107" will be returned
134
+ def test_charge_msisdn
135
+ # Parameters for the API call
136
+ body = ChargeMsisdnRequest.from_hash(APIHelper.json_deserialize(
137
+ '{"currency":"GBP","merchant-data":"TY235g897qWs","merchant-id":"gateway'\
138
+ 'merchant","merchant-item-description":"Puzzle game","merchant-request-i'\
139
+ 'd":"1002008","merchant-transaction-id":"9002005","country":"GB","msisdn'\
140
+ '":"15551234567","network":"13f040","total-amount":12.34,"timeout":{"aft'\
141
+ 'er":10000}}', false))
142
+
143
+ # Perform the API call through the SDK function
144
+ result = @controller.charge_msisdn(body)
145
+
146
+ # Test response code
147
+ assert_equal(200, @response_catcher.response.status_code)
148
+ # Test headers
149
+ expected_headers = {}
150
+ expected_headers['content-type'] = 'application/xml'
151
+
152
+ assert(ComparisonHelper.match_headers(expected_headers, @response_catcher.response.headers))
153
+
154
+ # Test whether the captured response is as we expected
155
+ refute_nil(result)
156
+ assert_equal("{\r\n \"result\": {\r\n \"reason-code\": 0,\r\n \"message\": \"Operation Successful\",\r\n \"retriable\": false,\r\n \"status\": \"OK\"\r\n },\r\n \"timestamp\": \"2015-02-40 04:44:16\",\r\n \"merchant-id\": \"gatewaymerchant\",\r\n \"charge-id\": \"b368363a00bbddbf794eba33\",\r\n \"charge-status\": \"success\",\r\n \"merchant-data\": \"TY235g897qWs\",\r\n \"merchant-request-id\": \"1002008\",\r\n \"merchant-transaction-id\": \"9002005\",\r\n \"optin-id\": \"IVXecDoa2f6Y3oOqp1f7\",\r\n \"country\": \"GB\",\r\n \"network-id\": \"13f040\"\r\n}", @response_catcher.response.raw_body)
157
+ end
158
+
159
+ end
@@ -0,0 +1,47 @@
1
+ # boku_direct_payments_api
2
+ #
3
+ # This file was automatically generated by
4
+ # APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ require_relative 'controller_test_base'
7
+
8
+ class ConfigResourcesControllerTest < ControllerTestBase
9
+ # Called only once for the class before any test has executed
10
+ def setup
11
+ setup_class
12
+ @controller = @client.config_resources
13
+ @response_catcher = @controller.http_call_back
14
+ end
15
+
16
+ # **DISCLAIMER: This API or element is use-case specific and not needed for generic usage of our payment product. Please disregard unless otherwise directed to include in your integration.**
17
+ #
18
+ #The network-info call allows retrieval of relatively static data about the identity and properties of all mobile networks (carriers) available on the system.
19
+ #
20
+ #There are two main purposes for this information:
21
+ #
22
+ #* Some operations require knowledge of the particular mobile network the user's handset resides on. If using a mobile device, this may be derivable using the network-info in conjunction with the device MCC and MNC.
23
+ #* Some of the below API calls return the network upon which a particular transaction occurred by referring to the ID, so this API may provide information about what that ID means.
24
+ #
25
+ #The canonical network ID in this API uses an internal proprietary scheme, rather than a public standard identifier. Unfortunately there is no good international standard for representing networks at the granularity that makes sense for a high-level billing service - ITU E.212 specifies MCC and MNC codes, but most logical networks are represented by many different codes due to historical merging of smaller networks or simply different physical networks for regions within the same country. The MCC/MNC list also changes on a not infrequent basis, which E.212 is not always up-to-date with.
26
+ #
27
+ #Any network ID returned by the payment gateway or batch files is always guaranteed to be found in the 'network-info' response and associated with a human readable name.
28
+ #
29
+ def test_get_network_info
30
+
31
+ # Perform the API call through the SDK function
32
+ result = @controller.get_network_info()
33
+
34
+ # Test response code
35
+ assert_equal(200, @response_catcher.response.status_code)
36
+ # Test headers
37
+ expected_headers = {}
38
+ expected_headers['content-type'] = 'application/xml'
39
+
40
+ assert(ComparisonHelper.match_headers(expected_headers, @response_catcher.response.headers))
41
+
42
+ # Test whether the captured response is as we expected
43
+ refute_nil(result)
44
+ assert_equal("{\r\n \"networks\": [\r\n {\r\n \"mcc-mnc-mappings\": [\r\n {\r\n \"mcc\": \"262\",\r\n \"mnc\": \"07\"\r\n },\r\n {\r\n \"mcc\": \"262\",\r\n \"mnc\": \"08\"\r\n },\r\n {\r\n \"mcc\": \"262\",\r\n \"mnc\": \"11\"\r\n }\r\n ],\r\n \"id\": \"62f270\",\r\n \"country\": \"DE\",\r\n \"name\": \"O2\"\r\n },\r\n {\r\n \"mcc-mnc-mappings\": [\r\n {\r\n \"mcc\": \"262\",\r\n \"mnc\": \"03\"\r\n },\r\n {\r\n \"mcc\": \"262\",\r\n \"mnc\": \"05\"\r\n },\r\n {\r\n \"mcc\": \"262\",\r\n \"mnc\": \"12\"\r\n },\r\n {\r\n \"mcc\": \"262\",\r\n \"mnc\": \"16\"\r\n },\r\n {\r\n \"mcc\": \"262\",\r\n \"mnc\": \"17\"\r\n },\r\n {\r\n \"mcc\": \"262\",\r\n \"mnc\": \"20\"\r\n },\r\n {\r\n \"mcc\": \"262\",\r\n \"mnc\": \"77\"\r\n }\r\n ],\r\n \"id\": \"62f230\",\r\n \"country\": \"DE\",\r\n \"name\": \"e-plus\"\r\n },\r\n {\r\n \"mcc-mnc-mappings\": [\r\n {\r\n \"mcc\": \"310\",\r\n \"mnc\": \"00\"\r\n },\r\n {\r\n \"mcc\": \"310\",\r\n \"mnc\": \"120\"\r\n },\r\n {\r\n \"mcc\": \"311\",\r\n \"mnc\": \"490\"\r\n },\r\n {\r\n \"mcc\": \"312\",\r\n \"mnc\": \"190\"\r\n },\r\n {\r\n \"mcc\": \"316\",\r\n \"mnc\": \"010\"\r\n }\r\n ],\r\n \"id\": \"13f050\",\r\n \"country\": \"US\",\r\n \"name\": \"Sprint\"\r\n },\r\n {\r\n \"mcc-mnc-mappings\": [\r\n {\r\n \"mcc\": \"440\",\r\n \"mnc\": \"04\"\r\n },\r\n {\r\n \"mcc\": \"440\",\r\n \"mnc\": \"06\"\r\n },\r\n {\r\n \"mcc\": \"440\",\r\n \"mnc\": \"40\"\r\n },\r\n {\r\n \"mcc\": \"440\",\r\n \"mnc\": \"41\"\r\n },\r\n {\r\n \"mcc\": \"440\",\r\n \"mnc\": \"42\"\r\n },\r\n {\r\n \"mcc\": \"440\",\r\n \"mnc\": \"43\"\r\n },\r\n {\r\n \"mcc\": \"440\",\r\n \"mnc\": \"44\"\r\n },\r\n {\r\n \"mcc\": \"440\",\r\n \"mnc\": \"45\"\r\n },\r\n {\r\n \"mcc\": \"440\",\r\n \"mnc\": \"46\"\r\n },\r\n {\r\n \"mcc\": \"440\",\r\n \"mnc\": \"47\"\r\n },\r\n {\r\n \"mcc\": \"440\",\r\n \"mnc\": \"48\"\r\n },\r\n {\r\n \"mcc\": \"440\",\r\n \"mnc\": \"90\"\r\n },\r\n {\r\n \"mcc\": \"440\",\r\n \"mnc\": \"92\"\r\n },\r\n {\r\n \"mcc\": \"440\",\r\n \"mnc\": \"93\"\r\n },\r\n {\r\n \"mcc\": \"440\",\r\n \"mnc\": \"94\"\r\n },\r\n {\r\n \"mcc\": \"440\",\r\n \"mnc\": \"95\"\r\n },\r\n {\r\n \"mcc\": \"440\",\r\n \"mnc\": \"96\"\r\n },\r\n {\r\n \"mcc\": \"440\",\r\n \"mnc\": \"97\"\r\n },\r\n {\r\n \"mcc\": \"440\",\r\n \"mnc\": \"98\"\r\n },\r\n {\r\n \"mcc\": \"441\",\r\n \"mnc\": \"61\"\r\n },\r\n {\r\n \"mcc\": \"441\",\r\n \"mnc\": \"62\"\r\n },\r\n {\r\n \"mcc\": \"441\",\r\n \"mnc\": \"63\"\r\n },\r\n {\r\n \"mcc\": \"441\",\r\n \"mnc\": \"64\"\r\n },\r\n {\r\n \"mcc\": \"441\",\r\n \"mnc\": \"65\"\r\n }\r\n ],\r\n \"id\": \"44f002\",\r\n \"country\": \"JP\",\r\n \"name\": \"SoftBank\"\r\n }\r\n ]\r\n}", @response_catcher.response.raw_body)
45
+ end
46
+
47
+ end