authorizenetsample 0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +7 -0
  2. data/lib/CustomerProfiles/create-customer-payment-profile.rb +62 -0
  3. data/lib/CustomerProfiles/create-customer-profile-from-transaction.rb +51 -0
  4. data/lib/CustomerProfiles/create-customer-profile.rb +92 -0
  5. data/lib/CustomerProfiles/create-customer-shipping-address.rb +31 -0
  6. data/lib/CustomerProfiles/delete-customer-payment-profile.rb +32 -0
  7. data/lib/CustomerProfiles/delete-customer-profile.rb +31 -0
  8. data/lib/CustomerProfiles/delete-customer-shipping-address.rb +33 -0
  9. data/lib/CustomerProfiles/get-accept-customer-profile-page.rb +42 -0
  10. data/lib/CustomerProfiles/get-customer-payment-profile-list.rb +54 -0
  11. data/lib/CustomerProfiles/get-customer-payment-profile.rb +40 -0
  12. data/lib/CustomerProfiles/get-customer-profile-ids.rb +45 -0
  13. data/lib/CustomerProfiles/get-customer-profile.rb +54 -0
  14. data/lib/CustomerProfiles/get-customer-shipping-address.rb +41 -0
  15. data/lib/CustomerProfiles/update-customer-payment-profile.rb +37 -0
  16. data/lib/CustomerProfiles/update-customer-profile.rb +37 -0
  17. data/lib/CustomerProfiles/update-customer-shipping-address.rb +37 -0
  18. data/lib/CustomerProfiles/validate-customer-payment-profile.rb +37 -0
  19. data/lib/FraudManagement/approve-or-decline-held-transaction.rb +57 -0
  20. data/lib/FraudManagement/get-held-transaction-list.rb +47 -0
  21. data/lib/MobileInAppTransactions/create-an-accept-transaction.rb +59 -0
  22. data/lib/MobileInAppTransactions/create-an-android-pay-transaction.rb +59 -0
  23. data/lib/MobileInAppTransactions/create-an-apple-pay-transaction.rb +58 -0
  24. data/lib/PayPalExpressCheckout/authorization-and-capture-continued.rb +69 -0
  25. data/lib/PayPalExpressCheckout/authorization-and-capture.rb +70 -0
  26. data/lib/PayPalExpressCheckout/authorization-only-continued.rb +70 -0
  27. data/lib/PayPalExpressCheckout/authorization-only.rb +71 -0
  28. data/lib/PayPalExpressCheckout/credit.rb +67 -0
  29. data/lib/PayPalExpressCheckout/get-details.rb +69 -0
  30. data/lib/PayPalExpressCheckout/prior-authorization-capture.rb +112 -0
  31. data/lib/PayPalExpressCheckout/void.rb +113 -0
  32. data/lib/PaymentTransactions/authorize-credit-card.rb +103 -0
  33. data/lib/PaymentTransactions/capture-funds-authorized-through-another-channel.rb +60 -0
  34. data/lib/PaymentTransactions/capture-previously-authorized-amount.rb +104 -0
  35. data/lib/PaymentTransactions/charge-credit-card.rb +104 -0
  36. data/lib/PaymentTransactions/charge-customer-profile.rb +61 -0
  37. data/lib/PaymentTransactions/charge-tokenized-credit-card.rb +60 -0
  38. data/lib/PaymentTransactions/create-an-accept-payment-transaction.rb +62 -0
  39. data/lib/PaymentTransactions/credit-bank-account.rb +62 -0
  40. data/lib/PaymentTransactions/debit-bank-account.rb +64 -0
  41. data/lib/PaymentTransactions/get-an-accept-payment-page.rb +47 -0
  42. data/lib/PaymentTransactions/refund-transaction.rb +60 -0
  43. data/lib/PaymentTransactions/update-split-tender-group.rb +44 -0
  44. data/lib/PaymentTransactions/void-transaction.rb +103 -0
  45. data/lib/RecurringBilling/cancel-subscription.rb +36 -0
  46. data/lib/RecurringBilling/create-subscription-from-customer-profile.rb +52 -0
  47. data/lib/RecurringBilling/create-subscription.rb +54 -0
  48. data/lib/RecurringBilling/get-list-of-subscriptions.rb +51 -0
  49. data/lib/RecurringBilling/get-subscription-status.rb +36 -0
  50. data/lib/RecurringBilling/get-subscription.rb +42 -0
  51. data/lib/RecurringBilling/update-subscription.rb +54 -0
  52. data/lib/TransactionReporting/get-batch-statistics.rb +57 -0
  53. data/lib/TransactionReporting/get-customer-profile-transaction-list.rb +49 -0
  54. data/lib/TransactionReporting/get-merchant-details.rb +50 -0
  55. data/lib/TransactionReporting/get-settled-batch-list.rb +49 -0
  56. data/lib/TransactionReporting/get-transaction-details.rb +40 -0
  57. data/lib/TransactionReporting/get-transaction-list.rb +58 -0
  58. data/lib/TransactionReporting/get-unsettled-transaction-list.rb +48 -0
  59. data/lib/VisaCheckout/create-visa-checkout-transaction.rb +62 -0
  60. data/lib/VisaCheckout/decrypt-visa-checkout-data.rb +37 -0
  61. data/lib/authorize_netsample.rb +16 -0
  62. data/lib/authorizenetsample.rb +4 -0
  63. data/lib/credentials.yml +9 -0
  64. data/lib/spec/sample_code_spec.rb +320 -0
  65. data/lib/spec/spec.opts +2 -0
  66. data/lib/spec/spec_helper.rb +10 -0
  67. data/lib/spec/support/shared_helper.rb +7 -0
  68. metadata +110 -0
