authorizenetsample 1.1.6 → 1.1.7

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 +4 -4
  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 +23 -5
  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 +39 -3
  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 +47 -6
  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 +70 -49
  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 +21 -0
  62. data/lib/authorizenetsample.rb +4 -12
  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 +69 -6
@@ -0,0 +1,62 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def credit_bank_account()
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
+
15
+ request.transactionRequest = TransactionRequestType.new()
16
+ request.transactionRequest.amount = ((SecureRandom.random_number + 1 ) * 15 ).round(2)
17
+ request.transactionRequest.payment = PaymentType.new
18
+ #Generate random bank account number
19
+ randomAccountNumber= Random.rand(100000000..9999999999).to_s;
20
+ request.transactionRequest.payment.bankAccount = BankAccountType.new('checking', '122000661', "'#{randomAccountNumber}'", 'John Doe','PPD','Wells Fargo Bank NA','101')
21
+ request.transactionRequest.transactionType = TransactionTypeEnum::RefundTransaction
22
+
23
+ response = transaction.create_transaction(request)
24
+
25
+ if response != nil
26
+ if response.messages.resultCode == MessageTypeEnum::Ok
27
+ if response.transactionResponse != nil && (response.transactionResponse.messages != nil)
28
+ puts "Successfully credited (Transaction ID: #{response.transactionResponse.transId})"
29
+ puts "Transaction Response code: #{response.transactionResponse.responseCode}"
30
+ puts "Code: #{response.transactionResponse.messages.messages[0].code}"
31
+ puts "Description: #{response.transactionResponse.messages.messages[0].description}"
32
+ else
33
+ puts "Transaction Failed"
34
+ puts "Transaction Response code: #{response.transactionResponse.responseCode}"
35
+ if response.transactionResponse.errors != nil
36
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
37
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
38
+ end
39
+ puts "Failed to credit bank account."
40
+ end
41
+ else
42
+ puts "Transaction Failed"
43
+ if response.transactionResponse != nil && response.transactionResponse.errors != nil
44
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
45
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
46
+ else
47
+ puts "Error Code: #{response.messages.messages[0].code}"
48
+ puts "Error Message: #{response.messages.messages[0].text}"
49
+ end
50
+ puts "Failed to credit bank account."
51
+ end
52
+ else
53
+ puts "Response is null"
54
+ raise "Failed to credit bank account."
55
+ end
56
+
57
+ return response
58
+ end
59
+
60
+ if __FILE__ == $0
61
+ credit_bank_account()
62
+ end
@@ -0,0 +1,64 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def debit_bank_account()
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
+
15
+ request.transactionRequest = TransactionRequestType.new()
16
+ request.transactionRequest.amount = ((SecureRandom.random_number + 1 ) * 15 ).round(2)
17
+ request.transactionRequest.payment = PaymentType.new
18
+ #Generate random bank account number
19
+ randomAccountNumber= Random.rand(100000000..9999999999).to_s;
20
+ request.transactionRequest.payment.bankAccount = BankAccountType.new('checking','122000661',"'#{randomAccountNumber}'", 'John Doe','WEB','Wells Fargo Bank NA','101')
21
+ request.transactionRequest.transactionType = TransactionTypeEnum::AuthCaptureTransaction
22
+ request.transactionRequest.order = OrderType.new("invoiceNumber#{(SecureRandom.random_number*1000000).round(0)}","Order Description")
23
+
24
+ response = transaction.create_transaction(request)
25
+
26
+ if response != nil
27
+ if response.messages.resultCode == MessageTypeEnum::Ok
28
+ if response.transactionResponse != nil && (response.transactionResponse.messages != nil)
29
+ puts "Successfully debited bank account."
30
+ puts " Transaction ID: #{response.transactionResponse.transId}"
31
+ puts " Transaction response code: #{response.transactionResponse.responseCode}"
32
+ puts " Code: #{response.transactionResponse.messages.messages[0].code}"
33
+ puts " Description: #{response.transactionResponse.messages.messages[0].description}"
34
+ else
35
+ puts "Transaction Failed"
36
+ puts "Transaction response code: #{response.transactionResponse.responseCode}"
37
+ if response.transactionResponse.errors != nil
38
+ puts " Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
39
+ puts " Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
40
+ end
41
+ puts "Failed to debit bank account."
42
+ end
43
+ else
44
+ puts "Transaction Failed"
45
+ if response.transactionResponse != nil && response.transactionResponse.errors != nil
46
+ puts " Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
47
+ puts " Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
48
+ else
49
+ puts " Error Code: #{response.messages.messages[0].code}"
50
+ puts " Error Message: #{response.messages.messages[0].text}"
51
+ end
52
+ puts "Failed to debit bank account."
53
+ end
54
+ else
55
+ puts "Response is null"
56
+ raise "Failed to debit bank account."
57
+ end
58
+
59
+ return response
60
+ end
61
+
62
+ if __FILE__ == $0
63
+ debit_bank_account()
64
+ end
@@ -1,49 +1,70 @@
1
- require 'rubygems'
2
- require 'yaml'
3
- require 'authorizenet'
4
- require 'securerandom'
5
-
6
- include AuthorizeNet::API
7
- #Function to get the token to load the accept hosted payment form
8
- def get_an_accept_payment_page(api_login_id,api_transaction_key,customerId=nil,iframeCommunicatorUrl)
9
-
10
- transaction = Transaction.new(api_login_id, api_transaction_key, :gateway => :sandbox)
11
-
12
- custProfile = CustomerProfilePaymentType.new
13
- custProfile.customerProfileId = customerId
14
-
15
- transactionRequest = TransactionRequestType.new
16
- transactionRequest.amount = 99
17
- transactionRequest.transactionType = TransactionTypeEnum::AuthCaptureTransaction
18
- transactionRequest.profile = custProfile
19
-
20
- setting1 = SettingType.new
21
- setting1.settingName = SettingNameEnum::HostedPaymentButtonOptions
22
- setting1.settingValue = "{\"text\": \"Pay\"}"
23
-
24
- setting2 = SettingType.new
25
- setting2.settingName = SettingNameEnum::HostedPaymentOrderOptions
26
- setting2.settingValue = "{\"show\": false}"
27
-
28
- setting4 = SettingType.new
29
- setting4.settingName = SettingNameEnum::HostedPaymentBillingAddressOptions
30
- setting4.settingValue = "{\"show\": false}"
31
-
32
- setting3 = SettingType.new
33
- setting3.settingName = SettingNameEnum::HostedPaymentIFrameCommunicatorUrl
34
- setting3.settingValue = "{\"url\": \"#{iframeCommunicatorUrl}\"}"
35
- #Disabling reciept display to have dynamic success message
36
- setting5 = SettingType.new
37
- setting5.settingName = SettingNameEnum::HostedPaymentReturnOptions
38
- setting5.settingValue = "{\"showReceipt\": false,\"url\": \"#{iframeCommunicatorUrl}\",\"urlText\":\"Continue\",\"cancelUrlText\":\"Cancel\"}"
39
-
40
- settings = Settings.new([ setting1, setting2,setting3,setting4,setting5])
41
-
42
- request = GetHostedPaymentPageRequest.new
43
- request.transactionRequest = transactionRequest
44
- request.hostedPaymentSettings = settings
45
- #Response will have the token to load the hosted form from server(Error hanling in web api)
46
- response = transaction.get_hosted_payment_page(request)
47
-
48
- return response
49
- end
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def get_an_accept_payment_page(api_login_id,api_transaction_key,customerId=nil,iframeCommunicatorUrl)
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
+ transaction = Transaction.new(api_login_id, api_transaction_key, :gateway => :sandbox)
14
+
15
+ custProfile = CustomerProfilePaymentType.new
16
+ custProfile.customerProfileId = customerId
17
+
18
+ transactionRequest = TransactionRequestType.new
19
+ transactionRequest.amount = 99
20
+ transactionRequest.transactionType = TransactionTypeEnum::AuthCaptureTransaction
21
+ transactionRequest.profile = custProfile
22
+
23
+
24
+
25
+ setting1 = SettingType.new
26
+ setting1.settingName = SettingNameEnum::HostedPaymentButtonOptions
27
+ setting1.settingValue = "{\"text\": \"Pay\"}"
28
+
29
+ setting2 = SettingType.new
30
+ setting2.settingName = SettingNameEnum::HostedPaymentOrderOptions
31
+ setting2.settingValue = "{\"show\": false}"
32
+
33
+ setting4 = SettingType.new
34
+ setting4.settingName = SettingNameEnum::HostedPaymentBillingAddressOptions
35
+ setting4.settingValue = "{\"show\": false}"
36
+
37
+ setting3 = SettingType.new
38
+ setting3.settingName = SettingNameEnum::HostedPaymentIFrameCommunicatorUrl
39
+ setting3.settingValue = "{\"url\": \"#{iframeCommunicatorUrl}\"}"
40
+
41
+ setting5 = SettingType.new
42
+ setting5.settingName = SettingNameEnum::HostedPaymentReturnOptions
43
+ setting5.settingValue = "{\"showReceipt\": false,\"url\": \"#{iframeCommunicatorUrl}\",\"urlText\":\"Continue\",\"cancelUrlText\":\"Cancel\"}"
44
+
45
+
46
+
47
+
48
+ settings = Settings.new([ setting1, setting2,setting3,setting4,setting5])
49
+
50
+ request = GetHostedPaymentPageRequest.new
51
+ request.transactionRequest = transactionRequest
52
+ request.hostedPaymentSettings = settings
53
+
54
+ response = transaction.get_hosted_payment_page(request)
55
+
56
+ # if response.messages.resultCode == MessageTypeEnum::Ok
57
+ # puts "#{response.messages.messages[0].code}"
58
+ # puts "#{response.messages.messages[0].text}"
59
+ # puts "#{response.token}"
60
+ # else
61
+ # puts "#{response.messages.messages[0].code}"
62
+ # puts "#{response.messages.messages[0].text}"
63
+ # raise "Failed to get hosted payment page"
64
+ # end
65
+ return response
66
+ end
67
+
68
+ if __FILE__ == $0
69
+ get_an_accept_payment_page()
70
+ end
@@ -0,0 +1,60 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def refund_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
+
15
+ request.transactionRequest = TransactionRequestType.new()
16
+ request.transactionRequest.amount = ((SecureRandom.random_number + 1 ) * 150 ).round(2)
17
+ request.transactionRequest.payment = PaymentType.new
18
+ request.transactionRequest.payment.creditCard = CreditCardType.new('0015','XXXX')
19
+ request.transactionRequest.refTransId = 2233511297
20
+ request.transactionRequest.transactionType = TransactionTypeEnum::RefundTransaction
21
+
22
+ response = transaction.create_transaction(request)
23
+
24
+ if response != nil
25
+ if response.messages.resultCode == MessageTypeEnum::Ok
26
+ if response.transactionResponse != nil && response.transactionResponse.messages != nil
27
+ puts "Successfully refunded a transaction (Transaction ID #{response.transactionResponse.transId})"
28
+ puts "Transaction Response code: #{response.transactionResponse.responseCode}"
29
+ puts "Code: #{response.transactionResponse.messages.messages[0].code}"
30
+ puts "Description: #{response.transactionResponse.messages.messages[0].description}"
31
+ else
32
+ puts "Transaction Failed"
33
+ if response.transactionResponse.errors != nil
34
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
35
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
36
+ end
37
+ raise "Failed to refund a transaction."
38
+ end
39
+ else
40
+ puts "Transaction Failed"
41
+ if response.transactionResponse != nil && response.transactionResponse.errors != nil
42
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
43
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
44
+ else
45
+ puts "Error Code: #{response.messages.messages[0].code}"
46
+ puts "Error Message: #{response.messages.messages[0].text}"
47
+ end
48
+ raise "Failed to refund a transaction."
49
+ end
50
+ else
51
+ puts "Response is null"
52
+ raise "Failed to refund a transaction."
53
+ end
54
+
55
+ return response
56
+ end
57
+
58
+ if __FILE__ == $0
59
+ refund_transaction()
60
+ end
@@ -0,0 +1,44 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def update_split_tender_group()
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
+ #set the split tender ID here
14
+ splitTenderId = "115901"
15
+ #set the split tender status here.
16
+ #SplitTenderStatusEnum::Completed
17
+ #SplitTenderStatusEnum::Held
18
+ #SplitTenderStatusEnum::Voided
19
+ splitTenderStatus = SplitTenderStatusEnum::Voided
20
+
21
+ request = UpdateSplitTenderGroupRequest.new
22
+
23
+ request.splitTenderId = splitTenderId
24
+ request.splitTenderStatus = splitTenderStatus
25
+
26
+ response = transaction.update_split_tender_group(request)
27
+
28
+ if response.messages.resultCode == MessageTypeEnum::Ok
29
+ puts "Successful Update Split Tender Group"
30
+ puts response.messages.messages[0].code
31
+ puts response.messages.messages[0].text
32
+
33
+ else
34
+ puts response.messages.messages[0].code
35
+ puts response.messages.messages[0].text
36
+ raise "Failed to update split tender group."
37
+ end
38
+
39
+ return response
40
+ end
41
+
42
+ if __FILE__ == $0
43
+ update_split_tender_group()
44
+ end
@@ -0,0 +1,103 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def void_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
+
15
+ request.transactionRequest = TransactionRequestType.new()
16
+ request.transactionRequest.amount = ((SecureRandom.random_number + 1 ) * 150 ).round(2)
17
+ request.transactionRequest.payment = PaymentType.new
18
+ request.transactionRequest.payment.creditCard = CreditCardType.new('4242424242424242','0728','123')
19
+ request.transactionRequest.transactionType = TransactionTypeEnum::AuthCaptureTransaction
20
+
21
+ response = transaction.create_transaction(request)
22
+
23
+ authTransId = 0
24
+
25
+ if response != nil
26
+ if response.messages.resultCode == MessageTypeEnum::Ok
27
+ if response.transactionResponse != nil && response.transactionResponse.messages != nil
28
+ puts "Successful AuthCapture Transaction (authorization code: #{response.transactionResponse.authCode})"
29
+ authTransId = response.transactionResponse.transId
30
+ puts "Transaction ID (for later void: #{authTransId})"
31
+ puts "Transaction Response code: #{response.transactionResponse.responseCode}"
32
+ puts "Code: #{response.transactionResponse.messages.messages[0].code}"
33
+ puts "Description: #{response.transactionResponse.messages.messages[0].description}"
34
+ else
35
+ puts "Transaction Failed"
36
+ if response.transactionResponse.errors != nil
37
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
38
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
39
+ end
40
+ raise "Failed to authorize card."
41
+ end
42
+ else
43
+ puts "Transaction Failed"
44
+ if response.transactionResponse != nil && response.transactionResponse.errors != nil
45
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
46
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
47
+ else
48
+ puts "Error Code: #{response.messages.messages[0].code}"
49
+ puts "Error Message: #{response.messages.messages[0].text}"
50
+ end
51
+ raise "Failed to authorize card."
52
+ end
53
+ else
54
+ puts "Response is null"
55
+ raise "Failed to authorize card."
56
+ end
57
+
58
+ request = CreateTransactionRequest.new
59
+
60
+ request.transactionRequest = TransactionRequestType.new()
61
+ request.transactionRequest.refTransId = authTransId
62
+ request.transactionRequest.transactionType = TransactionTypeEnum::VoidTransaction
63
+
64
+ response = transaction.create_transaction(request)
65
+
66
+
67
+ if response != nil
68
+ if response.messages.resultCode == MessageTypeEnum::Ok
69
+ if response.transactionResponse != nil && response.transactionResponse.messages != nil
70
+ puts "Successfully voided the transaction (Transaction ID: #{response.transactionResponse.transId})"
71
+ puts "Transaction Response code: #{response.transactionResponse.responseCode}"
72
+ puts "Code: #{response.transactionResponse.messages.messages[0].code}"
73
+ puts "Description: #{response.transactionResponse.messages.messages[0].description}"
74
+ else
75
+ puts "Transaction Failed"
76
+ if response.transactionResponse.errors != nil
77
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
78
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
79
+ end
80
+ raise "Failed to void the transaction."
81
+ end
82
+ else
83
+ puts "Transaction Failed"
84
+ if response.transactionResponse != nil && response.transactionResponse.errors != nil
85
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
86
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
87
+ else
88
+ puts "Error Code: #{response.messages.messages[0].code}"
89
+ puts "Error Message: #{response.messages.messages[0].text}"
90
+ end
91
+ raise "Failed to void the transaction."
92
+ end
93
+ else
94
+ puts "Response is null"
95
+ raise "Failed to void the transaction."
96
+ end
97
+
98
+ return response
99
+ end
100
+
101
+ if __FILE__ == $0
102
+ void_transaction()
103
+ end