From 9a7377105d056db9d2d62d9bd95d071d183067ae Mon Sep 17 00:00:00 2001 From: Greg White Date: Tue, 9 Jun 2015 15:40:28 -0700 Subject: [PATCH 1/2] Created additional ruby samples for PaymentTransaction --- .gitignore | 3 ++ PaymentTransactions/authorize-credit-card.rb | 29 +++++++++++++++++++ PaymentTransactions/capture-only.rb | 29 +++++++++++++++++++ .../capture-previously-authed-amount.rb | 29 +++++++++++++++++++ .../charge-customer-profile.rb | 0 .../charge-tokenized-credit-card.rb | 29 +++++++++++++++++++ PaymentTransactions/credit-bank-account.rb | 29 +++++++++++++++++++ PaymentTransactions/debit-bank-account.rb | 29 +++++++++++++++++++ PaymentTransactions/void-transaction.rb | 29 +++++++++++++++++++ README.md | 2 ++ 10 files changed, 208 insertions(+) create mode 100644 PaymentTransactions/authorize-credit-card.rb create mode 100644 PaymentTransactions/capture-only.rb create mode 100644 PaymentTransactions/capture-previously-authed-amount.rb create mode 100644 PaymentTransactions/charge-customer-profile.rb create mode 100644 PaymentTransactions/charge-tokenized-credit-card.rb create mode 100644 PaymentTransactions/credit-bank-account.rb create mode 100644 PaymentTransactions/debit-bank-account.rb create mode 100644 PaymentTransactions/void-transaction.rb diff --git a/.gitignore b/.gitignore index 28f4849..4ac9b04 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,6 @@ build/ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this: .rvmrc + +# PHP log file +phplog diff --git a/PaymentTransactions/authorize-credit-card.rb b/PaymentTransactions/authorize-credit-card.rb new file mode 100644 index 0000000..02999d6 --- /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::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/capture-only.rb b/PaymentTransactions/capture-only.rb new file mode 100644 index 0000000..02999d6 --- /dev/null +++ b/PaymentTransactions/capture-only.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/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..0fdfdc5 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ # 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 \ No newline at end of file From 4b5c097bd55fca23c81000f715b8e696c890a0e3 Mon Sep 17 00:00:00 2001 From: Greg White Date: Thu, 11 Jun 2015 14:21:05 -0700 Subject: [PATCH 2/2] Updated capture-only.rb. Tested with new model --- .gitignore | 8 ++++++-- PaymentTransactions/authorize-credit-card.rb | 6 +++--- PaymentTransactions/capture-only.rb | 12 ++++++++---- README.md | 3 ++- credentials.yml | 4 ++-- 5 files changed, 21 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 4ac9b04..d862512 100644 --- a/.gitignore +++ b/.gitignore @@ -34,5 +34,9 @@ build/ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this: .rvmrc -# PHP log file -phplog +# Omit Credentials.yml +credentials.yml + +## PHPStorm IDE files +/.idea/ + diff --git a/PaymentTransactions/authorize-credit-card.rb b/PaymentTransactions/authorize-credit-card.rb index 02999d6..e0ca4ff 100644 --- a/PaymentTransactions/authorize-credit-card.rb +++ b/PaymentTransactions/authorize-credit-card.rb @@ -11,15 +11,15 @@ request = CreateTransactionRequest.new request.transactionRequest = TransactionRequestType.new() - request.transactionRequest.amount = 16.00 + #request.transactionRequest.amount = 16.00 request.transactionRequest.payment = PaymentType.new request.transactionRequest.payment.creditCard = CreditCardType.new('4242424242424242','0220','123') - request.transactionRequest.transactionType = TransactionTypeEnum::AuthCaptureTransaction + request.transactionRequest.transactionType = TransactionTypeEnum::AuthOnlyTransaction response = transaction.create_transaction(request) if response.messages.resultCode == MessageTypeEnum::Ok - puts "Successfully made a purchase (authorization code: #{response.transactionResponse.authCode})" + puts "Successfully tested AuthOnly Transaction (authorization code: #{response.transactionResponse.authCode})" else puts response.messages.messages[0].text diff --git a/PaymentTransactions/capture-only.rb b/PaymentTransactions/capture-only.rb index 02999d6..5c5ec87 100644 --- a/PaymentTransactions/capture-only.rb +++ b/PaymentTransactions/capture-only.rb @@ -11,15 +11,19 @@ request = CreateTransactionRequest.new request.transactionRequest = TransactionRequestType.new() - request.transactionRequest.amount = 16.00 + request.transactionRequest.amount = 5.00 request.transactionRequest.payment = PaymentType.new - request.transactionRequest.payment.creditCard = CreditCardType.new('4242424242424242','0220','123') - request.transactionRequest.transactionType = TransactionTypeEnum::AuthCaptureTransaction + 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 made a purchase (authorization code: #{response.transactionResponse.authCode})" + puts "Successfully created a CaptureOnly transaction (authorization code: #{response.transactionResponse.authCode})" else puts response.messages.messages[0].text diff --git a/README.md b/README.md index 0fdfdc5..4921a01 100644 --- a/README.md +++ b/README.md @@ -1,4 +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 \ No newline at end of file +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