@@ -0,0 +1,40 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def get_customer_payment_profile(customerProfileId = '40036377', customerPaymentProfileId = '36315992')
9
+ config = YAML.load_file(File.dirname(__FILE__) + "/../credentials.yml")
10
+
11
+ transaction = Transaction.new(config['api_login_id'], config['api_transaction_key'], :gateway => :sandbox)
12
+
13
+
14
+ request = GetCustomerPaymentProfileRequest.new
15
+ request.customerProfileId = customerProfileId
16
+ request.customerPaymentProfileId = customerPaymentProfileId
17
+
18
+ response = transaction.get_customer_payment_profile(request)
19
+
20
+
21
+ if response.messages.resultCode == MessageTypeEnum::Ok
22
+ puts "Successfully retrieved a payment profile with profile ID #{request.customerPaymentProfileId} and whose customer ID is #{request.customerProfileId}."
23
+
24
+ if response.paymentProfile.subscriptionIds != nil && response.paymentProfile.subscriptionIds.subscriptionId != nil
25
+ puts " List of subscriptions: "
26
+ response.paymentProfile.subscriptionIds.subscriptionId.each do |subscriptionId|
27
+ puts "#{subscriptionId}"
28
+ end
29
+ end
30
+
31
+ else
32
+ puts response.messages.messages[0].text
33
+ raise "Failed to get payment profile information with ID #{request.customerPaymentProfileId}."
34
+ end
35
+ return response
36
+ end
37
+
38
+ if __FILE__ == $0
39
+ get_customer_payment_profile()
40
+ end
@@ -0,0 +1,45 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def get_customer_profile_ids()
9
+ config = YAML.load_file(File.dirname(__FILE__) + "/../credentials.yml")
10
+
11
+ transaction = Transaction.new(config['api_login_id'], config['api_transaction_key'], :gateway => :sandbox)
12
+
13
+
14
+ request = GetCustomerProfileIdsRequest.new
15
+
16
+ response = transaction.get_customer_profile_ids(request)
17
+
18
+
19
+ if response.messages.resultCode == MessageTypeEnum::Ok
20
+ puts "Successfully retrieved customer IDs."
21
+ puts " Number of IDs returned: #{response.ids.numericString.count}"
22
+ # There's no paging options in this API request; the full list is returned every call.
23
+ # If the result set is going to be large, for this sample we'll break it down into smaller
24
+ # chunks so that we don't put 72,000 lines into a log file
25
+ puts " First 20 results:"
26
+ for profileId in 0..19 do
27
+ puts " #{response.ids.numericString[profileId]}"
28
+ end
29
+ # If we wanted to just return the whole list, we'd do something like this:
30
+ #
31
+ # response.ids.numericString.each do |id|
32
+ # puts id
33
+ # end
34
+
35
+ else
36
+ puts response.messages.messages[0].text
37
+ raise "Failed to get customer IDs."
38
+ end
39
+ return response
40
+ end
41
+
42
+
43
+ if __FILE__ == $0
44
+ get_customer_profile_ids()
45
+ end
@@ -0,0 +1,54 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def get_customer_profile(customerProfileId = '40036377')
9
+ config = YAML.load_file(File.dirname(__FILE__) + "/../credentials.yml")
10
+
11
+ transaction = Transaction.new(config['api_login_id'], config['api_transaction_key'], :gateway => :sandbox)
12
+
13
+
14
+ request = GetCustomerProfileRequest.new
15
+ request.customerProfileId = customerProfileId
16
+
17
+ response = transaction.get_customer_profile(request)
18
+
19
+ if response.messages.resultCode == MessageTypeEnum::Ok
20
+ puts "Successfully retrieved a customer with profile ID is #{request.customerProfileId} and whose customer ID is #{response.profile.merchantCustomerId}."
21
+ response.profile.paymentProfiles.each do |paymentProfile|
22
+ puts " Payment Profile ID #{paymentProfile.customerPaymentProfileId}"
23
+ puts " Payment Details:"
24
+ if paymentProfile.billTo != nil
25
+ puts " Last Name: #{paymentProfile.billTo.lastName}"
26
+ puts " Address: #{paymentProfile.billTo.address}"
27
+ end
28
+ end
29
+ response.profile.shipToList.each do |ship|
30
+ puts " Shipping Address ID #{ship.customerAddressId}"
31
+ puts " Shipping Details:"
32
+ puts " First Name: #{ship.firstName}"
33
+ puts " Last Name: #{ship.lastName}"
34
+ puts " Address: #{ship.address}"
35
+ end
36
+
37
+ if response.subscriptionIds != nil && response.subscriptionIds.subscriptionId != nil
38
+ puts " List of subscriptions: "
39
+ response.subscriptionIds.subscriptionId.each do |subscriptionId|
40
+ puts " #{subscriptionId}"
41
+ end
42
+ end
43
+
44
+ else
45
+ puts response.messages.messages[0].text
46
+ raise "Failed to get customer profile information with ID #{request.customerProfileId}"
47
+ end
48
+ return response
49
+ end
50
+
51
+ if __FILE__ == $0
52
+ get_customer_profile()
53
+ end
54
+
@@ -0,0 +1,41 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def get_customer_shipping_address(customerProfileId = '40036377', customerAddressId = '37808097')
9
+ config = YAML.load_file(File.dirname(__FILE__) + "/../credentials.yml")
10
+
11
+ transaction = Transaction.new(config['api_login_id'], config['api_transaction_key'], :gateway => :sandbox)
12
+
13
+
14
+ request = GetCustomerShippingAddressRequest.new
15
+ request.customerProfileId = customerProfileId
16
+ request.customerAddressId = customerAddressId
17
+
18
+ response = transaction.get_customer_shipping_profile(request)
19
+
20
+
21
+ if response.messages.resultCode == MessageTypeEnum::Ok
22
+ puts "Successfully retrieved a shipping address with profile ID #{request.customerAddressId} and whose customer ID is #{request.customerProfileId}."
23
+
24
+ if response.subscriptionIds != nil && response.subscriptionIds.subscriptionId != nil
25
+ puts " List of subscriptions: "
26
+ response.subscriptionIds.subscriptionId.each do |subscriptionId|
27
+ puts " #{subscriptionId}"
28
+ end
29
+ end
30
+
31
+ else
32
+ puts response.messages.messages[0].text
33
+ raise "Failed to get payment profile information with ID #{request.customerProfileId}"
34
+ end
35
+ return response
36
+ end
37
+
38
+ if __FILE__ == $0
39
+ get_customer_shipping_address()
40
+ end
41
+
@@ -0,0 +1,37 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def update_customer_payment_profile(customerProfileId = '35894174', customerPaymentProfileId = '33605803')
9
+ config = YAML.load_file(File.dirname(__FILE__) + "/../credentials.yml")
10
+
11
+ transaction = Transaction.new(config['api_login_id'], config['api_transaction_key'], :gateway => :sandbox)
12
+
13
+ request = UpdateCustomerPaymentProfileRequest.new
14
+
15
+ payment = PaymentType.new(CreditCardType.new('4111111111111111','2025-05'))
16
+ profile = CustomerPaymentProfileExType.new(nil,nil,payment,nil,nil)
17
+
18
+ request.paymentProfile = profile
19
+ request.customerProfileId = customerProfileId
20
+ profile.customerPaymentProfileId = customerPaymentProfileId
21
+
22
+ response = transaction.update_customer_payment_profile(request)
23
+
24
+
25
+ if response.messages.resultCode == MessageTypeEnum::Ok
26
+ puts "Successfully updated customer payment profile with ID #{request.paymentProfile.customerPaymentProfileId}."
27
+ else
28
+ puts response.messages.messages[0].text
29
+ raise "Failed to update customer with customer payment profile ID #{request.paymentProfile.customerPaymentProfileId}."
30
+ end
31
+ return response
32
+ end
33
+
34
+ if __FILE__ == $0
35
+ update_customer_payment_profile()
36
+ end
37
+
@@ -0,0 +1,37 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def update_customer_profile(customerProfileId = '35704713')
9
+ config = YAML.load_file(File.dirname(__FILE__) + "/../credentials.yml")
10
+
11
+ transaction = Transaction.new(config['api_login_id'], config['api_transaction_key'], :gateway => :sandbox)
12
+
13
+
14
+ request = UpdateCustomerProfileRequest.new
15
+ request.profile = CustomerProfileExType.new
16
+
17
+ #Edit this part to select a specific customer
18
+ request.profile.customerProfileId = customerProfileId
19
+ request.profile.merchantCustomerId = "mycustomer"
20
+ request.profile.description = "john doe"
21
+ request.profile.email = "email@email.com"
22
+ response = transaction.update_customer_profile(request)
23
+
24
+
25
+ if response.messages.resultCode == MessageTypeEnum::Ok
26
+ puts "Successfully updated customer with customer profile ID #{request.profile.customerProfileId}."
27
+ else
28
+ puts response.messages.messages[0].text
29
+ raise "Failed to update customer with customer profile ID #{request.profile.customerProfileId}."
30
+ end
31
+ return response
32
+ end
33
+
34
+ if __FILE__ == $0
35
+ update_customer_profile()
36
+ end
37
+
@@ -0,0 +1,37 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def update_customer_shipping_address(customerProfileId = '35894174', customerAddressId = '35745790')
9
+ config = YAML.load_file(File.dirname(__FILE__) + "/../credentials.yml")
10
+
11
+ transaction = Transaction.new(config['api_login_id'], config['api_transaction_key'], :gateway => :sandbox)
12
+
13
+
14
+ request = UpdateCustomerShippingAddressRequest.new
15
+
16
+
17
+ request.address = CustomerAddressExType.new('John','Doe','Anet','800 N 106th')
18
+
19
+ #Edit this part to select a specific customer
20
+ request.address.customerAddressId = customerAddressId
21
+ request.customerProfileId = customerProfileId
22
+
23
+ response = transaction.update_customer_shipping_profile(request)
24
+
25
+
26
+ if response.messages.resultCode == MessageTypeEnum::Ok
27
+ puts "Successfully updated customer with customer profile ID #{request.address.customerAddressId}."
28
+ else
29
+ puts response.messages.messages[0].text
30
+ raise "Failed to update customer with customer profile ID #{request.address.customerAddressId}."
31
+ end
32
+ return response
33
+ end
34
+
35
+ if __FILE__ == $0
36
+ update_customer_shipping_address()
37
+ end
@@ -0,0 +1,37 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def validate_customer_payment_profile(customerProfileId = '36152115', customerPaymentProfileId = '32689262')
9
+ config = YAML.load_file(File.dirname(__FILE__) + "/../credentials.yml")
10
+
11
+ transaction = Transaction.new(config['api_login_id'], config['api_transaction_key'], :gateway => :sandbox)
12
+
13
+ request = ValidateCustomerPaymentProfileRequest.new
14
+
15
+ #Edit this part to select a specific customer
16
+ request.customerProfileId = customerProfileId
17
+ request.customerPaymentProfileId = customerPaymentProfileId
18
+ request.validationMode = ValidationModeEnum::TestMode
19
+
20
+ response = transaction.validate_customer_payment_profile(request)
21
+
22
+ if response.messages.resultCode == MessageTypeEnum::Ok
23
+ puts "Successfully validated customer with customer profile ID #{request.customerProfileId}"
24
+ puts "Direct Response: #{response.directResponse} "
25
+ else
26
+ puts response.messages.messages[0].code
27
+ puts response.messages.messages[0].text
28
+ raise "Failed to validate customer with customer profile ID #{request.customerProfileId} and payment profile ID #{customerPaymentProfileId}"
29
+ end
30
+
31
+ return response
32
+
33
+ end
34
+
35
+ if __FILE__ == $0
36
+ validate_customer_payment_profile()
37
+ end
@@ -0,0 +1,57 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def approve_or_decline_held_transaction(refTransId)
9
+ config = YAML.load_file(File.dirname(__FILE__) + "/../credentials.yml")
10
+
11
+ transaction = Transaction.new(config['api_login_id'], config['api_transaction_key'], :gateway => :sandbox)
12
+
13
+ request = UpdateHeldTransactionRequest.new
14
+
15
+ request.heldTransactionRequest = HeldTransactionRequestType.new()
16
+ request.heldTransactionRequest.action = AfdsTransactionEnum::Approve
17
+ request.heldTransactionRequest.refTransId = "60012148061"
18
+
19
+ response = transaction.update_held_transaction(request)
20
+
21
+ if response != nil
22
+ if response.messages.resultCode == MessageTypeEnum::Ok
23
+ if response.transactionResponse != nil && response.transactionResponse.messages != nil
24
+ puts "Successfully updated transaction: #{response.transactionResponse.authCode})"
25
+ puts "Transaction Response code: #{response.transactionResponse.responseCode}"
26
+ puts "Code: #{response.transactionResponse.messages.messages[0].code}"
27
+ puts "Description: #{response.transactionResponse.messages.messages[0].description}"
28
+ else
29
+ puts "Update Transaction Failed"
30
+ if response.transactionResponse.errors != nil
31
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
32
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
33
+ end
34
+ raise "Failed to update transaction."
35
+ end
36
+ else
37
+ puts "Update transaction Failed"
38
+ if response.transactionResponse != nil && response.transactionResponse.errors != nil
39
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
40
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
41
+ else
42
+ puts "Error Code: #{response.messages.messages[0].code}"
43
+ puts "Error Message: #{response.messages.messages[0].text}"
44
+ end
45
+ raise "Failed to update transaction."
46
+ end
47
+ else
48
+ puts "Response is null"
49
+ raise "Failed to update transaction."
50
+ end
51
+
52
+ return response
53
+ end
54
+
55
+ if __FILE__ == $0
56
+ update_held_transaction("12345")
57
+ end
@@ -0,0 +1,47 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def get_held_transaction_List()
9
+
10
+ config = YAML.load_file(File.dirname(__FILE__) + "/../credentials.yml")
11
+ #merchant information
12
+ transaction = AuthorizeNet::API::Transaction.new(config['api_login_id'], config['api_transaction_key'], :gateway => :sandbox)
13
+
14
+ request = GetUnsettledTransactionListRequest.new
15
+
16
+ request.status = TransactionGroupStatusEnum::PENDINGAPPROVAL;
17
+ request.paging = Paging.new;
18
+ request.paging.limit = 10;
19
+ request.paging.offset = 1;
20
+
21
+ request.sorting = TransactionListSorting.new;
22
+ request.sorting.orderBy = TransactionListOrderFieldEnum::Id;
23
+ request.sorting.orderDescending = true;
24
+
25
+ response = transaction.get_unsettled_transaction_list(request)
26
+
27
+ if response.messages.resultCode == MessageTypeEnum::Ok
28
+ unsettled_transactions = response.transactions
29
+
30
+ response.transactions.transaction.each do |unsettled_transaction|
31
+ puts "Transaction #{unsettled_transaction.transId} was submitted at #{unsettled_transaction.submitTimeUTC}"
32
+
33
+ end
34
+ puts "Total transaction received #{unsettled_transactions.transaction.length}"
35
+ else
36
+ puts "ERROR message: #{response.messages.messages[0].text}"
37
+ puts "ERROR code: #{response.messages.messages[0].code}"
38
+ raise "Failed to get unsettled transaction list."
39
+ end
40
+
41
+ return response
42
+ end
43
+
44
+
45
+ if __FILE__ == $0
46
+ get_unsettled_transaction_List()
47
+ end
@@ -0,0 +1,59 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def create_an_accept_transaction()
9
+ config = YAML.load_file(File.dirname(__FILE__) + "/../credentials.yml")
10
+
11
+ transaction = Transaction.new(config['api_login_id'], config['api_transaction_key'], :gateway => :sandbox)
12
+
13
+ request = CreateTransactionRequest.new
14
+ request.transactionRequest = TransactionRequestType.new()
15
+ request.transactionRequest.amount = ((SecureRandom.random_number + 1 ) * 150 ).round(2)
16
+ request.transactionRequest.payment = PaymentType.new
17
+ request.transactionRequest.payment.opaqueData = OpaqueDataType.new('COMMON.ACCEPT.INAPP.PAYMENT','9479246682350209005001',nil)
18
+
19
+ request.transactionRequest.transactionType = TransactionTypeEnum::AuthCaptureTransaction
20
+
21
+ response = transaction.create_transaction(request)
22
+
23
+ if response != nil
24
+ if response.messages.resultCode == MessageTypeEnum::Ok
25
+ if response.transactionResponse != nil && response.transactionResponse.messages != nil
26
+ puts "Successfully made a purchase (authorization code: #{response.transactionResponse.authCode})"
27
+ puts "Transaction Response code: #{response.transactionResponse.responseCode}"
28
+ puts "Code: #{response.transactionResponse.messages.messages[0].code}"
29
+ puts "Description: #{response.transactionResponse.messages.messages[0].description}"
30
+ else
31
+ puts "Transaction Failed"
32
+ if response.transactionResponse.errors != nil
33
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
34
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
35
+ end
36
+ raise "Failed to make a purchase."
37
+ end
38
+ else
39
+ puts "Transaction Failed"
40
+ if response.transactionResponse != nil && response.transactionResponse.errors != nil
41
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
42
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
43
+ else
44
+ puts "Error Code: #{response.messages.messages[0].code}"
45
+ puts "Error Message: #{response.messages.messages[0].text}"
46
+ end
47
+ raise "Failed to make a purchase."
48
+ end
49
+ else
50
+ puts "Response is null"
51
+ raise "Failed to make a purchase."
52
+ end
53
+
54
+ return response
55
+ end
56
+
57
+ if __FILE__ == $0
58
+ create_an_accept_transaction()
59
+ end