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,104 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def capture_previously_authorized_amount()
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
+ # Do an AuthOnly Transaction first, so we can capture it separately
16
+ request.transactionRequest = TransactionRequestType.new()
17
+ random_amount = ((SecureRandom.random_number + 1 ) * 150 ).round(2)
18
+ request.transactionRequest.amount = random_amount
19
+ request.transactionRequest.payment = PaymentType.new
20
+ request.transactionRequest.payment.creditCard = CreditCardType.new('4242424242424242','0728','123')
21
+ request.transactionRequest.transactionType = TransactionTypeEnum::AuthOnlyTransaction
22
+
23
+ response = transaction.create_transaction(request)
24
+
25
+ authTransId = response.transactionResponse.transId
26
+
27
+ if response != nil
28
+ if response.messages.resultCode == MessageTypeEnum::Ok
29
+ if response.transactionResponse != nil && response.transactionResponse.messages != nil
30
+ puts "Successfully created an AuthOnly Transaction (authorization code: #{response.transactionResponse.authCode})"
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
+ puts "Transaction ID: #{response.transactionResponse.transId} (for later capture)"
35
+ else
36
+ puts "Transaction Failed"
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
+ raise "Failed to authorize card."
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
+ raise "Failed to authorize card."
53
+ end
54
+ else
55
+ puts "Response is null"
56
+ raise "Failed to authorize card."
57
+ end
58
+
59
+ request = CreateTransactionRequest.new
60
+
61
+ request.transactionRequest = TransactionRequestType.new()
62
+ request.transactionRequest.amount = random_amount
63
+ request.transactionRequest.refTransId = authTransId
64
+ request.transactionRequest.transactionType = TransactionTypeEnum::PriorAuthCaptureTransaction
65
+
66
+ response = transaction.create_transaction(request)
67
+
68
+ if response != nil
69
+ if response.messages.resultCode == MessageTypeEnum::Ok
70
+ if response.transactionResponse != nil && response.transactionResponse.messages != nil
71
+ puts "Successfully captured the authorized amount (Transaction ID: #{response.transactionResponse.transId})"
72
+ puts "Transaction Response code: #{response.transactionResponse.responseCode}"
73
+ puts "Code: #{response.transactionResponse.messages.messages[0].code}"
74
+ puts "Description: #{response.transactionResponse.messages.messages[0].description}"
75
+ else
76
+ puts "Transaction Failed"
77
+ if response.transactionResponse.errors != nil
78
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
79
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
80
+ end
81
+ raise "Failed to capture."
82
+ end
83
+ else
84
+ puts "Transaction Failed"
85
+ if response.transactionResponse != nil && response.transactionResponse.errors != nil
86
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
87
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
88
+ else
89
+ puts "Error Code: #{response.messages.messages[0].code}"
90
+ puts "Error Message: #{response.messages.messages[0].text}"
91
+ end
92
+ raise "Failed to capture."
93
+ end
94
+ else
95
+ puts "Response is null"
96
+ raise "Failed to capture."
97
+ end
98
+
99
+ return response
100
+ end
101
+
102
+ if __FILE__ == $0
103
+ capture_previously_authorized_amount()
104
+ end
@@ -0,0 +1,104 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def charge_credit_card()
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.customer = CustomerDataType.new(CustomerTypeEnum::Individual,"CUST-1234","bmc@mail.com",DriversLicenseType.new("DrivLicenseNumber123","WA","05/05/1990"),"123456789")
20
+ request.transactionRequest.billTo = CustomerAddressType.new("firstNameBT","lastNameBT","companyBT","addressBT","New York","NY",
21
+ "10010","USA","2121111111","2121111111")
22
+ request.transactionRequest.shipTo = NameAndAddressType.new("firstNameST","lastNameST","companyST","addressST","New York","NY",
23
+ "10010","USA")
24
+ request.transactionRequest.transactionType = TransactionTypeEnum::AuthCaptureTransaction
25
+ request.transactionRequest.order = OrderType.new("invoiceNumber#{(SecureRandom.random_number*1000000).round(0)}","Order Description")
26
+
27
+ # tax, duty, and shipping are all instances of ExtendedAmountType
28
+ # Arguments for ExtendedAmountType.new are amount, name, description
29
+ request.transactionRequest.tax = ExtendedAmountType.new("0.99","Sales tax","Local municipality sales tax")
30
+ # Or, you can specify the components one at a time:
31
+ request.transactionRequest.shipping = ExtendedAmountType.new
32
+ request.transactionRequest.shipping.amount = "5.20"
33
+ request.transactionRequest.shipping.name = "Shipping charges"
34
+ request.transactionRequest.shipping.description = "Ultra-fast 3 day shipping"
35
+
36
+ # Build an array of line items
37
+ lineItemArr = Array.new
38
+ # Arguments for LineItemType.new are itemId, name, description, quanitity, unitPrice, taxable
39
+ lineItem = LineItemType.new("SampleItemId","SampleName","SampleDescription","1","10.00","true")
40
+ lineItemArr.push(lineItem)
41
+ # Or, you can specify the components one at a time:
42
+ lineItem = LineItemType.new
43
+ lineItem.itemId = "1234"
44
+ lineItem.name = "Line Item 2"
45
+ lineItem.description = "another line item"
46
+ lineItem.quantity = "2"
47
+ lineItem.unitPrice = "2.95"
48
+ lineItem.taxable = "false"
49
+ lineItemArr.push(lineItem)
50
+ request.transactionRequest.lineItems = LineItems.new(lineItemArr)
51
+
52
+ # Build an array of user fields
53
+ userFieldArr = Array.new
54
+ requestUserField = UserField.new("userFieldName","userFieldvalue")
55
+ userFieldArr.push(requestUserField)
56
+ requestUserField = UserField.new("userFieldName1","userFieldvalue1")
57
+ userFieldArr.push(requestUserField)
58
+ request.transactionRequest.userFields = UserFields.new(userFieldArr)
59
+
60
+
61
+ response = transaction.create_transaction(request)
62
+
63
+ if response != nil
64
+ if response.messages.resultCode == MessageTypeEnum::Ok
65
+ if response.transactionResponse != nil && response.transactionResponse.messages != nil
66
+ puts "Successful charge (auth + capture) (authorization code: #{response.transactionResponse.authCode})"
67
+ puts "Transaction ID: #{response.transactionResponse.transId}"
68
+ puts "Transaction Response Code: #{response.transactionResponse.responseCode}"
69
+ puts "Code: #{response.transactionResponse.messages.messages[0].code}"
70
+ puts "Description: #{response.transactionResponse.messages.messages[0].description}"
71
+ puts "User Fields: "
72
+ response.transactionResponse.userFields.userFields.each do |userField|
73
+ puts userField.value
74
+ end
75
+ else
76
+ puts "Transaction Failed"
77
+ if response.transactionResponse.errors != nil
78
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
79
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
80
+ end
81
+ raise "Failed to charge card."
82
+ end
83
+ else
84
+ puts "Transaction Failed"
85
+ if response.transactionResponse != nil && response.transactionResponse.errors != nil
86
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
87
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
88
+ else
89
+ puts "Error Code: #{response.messages.messages[0].code}"
90
+ puts "Error Message: #{response.messages.messages[0].text}"
91
+ end
92
+ raise "Failed to charge card."
93
+ end
94
+ else
95
+ puts "Response is null"
96
+ raise "Failed to charge card."
97
+ end
98
+
99
+ return response
100
+ end
101
+
102
+ if __FILE__ == $0
103
+ charge_credit_card()
104
+ end
@@ -0,0 +1,61 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def charge_customer_profile(customerProfileId = '36731856', customerPaymentProfileId = '33211899')
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.transactionType = TransactionTypeEnum::AuthCaptureTransaction
18
+ request.transactionRequest.order = OrderType.new("invoiceNumber#{(SecureRandom.random_number*1000000).round(0)}","Order Description")
19
+ request.transactionRequest.profile = CustomerProfilePaymentType.new
20
+ request.transactionRequest.profile.customerProfileId = customerProfileId
21
+ request.transactionRequest.profile.paymentProfile = PaymentProfile.new(customerPaymentProfileId)
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 "Success, Auth Code: #{response.transactionResponse.authCode}"
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
+ if response.transactionResponse.errors != nil
35
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
36
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
37
+ end
38
+ raise "Failed to charge customer profile."
39
+ end
40
+ else
41
+ puts "Transaction Failed"
42
+ if response.transactionResponse != nil && response.transactionResponse.errors != nil
43
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
44
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
45
+ else
46
+ puts "Error Code: #{response.messages.messages[0].code}"
47
+ puts "Error Message: #{response.messages.messages[0].text}"
48
+ end
49
+ raise "Failed to charge customer profile."
50
+ end
51
+ else
52
+ puts "Response is null"
53
+ raise "Failed to charge customer profile."
54
+ end
55
+
56
+ return response
57
+ end
58
+
59
+ if __FILE__ == $0
60
+ charge_customer_profile()
61
+ 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 charge_tokenized_credit_card()
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.transactionType = TransactionTypeEnum::AuthCaptureTransaction
17
+ request.transactionRequest.amount = ((SecureRandom.random_number + 1 ) * 150 ).round(2)
18
+ request.transactionRequest.payment = PaymentType.new
19
+ request.transactionRequest.payment.creditCard = CreditCardType.new('4242424242424242','0728','123',nil,"EjRWeJASNFZ4kBI0VniQEjRWeJA=")
20
+ request.transactionRequest.order = OrderType.new("invoiceNumber#{(SecureRandom.random_number*1000000).round(0)}","Order Description")
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 charged tokenized credit card (authorization code: #{response.transactionResponse.authCode})"
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 charge tokenized credit card."
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 charge tokenized credit card."
49
+ end
50
+ else
51
+ puts "Response is null"
52
+ raise "Failed to charge tokenized credit card."
53
+ end
54
+
55
+ return response
56
+ end
57
+
58
+ if __FILE__ == $0
59
+ charge_tokenized_credit_card()
60
+ end
@@ -0,0 +1,62 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def create_an_accept_payment_transaction(api_login_id.api_transaction_key,token)
9
+ puts File.dirname(__FILE__)
10
+ config = YAML.load_file(File.dirname(__FILE__) + "/../credentials.yml")
11
+
12
+ transaction = Transaction.new(config['api_login_id'], config['api_transaction_key'], :gateway => :sandbox)
13
+
14
+ request = CreateTransactionRequest.new
15
+
16
+ request.transactionRequest = TransactionRequestType.new()
17
+ request.transactionRequest.amount = ((SecureRandom.random_number + 1 ) * 150 ).round(2)
18
+ request.transactionRequest.payment = PaymentType.new
19
+ request.transactionRequest.payment.opaqueData = OpaqueDataType.new('COMMON.ACCEPT.INAPP.PAYMENT','eyJjb2RlIjoiNTBfMl8wNjAwMDUzQTczNERGMDY0MUMyMzUxMkIyQTM2MUE3QTBFQUQ4NTIxQ0EzQjM3MUU1REMyMjlEQkYwMjRERjI5QzdFOTJBMDIzNzJGRDVDQkI0ODRDMTQ2NDYyQ0U4NkFCRjA0Q0Y3IiwidG9rZW4iOiI5NTM5MzYyNzY1NjM2NTgyODA0NjA0IiwidiI6IjEuMSJ9')
20
+ request.transactionRequest.customer = CustomerDataType.new(nil,nil,'bmc@mail.com')
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 "Successful charge (auth + capture) (authorization code: #{response.transactionResponse.authCode})"
30
+ # puts "Transaction Response code: #{response.transactionResponse.responseCode}"
31
+ # puts "Code: #{response.transactionResponse.messages.messages[0].code}"
32
+ # puts "Description: #{response.transactionResponse.messages.messages[0].description}"
33
+ # else
34
+ # puts "Transaction Failed"
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
+ # raise "Failed to charge card."
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
+ # raise "Failed to charge card."
51
+ # end
52
+ # else
53
+ # puts "Response is null"
54
+ # raise "Failed to charge card."
55
+ # end
56
+
57
+ return response
58
+ end
59
+
60
+ if __FILE__ == $0
61
+ create_an_accept_payment_transaction()
62
+ end
@@ -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