eway_rapid 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +25 -0
  3. data/.travis.yml +11 -0
  4. data/CHANGELOG.md +7 -0
  5. data/Gemfile +2 -0
  6. data/LICENSE.md +21 -0
  7. data/README.md +96 -0
  8. data/Rakefile +14 -0
  9. data/eway_rapid.gemspec +26 -0
  10. data/lib/eway_rapid.rb +78 -0
  11. data/lib/eway_rapid/constants.rb +126 -0
  12. data/lib/eway_rapid/entities/cancel_authorisation_request.rb +9 -0
  13. data/lib/eway_rapid/entities/cancel_authorisation_response.rb +34 -0
  14. data/lib/eway_rapid/entities/capture_payment_request.rb +11 -0
  15. data/lib/eway_rapid/entities/capture_payment_response.rb +34 -0
  16. data/lib/eway_rapid/entities/create_access_code_request.rb +35 -0
  17. data/lib/eway_rapid/entities/create_access_code_response.rb +128 -0
  18. data/lib/eway_rapid/entities/create_access_code_shared_request.rb +53 -0
  19. data/lib/eway_rapid/entities/create_access_code_shared_response.rb +40 -0
  20. data/lib/eway_rapid/entities/create_customer_response.rb +8 -0
  21. data/lib/eway_rapid/entities/direct_customer_search_request.rb +9 -0
  22. data/lib/eway_rapid/entities/direct_customer_search_response.rb +23 -0
  23. data/lib/eway_rapid/entities/direct_payment_request.rb +29 -0
  24. data/lib/eway_rapid/entities/direct_payment_response.rb +58 -0
  25. data/lib/eway_rapid/entities/direct_refund_request.rb +26 -0
  26. data/lib/eway_rapid/entities/direct_refund_response.rb +44 -0
  27. data/lib/eway_rapid/entities/transaction_search_response.rb +23 -0
  28. data/lib/eway_rapid/exceptions.rb +51 -0
  29. data/lib/eway_rapid/message/convert/customer_to_internal_customer.rb +70 -0
  30. data/lib/eway_rapid/message/convert/direct_payment_to_trans_status.rb +47 -0
  31. data/lib/eway_rapid/message/convert/direct_refund_to_trans_status.rb +33 -0
  32. data/lib/eway_rapid/message/convert/internal_customer_to_customer.rb +41 -0
  33. data/lib/eway_rapid/message/convert/internal_trans_to_trans.rb +62 -0
  34. data/lib/eway_rapid/message/convert/internal_transaction_to_address.rb +27 -0
  35. data/lib/eway_rapid/message/convert/internal_transaction_to_status.rb +55 -0
  36. data/lib/eway_rapid/message/convert/payment_to_payment_details.rb +25 -0
  37. data/lib/eway_rapid/message/convert/request/refund_to_direct_refund_req.rb +41 -0
  38. data/lib/eway_rapid/message/convert/request/transaction_to_capture_payment.rb +28 -0
  39. data/lib/eway_rapid/message/convert/request/transaction_to_create_access_code_request.rb +58 -0
  40. data/lib/eway_rapid/message/convert/request/transaction_to_create_access_code_shared_request.rb +54 -0
  41. data/lib/eway_rapid/message/convert/request/transaction_to_direct_payment.rb +45 -0
  42. data/lib/eway_rapid/message/convert/response/access_code_shared_to_create_cust.rb +23 -0
  43. data/lib/eway_rapid/message/convert/response/access_code_shared_to_create_trans.rb +28 -0
  44. data/lib/eway_rapid/message/convert/response/access_code_to_create_cust.rb +24 -0
  45. data/lib/eway_rapid/message/convert/response/access_code_to_create_trans.rb +27 -0
  46. data/lib/eway_rapid/message/convert/response/cancel_authorisation_to_refund.rb +37 -0
  47. data/lib/eway_rapid/message/convert/response/capture_payment_to_create_transaction.rb +43 -0
  48. data/lib/eway_rapid/message/convert/response/direct_customer_to_query_customer.rb +55 -0
  49. data/lib/eway_rapid/message/convert/response/direct_payment_to_create_cust.rb +23 -0
  50. data/lib/eway_rapid/message/convert/response/direct_payment_to_create_trans.rb +32 -0
  51. data/lib/eway_rapid/message/convert/response/direct_refund_to_refund_response.rb +28 -0
  52. data/lib/eway_rapid/message/convert/response/search_to_query_trans.rb +30 -0
  53. data/lib/eway_rapid/message/convert/shipping_details_to_address.rb +35 -0
  54. data/lib/eway_rapid/message/convert/transaction_shipping_address.rb +37 -0
  55. data/lib/eway_rapid/message/convert/transaction_to_arr_line_item.rb +14 -0
  56. data/lib/eway_rapid/message/convert/transaction_to_arr_option.rb +25 -0
  57. data/lib/eway_rapid/message/convert/transaction_to_payment.rb +29 -0
  58. data/lib/eway_rapid/message/convert/verification_to_verification_result.rb +33 -0
  59. data/lib/eway_rapid/message/process/customer_process.rb +255 -0
  60. data/lib/eway_rapid/message/process/refund_process.rb +76 -0
  61. data/lib/eway_rapid/message/process/rest_process.rb +87 -0
  62. data/lib/eway_rapid/message/process/transaction_process.rb +139 -0
  63. data/lib/eway_rapid/models/enums.rb +126 -0
  64. data/lib/eway_rapid/models/internal_models.rb +431 -0
  65. data/lib/eway_rapid/models/models.rb +334 -0
  66. data/lib/eway_rapid/output/create_transaction_response.rb +24 -0
  67. data/lib/eway_rapid/output/query_customer_response.rb +25 -0
  68. data/lib/eway_rapid/output/query_transaction_response.rb +16 -0
  69. data/lib/eway_rapid/output/refund_response.rb +9 -0
  70. data/lib/eway_rapid/output/response_output.rb +14 -0
  71. data/lib/eway_rapid/rapid_client.rb +444 -0
  72. data/lib/eway_rapid/rapid_logger.rb +40 -0
  73. data/lib/eway_rapid/resources/err_code_resource_en.yml +237 -0
  74. data/lib/eway_rapid/resources/rapid-api.yml +4 -0
  75. data/lib/eway_rapid/version.rb +3 -0
  76. metadata +201 -0
