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,69 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def get_details(transId)
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
+ payPalType = PayPalType.new()
16
+ payPalType.successUrl = "http://www.merchanteCommerceSite.com/Success/TC25262"
17
+ payPalType.cancelUrl = "http://www.merchanteCommerceSite.com/Success/TC25262"
18
+
19
+ #standard api call to retrieve response
20
+ paymentType = PaymentType.new()
21
+ paymentType.payPal = payPalType
22
+
23
+ request.transactionRequest = TransactionRequestType.new()
24
+ request.transactionRequest.payment = paymentType
25
+ request.transactionRequest.refTransId = transId
26
+ request.transactionRequest.transactionType = TransactionTypeEnum::GetDetailsTransaction
27
+
28
+ response = transaction.create_transaction(request)
29
+
30
+ if response != nil
31
+ if response.messages.resultCode == MessageTypeEnum::Ok
32
+ if response.transactionResponse != nil && (response.transactionResponse.messages != nil)
33
+ puts "Paypal Get Details successful."
34
+ puts "Response Code: #{response.transactionResponse.responseCode}"
35
+ puts "Shipping address: #{response.transactionResponse.shipTo.address}, #{response.transactionResponse.shipTo.city}, #{response.transactionResponse.shipTo.state}, #{response.transactionResponse.shipTo.country}"
36
+ if response.transactionResponse.secureAcceptance != nil
37
+ puts "Payer ID: #{response.transactionResponse.secureAcceptance.PayerID}"
38
+ end
39
+ puts "Transaction Response code: #{response.transactionResponse.responseCode}"
40
+ puts "Code: #{response.transactionResponse.messages.messages[0].code}"
41
+ puts "Description: #{response.transactionResponse.messages.messages[0].description}"
42
+ else
43
+ puts "Transaction Failed"
44
+ if 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
+ end
48
+ end
49
+ else
50
+ puts "Transaction Failed"
51
+ if response.transactionResponse != nil && response.transactionResponse.errors != nil
52
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
53
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
54
+ else
55
+ puts "Error Code: #{response.messages.messages[0].code}"
56
+ puts "Error Message: #{response.messages.messages[0].text}"
57
+ end
58
+ end
59
+ else
60
+ puts "Response is null"
61
+ end
62
+
63
+ return response
64
+
65
+ end
66
+
67
+ if __FILE__ == $0
68
+ get_details()
69
+ end
@@ -0,0 +1,112 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def prior_authorization_capture()
9
+ config = YAML.load_file(File.dirname(__FILE__) + "/../credentials.yml")
10
+
11
+ puts "PayPal Prior Authorization Transaction"
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
+ 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','0220','123')
21
+ request.transactionRequest.transactionType = TransactionTypeEnum::AuthOnlyTransaction
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 "Successful AuthOnly Transaction (authorization code: #{response.transactionResponse.authCode})"
29
+ refTransId = response.transactionResponse.transId
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 authorize 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 authorize card."
51
+ end
52
+ else
53
+ puts "Response is null"
54
+ raise "Failed to authorize card."
55
+ end
56
+
57
+ transaction = Transaction.new(config['api_login_id'], config['api_transaction_key'], :gateway => :sandbox)
58
+
59
+ payPalType = PayPalType.new
60
+ payPalType.successUrl = "http://www.merchanteCommerceSite.com/Success/TC25262"
61
+ payPalType.cancelUrl = "http://www.merchanteCommerceSite.com/Success/TC25262"
62
+
63
+ paymentType = PaymentType.new
64
+ paymentType.payPal = payPalType
65
+
66
+ request = CreateTransactionRequest.new
67
+ request.transactionRequest = TransactionRequestType.new()
68
+ request.transactionRequest.refTransId = refTransId
69
+ random_amount = random_amount
70
+ request.transactionRequest.amount = random_amount
71
+ request.transactionRequest.payment = paymentType
72
+ request.transactionRequest.transactionType = TransactionTypeEnum::PriorAuthCaptureTransaction
73
+
74
+ response = transaction.create_transaction(request)
75
+
76
+ if response != nil
77
+ if response.messages.resultCode == MessageTypeEnum::Ok
78
+ if response.transactionResponse != nil && response.transactionResponse.messages != nil
79
+ puts "Successfully created a Prior Authorization capture transaction (authorization code: #{response.transactionResponse.authCode})"
80
+ puts "Transaction Response code: #{response.transactionResponse.responseCode}"
81
+ puts "Code: #{response.transactionResponse.messages.messages[0].code}"
82
+ puts "Description: #{response.transactionResponse.messages.messages[0].description}"
83
+ else
84
+ puts "Transaction Failed"
85
+ if 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
+ end
89
+ raise "Failed to make purchase."
90
+ end
91
+ else
92
+ puts "Transaction Failed"
93
+ if response.transactionResponse != nil && response.transactionResponse.errors != nil
94
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
95
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
96
+ else
97
+ puts "Error Code: #{response.messages.messages[0].code}"
98
+ puts "Error Message: #{response.messages.messages[0].text}"
99
+ end
100
+ raise "Failed to make purchase."
101
+ end
102
+ else
103
+ puts "Response is null"
104
+ raise "Failed to make purchase."
105
+ end
106
+
107
+ return response
108
+ end
109
+
110
+ if __FILE__ == $0
111
+ prior_authorization_capture()
112
+ end
@@ -0,0 +1,113 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def get_transId()
9
+ # Before we can void a transaction, we must first create a transaction,
10
+ # so that we have something to void.
11
+ config = YAML.load_file(File.dirname(__FILE__) + "/../credentials.yml")
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.creditCard = CreditCardType.new('4242424242424242','0220','123')
20
+ request.transactionRequest.transactionType = TransactionTypeEnum::AuthCaptureTransaction
21
+
22
+ response = transaction.create_transaction(request)
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
+ return authTransId
58
+ end
59
+
60
+ def void(authTransId)
61
+ # This function will take the transaction ID from the previously created transaction
62
+ # and send a void request for that transaction ID.
63
+ config = YAML.load_file(File.dirname(__FILE__) + "/../credentials.yml")
64
+ transaction = Transaction.new(config['api_login_id'], config['api_transaction_key'], :gateway => :sandbox)
65
+
66
+ request = CreateTransactionRequest.new
67
+
68
+ request.transactionRequest = TransactionRequestType.new()
69
+ request.transactionRequest.refTransId = authTransId
70
+ request.transactionRequest.payment = PaymentType.new
71
+ request.transactionRequest.payment.payPal = PayPalType.new()
72
+ request.transactionRequest.transactionType = TransactionTypeEnum::VoidTransaction
73
+
74
+ response = transaction.create_transaction(request)
75
+
76
+ if response != nil
77
+ if response.messages.resultCode == MessageTypeEnum::Ok
78
+ if response.transactionResponse != nil && response.transactionResponse.messages != nil
79
+ puts "Successfully voided the transaction (Transaction ID: #{response.transactionResponse.transId})"
80
+ puts " Transaction Response code: #{response.transactionResponse.responseCode}"
81
+ puts " Code: #{response.transactionResponse.messages.messages[0].code}"
82
+ puts " Description: #{response.transactionResponse.messages.messages[0].description}"
83
+ else
84
+ puts "Transaction Failed"
85
+ if 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
+ end
89
+ raise "Failed to void the transaction."
90
+ end
91
+ else
92
+ puts "Transaction Failed"
93
+ if response.transactionResponse != nil && response.transactionResponse.errors != nil
94
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
95
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
96
+ else
97
+ puts "Error Code: #{response.messages.messages[0].code}"
98
+ puts "Error Message: #{response.messages.messages[0].text}"
99
+ end
100
+ raise "Failed to void the transaction."
101
+ end
102
+ else
103
+ puts "Response is null"
104
+ raise "Failed to void the transaction."
105
+ end
106
+
107
+ return response
108
+ end
109
+
110
+ if __FILE__ == $0
111
+ authTransId = get_transId()
112
+ void(authTransId)
113
+ 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 authorize_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::AuthOnlyTransaction
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
+ response = transaction.create_transaction(request)
61
+
62
+ if response != nil
63
+ if response.messages.resultCode == MessageTypeEnum::Ok
64
+ if response.transactionResponse != nil && response.transactionResponse.messages != nil
65
+ puts "Successfully created an AuthOnly Transaction (authorization code: #{response.transactionResponse.authCode})"
66
+ puts "Transaction ID: #{response.transactionResponse.transId}"
67
+ puts "Transaction Response Code: #{response.transactionResponse.responseCode}"
68
+ puts "Code: #{response.transactionResponse.messages.messages[0].code}"
69
+ puts "Description: #{response.transactionResponse.messages.messages[0].description}"
70
+ puts "User Fields: "
71
+ response.transactionResponse.userFields.userFields.each do |userField|
72
+ puts userField.value
73
+ end
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 authorize card."
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 authorize card."
92
+ end
93
+ else
94
+ puts "Response is null"
95
+ raise "Failed to authorize card."
96
+ end
97
+
98
+ return response
99
+ end
100
+
101
+ if __FILE__ == $0
102
+ authorize_credit_card()
103
+ 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 capture_funds_authorized_through_another_channel()
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('4111111111111111','0728')
19
+ request.transactionRequest.transactionType = TransactionTypeEnum::CaptureOnlyTransaction
20
+ request.transactionRequest.authCode = "ROHNFQ"
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 created an AuthOnly Transaction (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 authorize 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 authorize card."
49
+ end
50
+ else
51
+ puts "Response is null"
52
+ raise "Failed to authorize card."
53
+ end
54
+
55
+ return response
56
+ end
57
+
58
+ if __FILE__ == $0
59
+ capture_funds_authorized_through_another_channel()
60
+ end