authorizenetsample 0.1

Sign up to get free protection for your applications and to get access to all the features.
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,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: acd1898714f896152a7188e232493ffcfe99d01a
4
+ data.tar.gz: 3d1ce2059c568799fc7c1732e073ed2c5b5bf2c5
5
+ SHA512:
6
+ metadata.gz: e8f07e03ebf2ddb5f4b1881b18d5d104110be14f62e1ea746a81137649f8f470aa460618bdbc2f6059c1fbc0a0b25ffe1af7f692e2075d23eca2edd273410fa7
7
+ data.tar.gz: 22c85d9c2faa6f6d06e137dfa41bd499871ea69b25a0f20fba71023bc99927c293e213f0e7a8af52983827f1319b2e10f0aa8a25c8e37c3f452a4953d5b50a90
@@ -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_customer_payment_profile(customerProfileId = '1813343337')
9
+ config = YAML.load_file(File.dirname(__FILE__) + "/../credentials.yml")
10
+ transaction = Transaction.new(config['api_login_id'], config['api_transaction_key'], :gateway => :sandbox)
11
+
12
+ # Build the payment object
13
+ payment = PaymentType.new(CreditCardType.new)
14
+ payment.creditCard.cardNumber = '4111111111111111'
15
+ payment.creditCard.expirationDate = '2022-05'
16
+
17
+ # Build an address object
18
+ billTo = CustomerAddressType.new
19
+ billTo.firstName = "Jerry"
20
+ billTo.lastName = "Johnson"
21
+ billTo.company = "Souveniropolis"
22
+ billTo.address = "14 Main Street"
23
+ billTo.city = "Pecan Springs"
24
+ billTo.state = "TX"
25
+ billTo.zip = "44628"
26
+ billTo.country = "US"
27
+ billTo.phoneNumber = "999-999-9999"
28
+ billTo.faxNumber = "999-999-9999"
29
+
30
+ # Use the previously defined payment and billTo objects to
31
+ # build a payment profile to send with the request
32
+ paymentProfile = CustomerPaymentProfileType.new
33
+ paymentProfile.payment = payment
34
+ paymentProfile.billTo = billTo
35
+ paymentProfile.defaultPaymentProfile = true
36
+
37
+ # Build the request object
38
+ request = CreateCustomerPaymentProfileRequest.new
39
+ request.paymentProfile = paymentProfile
40
+ request.customerProfileId = customerProfileId
41
+ request.validationMode = ValidationModeEnum::LiveMode
42
+
43
+ response = transaction.create_customer_payment_profile(request)
44
+
45
+ if response != nil
46
+ if response.messages.resultCode == MessageTypeEnum::Ok
47
+ puts "Successfully created a customer payment profile with id: #{response.customerPaymentProfileId}."
48
+ else
49
+ puts response.messages.messages[0].code
50
+ puts response.messages.messages[0].text
51
+ puts "Failed to create a new customer payment profile."
52
+ end
53
+ else
54
+ puts "Response is null"
55
+ raise "Failed to create a new customer payment profile."
56
+ end
57
+ return response
58
+ end
59
+
60
+ if __FILE__ == $0
61
+ create_customer_payment_profile()
62
+ end
@@ -0,0 +1,51 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def create_customer_profile_from_a_transaction(transId = 60031516226)
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
+
14
+ request = CreateCustomerProfileFromTransactionRequest.new
15
+ request.transId = transId
16
+
17
+ # You can either specify the customer information to create a new customer profile
18
+ # or, specify an existing customer profile ID to create a new customer payment profile
19
+ # attached to the existing customer profile. If no profile information is specified,
20
+ # a new profile will still be created as long as either an ID or email exists in the
21
+ # original transaction that can be used to identify a new profile.
22
+ #
23
+ # To create a new customer profile containing a payment profile with this transaction's
24
+ # payment information, submit the new profile information in the form of a
25
+ # customerProfileBaseType object
26
+ request.customer = CustomerProfileBaseType.new
27
+ request.customer.merchantCustomerId = "1231232"
28
+ request.customer.description = "This is a sample customer profile"
29
+ request.customer.email = "johnsnow@castleblack.com"
30
+ # -OR- to create a payment profile under an existing customer profile,
31
+ # just provide the customer Profile ID
32
+ # customerProfileId = "123343"
33
+
34
+ response = transaction.create_customer_profile_from_transaction(request)
35
+
36
+
37
+ if response.messages.resultCode == MessageTypeEnum::Ok
38
+ puts "Successfully created a customer profile from transaction ID #{transId}"
39
+ puts "Customer profile ID: #{response.customerProfileId}"
40
+ puts "New customer payment profile ID: #{response.customerPaymentProfileIdList.numericString[0]}"
41
+ puts "New customer shipping profile ID (if created): #{response.customerShippingAddressIdList.numericString[0]}"
42
+ else
43
+ puts response.messages.messages[0].text
44
+ raise "Failed to create a customer profile from an existing transaction."
45
+ end
46
+ return response
47
+ end
48
+
49
+ if __FILE__ == $0
50
+ create_customer_profile_from_a_transaction()
51
+ end
@@ -0,0 +1,92 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def create_customer_profile()
9
+ config = YAML.load_file(File.dirname(__FILE__) + "/../credentials.yml")
10
+ transaction = Transaction.new(config['api_login_id'], config['api_transaction_key'], :gateway => :sandbox)
11
+
12
+ # Build the payment object
13
+ payment = PaymentType.new(CreditCardType.new)
14
+ payment.creditCard.cardNumber = '4111111111111111'
15
+ payment.creditCard.expirationDate = '2020-05'
16
+
17
+ # Build an address object
18
+ billTo = CustomerAddressType.new
19
+ billTo.firstName = "Ellen"
20
+ billTo.lastName = "Johnson"
21
+ billTo.company = "Souveniropolis"
22
+ billTo.address = "14 Main Street"
23
+ billTo.city = "Pecan Springs"
24
+ billTo.state = "TX"
25
+ billTo.zip = "44628"
26
+ billTo.country = "US"
27
+ billTo.phoneNumber = "999-999-9999"
28
+ billTo.faxNumber = "999-999-9999"
29
+
30
+ # Use the previously defined payment and billTo objects to
31
+ # build a payment profile to send with the request
32
+ paymentProfile = CustomerPaymentProfileType.new
33
+ paymentProfile.payment = payment
34
+ paymentProfile.billTo = billTo
35
+ paymentProfile.defaultPaymentProfile = true
36
+
37
+ # Build a shipping address to send with the request
38
+ shippingAddress = CustomerAddressType.new
39
+ shippingAddress.firstName = "John"
40
+ shippingAddress.lastName = "Snow"
41
+ shippingAddress.company = "Night's Watch, Inc."
42
+ shippingAddress.address = "Castle Black"
43
+ shippingAddress.city = "The Wall"
44
+ shippingAddress.state = "North Westeros"
45
+ shippingAddress.zip = "99499"
46
+ shippingAddress.country = "Westeros"
47
+ shippingAddress.phoneNumber = "999-999-9999"
48
+ shippingAddress.faxNumber = "999-999-9999"
49
+
50
+ # Build the request object
51
+ request = CreateCustomerProfileRequest.new
52
+ # Build the profile object containing the main information about the customer profile
53
+ request.profile = CustomerProfileType.new
54
+ request.profile.merchantCustomerId = 'jdoe' + rand(10000).to_s
55
+ request.profile.description = 'John2 Doe'
56
+ request.profile.email = rand(10000).to_s + '@mail.com'
57
+ # Add the payment profile and shipping profile defined previously
58
+ request.profile.paymentProfiles = [paymentProfile]
59
+ request.profile.shipToList = [shippingAddress]
60
+ request.validationMode = ValidationModeEnum::LiveMode
61
+
62
+ response = transaction.create_customer_profile(request)
63
+ puts response.messages.resultCode
64
+
65
+ if response != nil
66
+ if response.messages.resultCode == MessageTypeEnum::Ok
67
+ puts "Successfully created a customer profile with id: #{response.customerProfileId}"
68
+ puts " Customer Payment Profile Id List:"
69
+ response.customerPaymentProfileIdList.numericString.each do |id|
70
+ puts " #{id}"
71
+ end
72
+ puts " Customer Shipping Address Id List:"
73
+ response.customerShippingAddressIdList.numericString.each do |id|
74
+ puts " #{id}"
75
+ end
76
+ puts
77
+ else
78
+ puts response.messages.messages[0].code
79
+ puts response.messages.messages[0].text
80
+ raise "Failed to create a new customer profile."
81
+ end
82
+ else
83
+ puts "Response is null"
84
+ raise "Failed to create a new customer profile."
85
+ end
86
+
87
+ return response
88
+ end
89
+
90
+ if __FILE__ == $0
91
+ create_customer_profile()
92
+ end
@@ -0,0 +1,31 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def create_customer_shipping_address(customerProfileId = '1813343337')
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
+
14
+ request = CreateCustomerShippingAddressRequest.new
15
+
16
+ request.address = CustomerAddressType.new('John','Doe')
17
+ request.customerProfileId = customerProfileId
18
+ response = transaction.create_customer_shipping_profile(request)
19
+
20
+
21
+ if response.messages.resultCode == MessageTypeEnum::Ok
22
+ puts "Successfully created a customer shipping address with id: #{response.customerAddressId}."
23
+ else
24
+ puts "Failed to create a new customer shipping address: #{response.messages.messages[0].text}"
25
+ end
26
+ return response
27
+ end
28
+
29
+ if __FILE__ == $0
30
+ create_customer_shipping_address()
31
+ end
@@ -0,0 +1,32 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def delete_customer_payment_profile(customerProfileId='35894174', customerPaymentProfileId='33604709')
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
+
14
+ request = DeleteCustomerPaymentProfileRequest.new
15
+ request.customerProfileId = customerProfileId
16
+ request.customerPaymentProfileId = customerPaymentProfileId
17
+
18
+ response = transaction.delete_customer_payment_profile(request)
19
+
20
+
21
+ if response.messages.resultCode == MessageTypeEnum::Ok
22
+ puts "Successfully deleted payment profile with customer payment profile ID #{request.customerPaymentProfileId}."
23
+ else
24
+ puts "Failed to delete payment profile with profile ID #{request.customerPaymentProfileId}: #{response.messages.messages[0].text}"
25
+ end
26
+ return response
27
+ end
28
+
29
+ if __FILE__ == $0
30
+ delete_customer_payment_profile()
31
+ end
32
+
@@ -0,0 +1,31 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def delete_customer_profile(customerProfileId = '36551110')
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
+
14
+ request = DeleteCustomerProfileRequest.new
15
+ request.customerProfileId = customerProfileId
16
+
17
+ response = transaction.delete_customer_profile(request)
18
+
19
+
20
+ if response.messages.resultCode == MessageTypeEnum::Ok
21
+ puts "Successfully deleted customer with customer profile ID #{request.customerProfileId}."
22
+ else
23
+ puts response.messages.messages[0].text
24
+ raise "Failed to delete customer with customer profile ID #{request.customerProfileId}."
25
+ end
26
+ return response
27
+ end
28
+
29
+ if __FILE__ == $0
30
+ delete_customer_profile()
31
+ end
@@ -0,0 +1,33 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def delete_customer_shipping_address(customerProfileId = '36551110', customerAddressId = '35894174')
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
+
14
+ request = DeleteCustomerShippingAddressRequest.new
15
+ request.customerProfileId = customerProfileId
16
+ request.customerAddressId = customerAddressId
17
+
18
+ response = transaction.delete_customer_shipping_profile(request)
19
+
20
+
21
+ if response.messages.resultCode == MessageTypeEnum::Ok
22
+ puts "Successfully deleted shipping address with customer shipping profile ID #{request.customerAddressId}."
23
+ else
24
+ puts response.messages.messages[0].text
25
+ raise "Failed to delete payment profile with profile ID #{request.customerAddressId}."
26
+ end
27
+ return response
28
+ end
29
+
30
+ if __FILE__ == $0
31
+ delete_customer_shipping_address()
32
+ end
33
+
@@ -0,0 +1,42 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def get_accept_customer_profile_page(customerProfileId = '37696245')
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
+ setting = SettingType.new
14
+ setting.settingName = SettingNameEnum::HostedProfileReturnUrl
15
+ setting.settingValue = "https://returnurl.com/return/"
16
+
17
+ settings = Settings.new([setting])
18
+
19
+
20
+ request = GetHostedProfilePageRequest.new
21
+ request.customerProfileId = customerProfileId
22
+ request.refId = ""
23
+ request.hostedProfileSettings = settings
24
+
25
+ response = transaction.get_hosted_profile_page(request)
26
+
27
+ if response.messages.resultCode == MessageTypeEnum::Ok
28
+ puts "Successfully got Accept Customer page token."
29
+ puts " Response code: #{response.messages.messages[0].code}"
30
+ puts " Response message: #{response.messages.messages[0].text}"
31
+ puts " Token: #{response.token}"
32
+ else
33
+ puts "#{response.messages.messages[0].code}"
34
+ puts "#{response.messages.messages[0].text}"
35
+ raise "Failed to get hosted profile page with customer profile ID #{request.customerProfileId}"
36
+ end
37
+ return response
38
+ end
39
+
40
+ if __FILE__ == $0
41
+ get_accept_customer_profile_page()
42
+ end
@@ -0,0 +1,54 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def get_customer_payment_profile_list()
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
+ searchTypeEnum = CustomerPaymentProfileSearchTypeEnum::CardsExpiringInMonth
14
+ sorting = CustomerPaymentProfileSorting.new
15
+ orderByEnum = CustomerPaymentProfileOrderFieldEnum::Id
16
+ sorting.orderBy = orderByEnum
17
+ sorting.orderDescending = false
18
+
19
+ paging = Paging.new
20
+ paging.limit = 1000
21
+ paging.offset = 1
22
+
23
+
24
+ request = GetCustomerPaymentProfileListRequest.new
25
+
26
+ request.searchType = searchTypeEnum
27
+ request.month = "2020-12"
28
+ request.sorting = sorting
29
+ request.paging = paging
30
+
31
+ response = transaction.get_customer_payment_profile_list(request)
32
+
33
+ if response.messages.resultCode == MessageTypeEnum::Ok
34
+ puts "Successfully got customer payment profile list."
35
+ puts response.messages.messages[0].code
36
+ puts response.messages.messages[0].text
37
+ puts " Total number in result set: #{response.totalNumInResultSet}"
38
+ # response.paymentProfiles.paymentProfile.each do |paymentProfile|
39
+ # puts "Payment profile ID = #{paymentProfile.customerPaymentProfileId}"
40
+ # puts "First Name in Billing Address = #{paymentProfile.billTo.firstName}"
41
+ # puts "Credit Card Number = #{paymentProfile.payment.creditCard.cardNumber}"
42
+ # end
43
+ else
44
+ puts response.messages.messages[0].code
45
+ puts response.messages.messages[0].text
46
+ raise "Failed to get customer payment profile list"
47
+ end
48
+ return response
49
+ end
50
+
51
+ if __FILE__ == $0
52
+ get_customer_payment_profile_list()
53
+ end
54
+