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,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
@@ -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
@@ -4,9 +4,12 @@ require 'authorizenet'
4
4
  require 'securerandom'
5
5
 
6
6
  include AuthorizeNet::API
7
- #Function to make transaction using AcceptJs
7
+
8
8
  def create_an_accept_payment_transaction(api_login_id,api_transaction_key,token)
9
-
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)
10
13
  transaction = Transaction.new(api_login_id, api_transaction_key, :gateway => :sandbox)
11
14
 
12
15
  request = CreateTransactionRequest.new
@@ -16,19 +19,57 @@ require 'securerandom'
16
19
  billTo.lastName = "Doe"
17
20
  billTo.address = "123 My St"
18
21
  billTo.city = "OurTown"
19
- billTo.zip = "46282"
22
+ billTo.zip = "98004"
20
23
 
21
24
  request.transactionRequest = TransactionRequestType.new()
22
- request.transactionRequest.amount = ((SecureRandom.random_number + 1 ) * 150 ).round(2)
25
+ # request.transactionRequest.amount = ((SecureRandom.random_number + 1 ) * 150 ).round(2)
26
+ request.transactionRequest.amount = 99
23
27
  request.transactionRequest.billTo = billTo
24
28
  request.transactionRequest.payment = PaymentType.new
29
+ # request.transactionRequest.payment.opaqueData = OpaqueDataType.new('COMMON.ACCEPT.INAPP.PAYMENT','eyJjb2RlIjoiNTBfMl8wNjAwMDUzQTczNERGMDY0MUMyMzUxMkIyQTM2MUE3QTBFQUQ4NTIxQ0EzQjM3MUU1REMyMjlEQkYwMjRERjI5QzdFOTJBMDIzNzJGRDVDQkI0ODRDMTQ2NDYyQ0U4NkFCRjA0Q0Y3IiwidG9rZW4iOiI5NTM5MzYyNzY1NjM2NTgyODA0NjA0IiwidiI6IjEuMSJ9')
25
30
  request.transactionRequest.payment.opaqueData = OpaqueDataType.new('COMMON.ACCEPT.INAPP.PAYMENT',token)
26
31
  request.transactionRequest.customer = CustomerDataType.new(nil,nil,'bmc@mail.com')
27
32
  request.transactionRequest.transactionType = TransactionTypeEnum::AuthCaptureTransaction
28
33
  request.transactionRequest.order = OrderType.new("invoiceNumber#{(SecureRandom.random_number*1000000).round(0)}","Order Description")
29
34
 
30
- #Response will have the transaction detals(Error handling in web api)
31
35
  response = transaction.create_transaction(request)
32
36
 
37
+
38
+
39
+ # if response != nil
40
+ # if response.messages.resultCode == MessageTypeEnum::Ok
41
+ # if response.transactionResponse != nil && response.transactionResponse.messages != nil
42
+ # puts "Successful charge (auth + capture) (authorization code: #{response.transactionResponse.authCode})"
43
+ # puts "Transaction Response code: #{response.transactionResponse.responseCode}"
44
+ # puts "Code: #{response.transactionResponse.messages.messages[0].code}"
45
+ # puts "Description: #{response.transactionResponse.messages.messages[0].description}"
46
+ # else
47
+ # puts "Transaction Failed"
48
+ # if response.transactionResponse.errors != nil
49
+ # puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
50
+ # puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
51
+ # end
52
+ # raise "Failed to charge card."
53
+ # end
54
+ # else
55
+ # puts "Transaction Failed"
56
+ # if response.transactionResponse != nil && response.transactionResponse.errors != nil
57
+ # puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
58
+ # puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
59
+ # else
60
+ # puts "Error Code: #{response.messages.messages[0].code}"
61
+ # puts "Error Message: #{response.messages.messages[0].text}"
62
+ # end
63
+ # raise "Failed to charge card."
64
+ # end
65
+ # else
66
+ # puts "Response is null"
67
+ # raise "Failed to charge card."
68
+ # end
69
+
33
70
  return response
34
- end
71
+ end
72
+
73
+ if __FILE__ == $0
74
+ create_an_accept_payment_transaction()
75
+ end