authorizenetsample 0.1

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 (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