@@ -0,0 +1,55 @@
1
+ module EwayRapid
2
+ module Message
3
+ module Convert
4
+ module Response
5
+ class DirectCustomerToQueryCustomer
6
+
7
+ # @param [DirectCustomerSearchResponse] response
8
+ # @return [QueryCustomerResponse]
9
+ def do_convert(response)
10
+ result = QueryCustomerResponse.new
11
+ if response
12
+ result.errors = response.errors.split(/\s*,\s*/) if response.errors
13
+
14
+ # @type [Array]
15
+ list_customer = response.customers
16
+ if list_customer && list_customer.length > 0
17
+ list_customer.each do |cust|
18
+ result.reference = cust.reference
19
+ result.title = cust.title
20
+ result.first_name = cust.first_name
21
+ result.last_name = cust.last_name
22
+ result.company_name = cust.company_name
23
+ result.job_description = cust.job_description
24
+
25
+ # @type [String]
26
+ street = cust.street1
27
+ if street && street.strip
28
+ arr = street.split(',', 2)
29
+ result.street1 = street.split(',', 2).first
30
+ result.street2 = street.split(',', 2).last if arr.length > 1
31
+ end
32
+
33
+ result.token_customer_id = cust.token_customer_id
34
+ result.city = cust.city
35
+ result.state = cust.state
36
+ result.postal_code = cust.postal_code
37
+ result.phone = cust.phone
38
+ result.mobile = cust.mobile
39
+ result.email = cust.email
40
+ result.url = cust.url
41
+ result.card_detail = cust.card_details
42
+ result.country = cust.country
43
+ result.comments = cust.comments
44
+ result.fax = cust.fax
45
+ result
46
+ end
47
+ end
48
+ end
49
+ result
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,23 @@
1
+ module EwayRapid
2
+ module Message
3
+ module Convert
4
+ module Response
5
+ class DirectPaymentToCreateCust
6
+
7
+ # @param [DirectPaymentResponse] response
8
+ # @return [CreateCustomerResponse]
9
+ def do_convert(response)
10
+ customer_response = CreateCustomerResponse.new
11
+ cust_convert = InternalCustomerToCustomer.new
12
+
13
+ customer_response.customer = cust_convert.do_convert(response.customer)
14
+
15
+ customer_response.errors = response.errors.split(/\s*,\s*/) if response.errors
16
+
17
+ customer_response
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,32 @@
1
+ module EwayRapid
2
+ module Message
3
+ module Convert
4
+ module Response
5
+ class DirectPaymentToCreateTrans
6
+
7
+ # @param [DirectPaymentResponse] response
8
+ # @return [CreateTransactionResponse]
9
+ def do_convert(response)
10
+ transaction_response = CreateTransactionResponse.new
11
+ transaction = Models::Transaction.new
12
+
13
+ transaction.transaction_type = response.transaction_type
14
+
15
+ payment_converter = PaymentToPaymentDetails.new
16
+ transaction.payment_details = payment_converter.do_convert(response.payment)
17
+
18
+ cust_convert = InternalCustomerToCustomer.new
19
+ transaction.customer = cust_convert.do_convert(response.customer)
20
+
21
+ transaction_response.transaction = transaction
22
+ transaction_response.errors = response.errors.split(/\s*,\s*/) if response.errors
23
+
24
+ status_convert = DirectPaymentToTransStatus.new
25
+ transaction_response.transaction_status = status_convert.do_convert(response)
26
+ transaction_response
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,28 @@
1
+ module EwayRapid
2
+ module Message
3
+ module Convert
4
+ module Response
5
+ class DirectRefundToRefundResponse
6
+
7
+ # @param [DirectRefundResponse] response
8
+ # @return [RefundResponse]
9
+ def do_convert(response)
10
+ refund = Models::Refund.new
11
+ refund.refund_details = response.refund
12
+
13
+ cust_convert = InternalCustomerToCustomer.new
14
+ refund.customer = cust_convert.do_convert(response.customer)
15
+
16
+ refund_response = RefundResponse.new
17
+ refund_response.errors = response.errors.split(/\s*,\s*/) if response.errors
18
+ refund_response.refund = refund
19
+
20
+ trans_status_convert = DirectRefundToTransStatus.new
21
+ refund_response.transaction_status = trans_status_convert.do_convert(response)
22
+ refund_response
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,30 @@
1
+ module EwayRapid
2
+ module Message
3
+ module Convert
4
+ module Response
5
+ class SearchToQueryTrans
6
+
7
+ # @param [TransactionSearchResponse] response
8
+ # @return [QueryTransactionResponse]
9
+ def do_convert(response)
10
+ query_transaction_response = QueryTransactionResponse.new
11
+
12
+ if response.transactions && response.transactions.length > 0
13
+ trans_convert = InternalTransToTrans.new
14
+ query_transaction_response.transaction = trans_convert.do_convert(response.transactions[0])
15
+ end
16
+
17
+ query_transaction_response.errors = response.error.split(/\s*,\s*/) if response.error
18
+
19
+ status_convert = InternalTransactionToStatus.new
20
+ if response.transactions && response.transactions.length > 0
21
+ query_transaction_response.transaction_status = status_convert.do_convert(response.transactions[0])
22
+ end
23
+
24
+ query_transaction_response
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,35 @@
1
+ module EwayRapid
2
+ module Message
3
+ module Convert
4
+ class ShippingDetailsToAddress
5
+
6
+ # @param [Models::ShippingDetails] detail
7
+ # @return [InternalModels::ShippingAddress]
8
+ def do_convert(detail)
9
+ address = InternalModels::ShippingAddress.new
10
+
11
+ if detail
12
+ # @type [InternalModels::ShippingAddress]
13
+ add = detail.shipping_address
14
+
15
+ if add
16
+ address.city = add.city
17
+ address.country = add.country
18
+ address.state = add.state
19
+ address.street1 = add.street1
20
+ address.street2 = add.street2
21
+ address.postal_code = add.postal_code
22
+ end
23
+
24
+ address.first_name = detail.first_name
25
+ address.last_name = detail.last_name
26
+ address.phone = detail.phone
27
+ address.fax = detail.fax
28
+ address.shipping_method = detail.shipping_method || ''
29
+ end
30
+ address
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,37 @@
1
+ module EwayRapid
2
+ module Message
3
+ module Convert
4
+ class TransactionShippingAddress
5
+
6
+ # @param [Models::Transaction] transaction
7
+ # @return [InternalModels::ShippingAddress]
8
+ def do_convert(transaction)
9
+ shipping_address = InternalModels::ShippingAddress.new
10
+
11
+ # @type [Models::ShippingDetails]
12
+ detail = transaction.shipping_details
13
+ if detail
14
+ shipping_address.first_name = detail.first_name
15
+ shipping_address.last_name = detail.last_name
16
+ shipping_address.shipping_method = detail.shipping_method
17
+ shipping_address.email = detail.email
18
+ shipping_address.phone = detail.phone
19
+ shipping_address.fax = detail.fax
20
+
21
+ # @type [Models::Address]
22
+ address = detail.shipping_address
23
+ if address
24
+ shipping_address.city = address.city
25
+ shipping_address.country = address.country
26
+ shipping_address.postal_code = address.postal_code
27
+ shipping_address.state = address.state
28
+ shipping_address.street1 = address.street1
29
+ shipping_address.street2 = address.street2
30
+ end
31
+ end
32
+ shipping_address
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,14 @@
1
+ module EwayRapid
2
+ module Message
3
+ module Convert
4
+ class TransactionToArrLineItem
5
+
6
+ # @param [Models::Transaction] transaction
7
+ # @return [Array]
8
+ def do_convert(transaction)
9
+ transaction.line_items || []
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,25 @@
1
+ module EwayRapid
2
+ module Message
3
+ module Convert
4
+ class TransactionToArrOption
5
+
6
+ # @param [Models::Transaction] transaction
7
+ # @return [Array]
8
+ def do_convert(transaction)
9
+ if transaction.options
10
+ list_option = Array.new
11
+
12
+ transaction.options.each do |opt|
13
+ option = InternalModels::Option.new
14
+ option.value = opt
15
+ list_option.push(option)
16
+ end
17
+ list_option
18
+ else
19
+ Array.new(3)
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,29 @@
1
+ module EwayRapid
2
+ module Message
3
+ module Convert
4
+ class TransactionToPayment
5
+
6
+ # @param [Models::Transaction] transaction
7
+ # @return [InternalModels::Payment]
8
+ def do_convert(transaction)
9
+ payment = InternalModels::Payment.new
10
+
11
+ # @type [Models::PaymentDetails]
12
+ payment_details = transaction.payment_details
13
+
14
+ if payment_details
15
+ payment.currency_code = payment_details.currency_code
16
+ payment.invoice_description = payment_details.invoice_description
17
+ payment.invoice_number = payment_details.invoice_number
18
+ payment.invoice_reference = payment_details.invoice_reference
19
+ payment.total_amount = payment_details.total_amount
20
+ else
21
+ payment.total_amount = 0
22
+ end
23
+
24
+ payment
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,33 @@
1
+ module EwayRapid
2
+ module Message
3
+ module Convert
4
+ class VerificationToVerificationResult
5
+
6
+ # @param [InternalModels::Verification] verification
7
+ def do_convert(verification)
8
+ result = Models::VerificationResult.new
9
+
10
+ if verification
11
+ result.address = get_verify_status(verification.address)
12
+ result.cvn = get_verify_status(verification.cvn)
13
+ result.email = get_verify_status(verification.email)
14
+ result.mobile = get_verify_status(verification.mobile)
15
+ result.phone = get_verify_status(verification.mobile)
16
+ end
17
+ result
18
+ end
19
+
20
+ # @param [String] status
21
+ # @return [String]
22
+ def get_verify_status(status)
23
+ begin
24
+ index = Integer(status)
25
+ Enums::VerifyStatus.calculate_status(index)
26
+ rescue StandardError
27
+ return nil
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,255 @@
1
+ module EwayRapid
2
+ module Message
3
+ module CustomerProcess
4
+
5
+ # Create customer with direct payment method message process
6
+ class CustDirectPaymentMsgProcess
7
+ include RestProcess
8
+
9
+ # @param [Models::Customer] input
10
+ # @return [DirectPaymentRequest]
11
+ def self.create_request(input)
12
+ request = DirectPaymentRequest.new
13
+ convert = Convert::CustomerToInternalCustomer.new(false)
14
+ request.customer = convert.do_convert(input)
15
+ request.customer_ip = input.customer_device_ip
16
+ request.method = Constants::CREATE_TOKEN_CUSTOMER_METHOD
17
+ request.transaction_type = Enums::TransactionType::PURCHASE
18
+ request
19
+ end
20
+
21
+ # @param [String] url
22
+ # @param [String] api_key
23
+ # @param [String] password
24
+ # @param [DirectPaymentRequest] request
25
+ # @return [String]
26
+ def self.send_request(url, api_key, password, request)
27
+ begin
28
+ CustDirectPaymentMsgProcess.new.do_post(url, api_key, password, request)
29
+ rescue SocketError => e
30
+ raise Exceptions::CommunicationFailureException.new(e.message)
31
+ rescue RestClient::Exception => e
32
+ if e.http_code == 401 || e.http_code == 403 || e.http_code == 404
33
+ raise Exceptions::AuthenticationFailureException.new(e.message)
34
+ else
35
+ raise Exceptions::SystemErrorException.new(e.message)
36
+ end
37
+ end
38
+ end
39
+
40
+ # @param [String] response
41
+ # @return [CreateCustomerResponse]
42
+ def self.make_result(response)
43
+ direct_payment_response = DirectPaymentResponse.from_json(response)
44
+ convert = Convert::Response::DirectPaymentToCreateCust.new
45
+ convert.do_convert(direct_payment_response)
46
+ end
47
+ end
48
+
49
+ # Create customer with responsive shared method message process
50
+ class CustResponsiveSharedMsgProcess
51
+ include RestProcess
52
+
53
+ # @param [Models::Customer] input
54
+ # @return [CreateAccessCodeSharedRequest]
55
+ def self.create_request(input)
56
+ request = CreateAccessCodeSharedRequest.new
57
+ convert = Convert::CustomerToInternalCustomer.new(false)
58
+ request.customer = convert.do_convert(input)
59
+ request.method = Constants::CREATE_TOKEN_CUSTOMER_METHOD
60
+ request.transaction_type = Enums::TransactionType::PURCHASE
61
+ request.redirect_url = input.redirect_url
62
+ request.cancel_url = input.cancel_url
63
+ request
64
+ end
65
+
66
+ # @param [String] url
67
+ # @param [String] api_key
68
+ # @param [String] password
69
+ # @param [CreateAccessCodeSharedRequest] request
70
+ # @return [String]
71
+ def self.send_request(url, api_key, password, request)
72
+ CustResponsiveSharedMsgProcess.new.do_post(url, api_key, password, request)
73
+ end
74
+
75
+ # @param [String] response
76
+ # @return [CreateCustomerResponse]
77
+ def self.make_result(response)
78
+ code_shared_response = CreateAccessCodeSharedResponse.from_json(response)
79
+ convert = Convert::Response::AccessCodeSharedToCreateCust.new
80
+ convert.do_convert(code_shared_response)
81
+ end
82
+ end
83
+
84
+ # Create customer with transparent redirect message process
85
+ class CustTransparentRedirectMsgProcess
86
+ include RestProcess
87
+
88
+ # @param [Models::Customer] input
89
+ # @return [CreateAccessCodeRequest]
90
+ def self.create_request(input)
91
+ request = CreateAccessCodeRequest.new
92
+ convert = Convert::CustomerToInternalCustomer.new(false)
93
+ request.customer = convert.do_convert(input)
94
+ request.method = Constants::CREATE_TOKEN_CUSTOMER_METHOD
95
+ request.transaction_type = Enums::TransactionType::PURCHASE
96
+ request.redirect_url = input.redirect_url
97
+ request
98
+ end
99
+
100
+ # @param [String] url
101
+ # @param [String] api_key
102
+ # @param [String] password
103
+ # @param [CreateAccessCodeRequest] request
104
+ # @return [String]
105
+ def self.send_request(url, api_key, password, request)
106
+ CustTransparentRedirectMsgProcess.new.do_post(url, api_key, password, request)
107
+ end
108
+
109
+ # @param [String] response
110
+ # @return [CreateCustomerResponse]
111
+ def self.make_result(response)
112
+ access_code_response = CreateAccessCodeResponse.from_json(response)
113
+ convert = Convert::Response::AccessCodeToCreateCust.new
114
+ convert.do_convert(access_code_response)
115
+ end
116
+ end
117
+
118
+ # Query customer message process
119
+ class QueryCustomerMsgProcess
120
+ include RestProcess
121
+
122
+ # @param [String] token_customer_id
123
+ # @return [DirectCustomerSearchRequest]
124
+ def self.create_request(token_customer_id)
125
+ request = DirectCustomerSearchRequest.new
126
+ request.token_customer_id = token_customer_id
127
+ request
128
+ end
129
+
130
+ # @param [DirectCustomerSearchRequest] request
131
+ # @return [String]
132
+ def self.send_request(url, api_key, password, request)
133
+ QueryCustomerMsgProcess.new.do_post(url, api_key, password, request)
134
+ end
135
+
136
+ # @param [String] response
137
+ # @return [DirectCustomerSearchResponse]
138
+ def self.make_result(response)
139
+ direct_customer_response = DirectCustomerSearchResponse.from_json(response)
140
+ converter = Convert::Response::DirectCustomerToQueryCustomer.new
141
+ converter.do_convert(direct_customer_response)
142
+ end
143
+ end
144
+
145
+ # Create customer with direct payment method message process
146
+ class CustDirectUpdateMsgProcess
147
+ include RestProcess
148
+
149
+ # @param [Models::Customer] input
150
+ # @return [DirectPaymentRequest]
151
+ def self.create_request(input)
152
+ request = DirectPaymentRequest.new
153
+ converter = Convert::CustomerToInternalCustomer.new
154
+ payment = InternalModels::Payment.new
155
+ payment.total_amount = 0
156
+ request.payment = payment
157
+ request.customer = converter.do_convert(input)
158
+ request.customer_ip = input.customer_device_ip
159
+ request.method = Constants::UPDATE_TOKEN_CUSTOMER_METHOD
160
+ request.transaction_type = Enums::TransactionType::PURCHASE
161
+ request
162
+ end
163
+
164
+ # @param [String] url
165
+ # @param [String] api_key
166
+ # @param [String] password
167
+ # @param [DirectPaymentRequest] request
168
+ def self.send_request(url, api_key, password, request)
169
+ CustDirectUpdateMsgProcess.new.do_post(url, api_key, password, request)
170
+ end
171
+
172
+ # @param [String] response
173
+ # @return [CreateCustomerResponse]
174
+ def self.make_result(response)
175
+ direct_response = DirectPaymentResponse.from_json(response)
176
+ converter = Convert::Response::DirectPaymentToCreateCust.new
177
+ converter.do_convert(direct_response)
178
+ end
179
+ end
180
+
181
+ # Create customer with responsive shared method message process
182
+ class CustResponsiveUpdateMsgProcess
183
+ include RestProcess
184
+
185
+ # @param [Models::Customer] input
186
+ # @return [CreateAccessCodeSharedRequest]
187
+ def self.create_request(input)
188
+ request = CreateAccessCodeSharedRequest.new
189
+ converter = Convert::CustomerToInternalCustomer.new
190
+ payment = InternalModels::Payment.new
191
+ payment.total_amount = 0
192
+ request.payment = payment
193
+ request.customer = converter.do_convert(input)
194
+ request.method = Constants::UPDATE_TOKEN_CUSTOMER_METHOD
195
+ request.transaction_type = Enums::TransactionType::PURCHASE
196
+ request.redirect_url = input.redirect_url
197
+ request.cancel_url = input.cancel_url
198
+ request
199
+ end
200
+
201
+ # @param [String] url
202
+ # @param [String] api_key
203
+ # @param [String] password
204
+ # @param [CreateAccessCodeSharedRequest] request
205
+ def self.send_request(url, api_key, password, request)
206
+ CustResponsiveUpdateMsgProcess.new.do_post(url, api_key, password, request)
207
+ end
208
+
209
+ # @param [String] response
210
+ # @return [CreateCustomerResponse]
211
+ def self.make_result(response)
212
+ shared_response = CreateAccessCodeSharedResponse.from_json(response)
213
+ converter = Convert::Response::AccessCodeSharedToCreateCust.new
214
+ converter.do_convert(shared_response)
215
+ end
216
+ end
217
+
218
+ # Create customer with transparent redirect message process
219
+ class CustTransparentUpdateMsgProcess
220
+ include RestProcess
221
+
222
+ # @param [Models::Customer] input
223
+ # @return [CreateAccessCodeRequest]
224
+ def self.create_request(input)
225
+ request = CreateAccessCodeRequest.new
226
+ converter = Convert::CustomerToInternalCustomer.new
227
+ payment = InternalModels::Payment.new
228
+ payment.total_amount = 0
229
+ request.payment = payment
230
+ request.customer = converter.do_convert(input)
231
+ request.method = Constants::UPDATE_TOKEN_CUSTOMER_METHOD
232
+ request.transaction_type = Enums::TransactionType::PURCHASE
233
+ request.redirect_url = input.redirect_url
234
+ request
235
+ end
236
+
237
+ # @param [String] url
238
+ # @param [String] api_key
239
+ # @param [String] password
240
+ # @param [CreateAccessCodeRequest] request
241
+ def self.send_request(url, api_key, password, request)
242
+ CustTransparentUpdateMsgProcess.new.do_post(url, api_key, password, request)
243
+ end
244
+
245
+ # @param [String] response
246
+ # @return [CreateCustomerResponse]
247
+ def self.make_result(response)
248
+ access_code_response = CreateAccessCodeResponse.from_json(response)
249
+ converter = Convert::Response::AccessCodeToCreateCust.new
250
+ converter.do_convert(access_code_response)
251
+ end
252
+ end
253
+ end
254
+ end
255
+ end