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,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
+