diff --git a/.gitignore b/.gitignore index 28f4849..d862512 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,10 @@ build/ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this: .rvmrc + +# Omit Credentials.yml +credentials.yml + +## PHPStorm IDE files +/.idea/ + diff --git a/PaymentTransactions/authorize-credit-card.rb b/PaymentTransactions/authorize-credit-card.rb new file mode 100644 index 0000000..e0ca4ff --- /dev/null +++ b/PaymentTransactions/authorize-credit-card.rb @@ -0,0 +1,29 @@ +require 'rubygems' + require 'yaml' + require 'authorizenet' + + include AuthorizeNet::API + + config = YAML.load_file(File.dirname(__FILE__) + "/../credentials.yml") + + transaction = Transaction.new(config['api_login_id'], config['api_transaction_key'], :gateway => :sandbox) + + request = CreateTransactionRequest.new + + request.transactionRequest = TransactionRequestType.new() + #request.transactionRequest.amount = 16.00 + request.transactionRequest.payment = PaymentType.new + request.transactionRequest.payment.creditCard = CreditCardType.new('4242424242424242','0220','123') + request.transactionRequest.transactionType = TransactionTypeEnum::AuthOnlyTransaction + + response = transaction.create_transaction(request) + + if response.messages.resultCode == MessageTypeEnum::Ok + puts "Successfully tested AuthOnly Transaction (authorization code: #{response.transactionResponse.authCode})" + + else + puts response.messages.messages[0].text + puts response.transactionResponse.errors.errors[0].errorCode + puts response.transactionResponse.errors.errors[0].errorText + raise "Failed to make purchase." + end \ No newline at end of file diff --git a/PaymentTransactions/capture-only.rb b/PaymentTransactions/capture-only.rb new file mode 100644 index 0000000..5c5ec87 --- /dev/null +++ b/PaymentTransactions/capture-only.rb @@ -0,0 +1,33 @@ +require 'rubygems' + require 'yaml' + require 'authorizenet' + + include AuthorizeNet::API + + config = YAML.load_file(File.dirname(__FILE__) + "/../credentials.yml") + + transaction = Transaction.new(config['api_login_id'], config['api_transaction_key'], :gateway => :sandbox) + + request = CreateTransactionRequest.new + + request.transactionRequest = TransactionRequestType.new() + request.transactionRequest.amount = 5.00 + request.transactionRequest.payment = PaymentType.new + request.transactionRequest.payment.creditCard = CreditCardType.new('6011000000000012','1220','123') + request.transactionRequest.authCode = "ROHNFQ" + request.transactionRequest.order = OrderType.new + request.transactionRequest.order.invoiceNumber = "INV-12345" + request.transactionRequest.order.description = "Product Description" + request.transactionRequest.transactionType = TransactionTypeEnum::CaptureOnlyTransaction + + response = transaction.create_transaction(request) + + if response.messages.resultCode == MessageTypeEnum::Ok + puts "Successfully created a CaptureOnly transaction (authorization code: #{response.transactionResponse.authCode})" + + else + puts response.messages.messages[0].text + puts response.transactionResponse.errors.errors[0].errorCode + puts response.transactionResponse.errors.errors[0].errorText + raise "Failed to make purchase." + end \ No newline at end of file diff --git a/PaymentTransactions/capture-previously-authed-amount.rb b/PaymentTransactions/capture-previously-authed-amount.rb new file mode 100644 index 0000000..02999d6 --- /dev/null +++ b/PaymentTransactions/capture-previously-authed-amount.rb @@ -0,0 +1,29 @@ +require 'rubygems' + require 'yaml' + require 'authorizenet' + + include AuthorizeNet::API + + config = YAML.load_file(File.dirname(__FILE__) + "/../credentials.yml") + + transaction = Transaction.new(config['api_login_id'], config['api_transaction_key'], :gateway => :sandbox) + + request = CreateTransactionRequest.new + + request.transactionRequest = TransactionRequestType.new() + request.transactionRequest.amount = 16.00 + request.transactionRequest.payment = PaymentType.new + request.transactionRequest.payment.creditCard = CreditCardType.new('4242424242424242','0220','123') + request.transactionRequest.transactionType = TransactionTypeEnum::AuthCaptureTransaction + + response = transaction.create_transaction(request) + + if response.messages.resultCode == MessageTypeEnum::Ok + puts "Successfully made a purchase (authorization code: #{response.transactionResponse.authCode})" + + else + puts response.messages.messages[0].text + puts response.transactionResponse.errors.errors[0].errorCode + puts response.transactionResponse.errors.errors[0].errorText + raise "Failed to make purchase." + end \ No newline at end of file diff --git a/PaymentTransactions/charge-customer-profile.rb b/PaymentTransactions/charge-customer-profile.rb new file mode 100644 index 0000000..e69de29 diff --git a/PaymentTransactions/charge-tokenized-credit-card.rb b/PaymentTransactions/charge-tokenized-credit-card.rb new file mode 100644 index 0000000..02999d6 --- /dev/null +++ b/PaymentTransactions/charge-tokenized-credit-card.rb @@ -0,0 +1,29 @@ +require 'rubygems' + require 'yaml' + require 'authorizenet' + + include AuthorizeNet::API + + config = YAML.load_file(File.dirname(__FILE__) + "/../credentials.yml") + + transaction = Transaction.new(config['api_login_id'], config['api_transaction_key'], :gateway => :sandbox) + + request = CreateTransactionRequest.new + + request.transactionRequest = TransactionRequestType.new() + request.transactionRequest.amount = 16.00 + request.transactionRequest.payment = PaymentType.new + request.transactionRequest.payment.creditCard = CreditCardType.new('4242424242424242','0220','123') + request.transactionRequest.transactionType = TransactionTypeEnum::AuthCaptureTransaction + + response = transaction.create_transaction(request) + + if response.messages.resultCode == MessageTypeEnum::Ok + puts "Successfully made a purchase (authorization code: #{response.transactionResponse.authCode})" + + else + puts response.messages.messages[0].text + puts response.transactionResponse.errors.errors[0].errorCode + puts response.transactionResponse.errors.errors[0].errorText + raise "Failed to make purchase." + end \ No newline at end of file diff --git a/PaymentTransactions/credit-bank-account.rb b/PaymentTransactions/credit-bank-account.rb new file mode 100644 index 0000000..02999d6 --- /dev/null +++ b/PaymentTransactions/credit-bank-account.rb @@ -0,0 +1,29 @@ +require 'rubygems' + require 'yaml' + require 'authorizenet' + + include AuthorizeNet::API + + config = YAML.load_file(File.dirname(__FILE__) + "/../credentials.yml") + + transaction = Transaction.new(config['api_login_id'], config['api_transaction_key'], :gateway => :sandbox) + + request = CreateTransactionRequest.new + + request.transactionRequest = TransactionRequestType.new() + request.transactionRequest.amount = 16.00 + request.transactionRequest.payment = PaymentType.new + request.transactionRequest.payment.creditCard = CreditCardType.new('4242424242424242','0220','123') + request.transactionRequest.transactionType = TransactionTypeEnum::AuthCaptureTransaction + + response = transaction.create_transaction(request) + + if response.messages.resultCode == MessageTypeEnum::Ok + puts "Successfully made a purchase (authorization code: #{response.transactionResponse.authCode})" + + else + puts response.messages.messages[0].text + puts response.transactionResponse.errors.errors[0].errorCode + puts response.transactionResponse.errors.errors[0].errorText + raise "Failed to make purchase." + end \ No newline at end of file diff --git a/PaymentTransactions/debit-bank-account.rb b/PaymentTransactions/debit-bank-account.rb new file mode 100644 index 0000000..02999d6 --- /dev/null +++ b/PaymentTransactions/debit-bank-account.rb @@ -0,0 +1,29 @@ +require 'rubygems' + require 'yaml' + require 'authorizenet' + + include AuthorizeNet::API + + config = YAML.load_file(File.dirname(__FILE__) + "/../credentials.yml") + + transaction = Transaction.new(config['api_login_id'], config['api_transaction_key'], :gateway => :sandbox) + + request = CreateTransactionRequest.new + + request.transactionRequest = TransactionRequestType.new() + request.transactionRequest.amount = 16.00 + request.transactionRequest.payment = PaymentType.new + request.transactionRequest.payment.creditCard = CreditCardType.new('4242424242424242','0220','123') + request.transactionRequest.transactionType = TransactionTypeEnum::AuthCaptureTransaction + + response = transaction.create_transaction(request) + + if response.messages.resultCode == MessageTypeEnum::Ok + puts "Successfully made a purchase (authorization code: #{response.transactionResponse.authCode})" + + else + puts response.messages.messages[0].text + puts response.transactionResponse.errors.errors[0].errorCode + puts response.transactionResponse.errors.errors[0].errorText + raise "Failed to make purchase." + end \ No newline at end of file diff --git a/PaymentTransactions/void-transaction.rb b/PaymentTransactions/void-transaction.rb new file mode 100644 index 0000000..02999d6 --- /dev/null +++ b/PaymentTransactions/void-transaction.rb @@ -0,0 +1,29 @@ +require 'rubygems' + require 'yaml' + require 'authorizenet' + + include AuthorizeNet::API + + config = YAML.load_file(File.dirname(__FILE__) + "/../credentials.yml") + + transaction = Transaction.new(config['api_login_id'], config['api_transaction_key'], :gateway => :sandbox) + + request = CreateTransactionRequest.new + + request.transactionRequest = TransactionRequestType.new() + request.transactionRequest.amount = 16.00 + request.transactionRequest.payment = PaymentType.new + request.transactionRequest.payment.creditCard = CreditCardType.new('4242424242424242','0220','123') + request.transactionRequest.transactionType = TransactionTypeEnum::AuthCaptureTransaction + + response = transaction.create_transaction(request) + + if response.messages.resultCode == MessageTypeEnum::Ok + puts "Successfully made a purchase (authorization code: #{response.transactionResponse.authCode})" + + else + puts response.messages.messages[0].text + puts response.transactionResponse.errors.errors[0].errorCode + puts response.transactionResponse.errors.errors[0].errorText + raise "Failed to make purchase." + end \ No newline at end of file diff --git a/README.md b/README.md index fe38f6a..4921a01 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,5 @@ # sample-code-ruby This repository contains working code samples which demonstrate ruby integration with the Authorize.Net API + +06-09-2015. Greg White. Created additional samples for PaymentTransactions +06-11-2015 Greg White. Updated capture-only.rb. Tested with new model \ No newline at end of file diff --git a/credentials.yml b/credentials.yml index 91336d2..53c4256 100644 --- a/credentials.yml +++ b/credentials.yml @@ -1,5 +1,5 @@ #obtain an API login_id and transaction_id according to instructions at https://developer.authorize.net/faqs/#gettranskey -api_login_id: YOUR_API_LOGIN_ID -api_transaction_key: YOUR_API_TRANSACTION_KEY +api_login_id: 556KThWQ6vf2 +api_transaction_key: 9ac2932kQ7kN2Wzq #obtained md5 hash value by first setting the hash value in https://sandbox.authorize.net/ under the Account tab->MD5 Hash md5_value: MD5_TEST \ No newline at end of file