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,64 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def debit_bank_account()
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 ) * 15 ).round(2)
17
+ request.transactionRequest.payment = PaymentType.new
18
+ #Generate random bank account number
19
+ randomAccountNumber= Random.rand(100000000..9999999999).to_s;
20
+ request.transactionRequest.payment.bankAccount = BankAccountType.new('checking','122000661',"'#{randomAccountNumber}'", 'John Doe','WEB','Wells Fargo Bank NA','101')
21
+ request.transactionRequest.transactionType = TransactionTypeEnum::AuthCaptureTransaction
22
+ request.transactionRequest.order = OrderType.new("invoiceNumber#{(SecureRandom.random_number*1000000).round(0)}","Order Description")
23
+
24
+ response = transaction.create_transaction(request)
25
+
26
+ if response != nil
27
+ if response.messages.resultCode == MessageTypeEnum::Ok
28
+ if response.transactionResponse != nil && (response.transactionResponse.messages != nil)
29
+ puts "Successfully debited bank account."
30
+ puts " Transaction ID: #{response.transactionResponse.transId}"
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
+ else
35
+ puts "Transaction Failed"
36
+ puts "Transaction response code: #{response.transactionResponse.responseCode}"
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
+ puts "Failed to debit bank account."
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
+ puts "Failed to debit bank account."
53
+ end
54
+ else
55
+ puts "Response is null"
56
+ raise "Failed to debit bank account."
57
+ end
58
+
59
+ return response
60
+ end
61
+
62
+ if __FILE__ == $0
63
+ debit_bank_account()
64
+ end
@@ -0,0 +1,47 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def get_an_accept_payment_page()
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
+ transactionRequest = TransactionRequestType.new
14
+ transactionRequest.amount = 12.12
15
+ transactionRequest.transactionType = TransactionTypeEnum::AuthCaptureTransaction
16
+
17
+ setting1 = SettingType.new
18
+ setting1.settingName = SettingNameEnum::HostedPaymentButtonOptions
19
+ setting1.settingValue = "{\"text\": \"Pay\"}"
20
+
21
+ setting2 = SettingType.new
22
+ setting2.settingName = SettingNameEnum::HostedPaymentOrderOptions
23
+ setting2.settingValue = "{\"show\": false}"
24
+
25
+ settings = Settings.new([ setting1, setting2])
26
+
27
+ request = GetHostedPaymentPageRequest.new
28
+ request.transactionRequest = transactionRequest
29
+ request.hostedPaymentSettings = settings
30
+
31
+ response = transaction.get_hosted_payment_page(request)
32
+
33
+ if response.messages.resultCode == MessageTypeEnum::Ok
34
+ puts "#{response.messages.messages[0].code}"
35
+ puts "#{response.messages.messages[0].text}"
36
+ puts "#{response.token}"
37
+ else
38
+ puts "#{response.messages.messages[0].code}"
39
+ puts "#{response.messages.messages[0].text}"
40
+ raise "Failed to get hosted payment page"
41
+ end
42
+ return response
43
+ end
44
+
45
+ if __FILE__ == $0
46
+ get_an_accept_payment_page()
47
+ 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 refund_transaction()
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('0015','XXXX')
19
+ request.transactionRequest.refTransId = 2233511297
20
+ request.transactionRequest.transactionType = TransactionTypeEnum::RefundTransaction
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 refunded a transaction (Transaction ID #{response.transactionResponse.transId})"
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 refund a transaction."
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 refund a transaction."
49
+ end
50
+ else
51
+ puts "Response is null"
52
+ raise "Failed to refund a transaction."
53
+ end
54
+
55
+ return response
56
+ end
57
+
58
+ if __FILE__ == $0
59
+ refund_transaction()
60
+ end
@@ -0,0 +1,44 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def update_split_tender_group()
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
+ #set the split tender ID here
14
+ splitTenderId = "115901"
15
+ #set the split tender status here.
16
+ #SplitTenderStatusEnum::Completed
17
+ #SplitTenderStatusEnum::Held
18
+ #SplitTenderStatusEnum::Voided
19
+ splitTenderStatus = SplitTenderStatusEnum::Voided
20
+
21
+ request = UpdateSplitTenderGroupRequest.new
22
+
23
+ request.splitTenderId = splitTenderId
24
+ request.splitTenderStatus = splitTenderStatus
25
+
26
+ response = transaction.update_split_tender_group(request)
27
+
28
+ if response.messages.resultCode == MessageTypeEnum::Ok
29
+ puts "Successful Update Split Tender Group"
30
+ puts response.messages.messages[0].code
31
+ puts response.messages.messages[0].text
32
+
33
+ else
34
+ puts response.messages.messages[0].code
35
+ puts response.messages.messages[0].text
36
+ raise "Failed to update split tender group."
37
+ end
38
+
39
+ return response
40
+ end
41
+
42
+ if __FILE__ == $0
43
+ update_split_tender_group()
44
+ end
@@ -0,0 +1,103 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def void_transaction()
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.transactionType = TransactionTypeEnum::AuthCaptureTransaction
20
+
21
+ response = transaction.create_transaction(request)
22
+
23
+ authTransId = 0
24
+
25
+ if response != nil
26
+ if response.messages.resultCode == MessageTypeEnum::Ok
27
+ if response.transactionResponse != nil && response.transactionResponse.messages != nil
28
+ puts "Successful AuthCapture Transaction (authorization code: #{response.transactionResponse.authCode})"
29
+ authTransId = response.transactionResponse.transId
30
+ puts "Transaction ID (for later void: #{authTransId})"
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
+ else
35
+ puts "Transaction Failed"
36
+ if response.transactionResponse.errors != nil
37
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
38
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
39
+ end
40
+ raise "Failed to authorize card."
41
+ end
42
+ else
43
+ puts "Transaction Failed"
44
+ if response.transactionResponse != nil && response.transactionResponse.errors != nil
45
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
46
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
47
+ else
48
+ puts "Error Code: #{response.messages.messages[0].code}"
49
+ puts "Error Message: #{response.messages.messages[0].text}"
50
+ end
51
+ raise "Failed to authorize card."
52
+ end
53
+ else
54
+ puts "Response is null"
55
+ raise "Failed to authorize card."
56
+ end
57
+
58
+ request = CreateTransactionRequest.new
59
+
60
+ request.transactionRequest = TransactionRequestType.new()
61
+ request.transactionRequest.refTransId = authTransId
62
+ request.transactionRequest.transactionType = TransactionTypeEnum::VoidTransaction
63
+
64
+ response = transaction.create_transaction(request)
65
+
66
+
67
+ if response != nil
68
+ if response.messages.resultCode == MessageTypeEnum::Ok
69
+ if response.transactionResponse != nil && response.transactionResponse.messages != nil
70
+ puts "Successfully voided the transaction (Transaction ID: #{response.transactionResponse.transId})"
71
+ puts "Transaction Response code: #{response.transactionResponse.responseCode}"
72
+ puts "Code: #{response.transactionResponse.messages.messages[0].code}"
73
+ puts "Description: #{response.transactionResponse.messages.messages[0].description}"
74
+ else
75
+ puts "Transaction Failed"
76
+ if response.transactionResponse.errors != nil
77
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
78
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
79
+ end
80
+ raise "Failed to void the transaction."
81
+ end
82
+ else
83
+ puts "Transaction Failed"
84
+ if response.transactionResponse != nil && response.transactionResponse.errors != nil
85
+ puts "Error Code: #{response.transactionResponse.errors.errors[0].errorCode}"
86
+ puts "Error Message: #{response.transactionResponse.errors.errors[0].errorText}"
87
+ else
88
+ puts "Error Code: #{response.messages.messages[0].code}"
89
+ puts "Error Message: #{response.messages.messages[0].text}"
90
+ end
91
+ raise "Failed to void the transaction."
92
+ end
93
+ else
94
+ puts "Response is null"
95
+ raise "Failed to void the transaction."
96
+ end
97
+
98
+ return response
99
+ end
100
+
101
+ if __FILE__ == $0
102
+ void_transaction()
103
+ end
@@ -0,0 +1,36 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def cancel_subscription(subscriptionId = '2790501',refId = '2238251168')
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
+ #subscription = Subscription.new(config['api_login_id'], config['api_subscription_key'], :gateway => :sandbox)
12
+
13
+ request = ARBCancelSubscriptionRequest.new
14
+ request.refId = refId
15
+ request.subscriptionId = subscriptionId
16
+
17
+ response = transaction.cancel_subscription(request)
18
+
19
+ if response != nil
20
+ if response.messages.resultCode == MessageTypeEnum::Ok
21
+ puts "Successfully cancelled a subscription."
22
+ puts " Response code: #{response.messages.messages[0].code}"
23
+ puts " Response message: #{response.messages.messages[0].text}"
24
+ end
25
+
26
+ else
27
+ puts response.messages.messages[0].code
28
+ puts response.messages.messages[0].text
29
+ raise "Failed to cancel a subscription"
30
+ end
31
+ return response
32
+ end
33
+
34
+ if __FILE__ == $0
35
+ cancel_subscription()
36
+ end
@@ -0,0 +1,52 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def create_subscription_from_customer_profile(profileId = "123213", paymentProfileId = "123213", addressId = "123213")
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
+ #subscription = Subscription.new(config['api_login_id'], config['api_subscription_key'], :gateway => :sandbox)
13
+
14
+ request = ARBCreateSubscriptionRequest.new
15
+ request.refId = DateTime.now.to_s[-8]
16
+ request.subscription = ARBSubscriptionType.new
17
+ request.subscription.name = "Jane Doe"
18
+ request.subscription.paymentSchedule = PaymentScheduleType.new
19
+ request.subscription.paymentSchedule.interval = PaymentScheduleType::Interval.new("3","months")
20
+ request.subscription.paymentSchedule.startDate = (DateTime.now).to_s[0...10]
21
+ request.subscription.paymentSchedule.totalOccurrences ='12'
22
+ request.subscription.paymentSchedule.trialOccurrences ='1'
23
+
24
+ random_amount = ((SecureRandom.random_number + 1 ) * 150 ).round(2)
25
+ request.subscription.amount = random_amount
26
+ request.subscription.trialAmount = 0.00
27
+
28
+ request.subscription.profile = CustomerProfileIdType.new
29
+ request.subscription.profile.customerProfileId = profileId
30
+ request.subscription.profile.customerPaymentProfileId = paymentProfileId
31
+ request.subscription.profile.customerAddressId = addressId
32
+
33
+ response = transaction.create_subscription(request)
34
+
35
+ if response != nil
36
+ if response.messages.resultCode == MessageTypeEnum::Ok
37
+ puts "Successfully created a subscription with ID #{response.subscriptionId}."
38
+ else
39
+ # puts response.transactionResponse.errors.errors[0].errorCode
40
+ # puts response.transactionResponse.errors.errors[0].errorText
41
+ puts response.messages.messages[0].code
42
+ puts response.messages.messages[0].text
43
+ raise "Failed to create a subscription"
44
+ end
45
+ end
46
+ return response
47
+ end
48
+
49
+ if __FILE__ == $0
50
+ create_Subscription_from_customer_profile()
51
+ end
52
+
@@ -0,0 +1,54 @@
1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+ require 'securerandom'
5
+
6
+ include AuthorizeNet::API
7
+
8
+ def create_Subscription()
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
+ #subscription = Subscription.new(config['api_login_id'], config['api_subscription_key'], :gateway => :sandbox)
13
+
14
+ request = ARBCreateSubscriptionRequest.new
15
+ request.refId = DateTime.now.to_s[-8]
16
+ request.subscription = ARBSubscriptionType.new
17
+ request.subscription.name = "Jane Doe"
18
+ request.subscription.paymentSchedule = PaymentScheduleType.new
19
+ request.subscription.paymentSchedule.interval = PaymentScheduleType::Interval.new("3","months")
20
+ request.subscription.paymentSchedule.startDate = (DateTime.now).to_s[0...10]
21
+ request.subscription.paymentSchedule.totalOccurrences ='12'
22
+ request.subscription.paymentSchedule.trialOccurrences ='1'
23
+
24
+ random_amount = ((SecureRandom.random_number + 1 ) * 150 ).round(2)
25
+ request.subscription.amount = random_amount
26
+ request.subscription.trialAmount = 0.00
27
+ request.subscription.payment = PaymentType.new
28
+ request.subscription.payment.creditCard = CreditCardType.new('4111111111111111','0728','123')
29
+
30
+ request.subscription.order = OrderType.new('invoiceNumber123','description123')
31
+ request.subscription.customer = CustomerType.new(CustomerTypeEnum::Individual,'custId1','a@a.com')
32
+ request.subscription.billTo = NameAndAddressType.new('John','Doe','xyt','10800 Blue St','New York','NY','10010','USA')
33
+ request.subscription.shipTo = NameAndAddressType.new('John','Doe','xyt','10800 Blue St','New York','NY','10010','USA')
34
+
35
+ response = transaction.create_subscription(request)
36
+
37
+ if response != nil
38
+ if response.messages.resultCode == MessageTypeEnum::Ok
39
+ puts "Successfully created a subscription with ID #{response.subscriptionId}."
40
+
41
+ else
42
+ #puts response.transactionResponse.errors.errors[0].errorCode
43
+ #puts response.transactionResponse.errors.errors[0].errorText
44
+ puts response.messages.messages[0].code
45
+ puts response.messages.messages[0].text
46
+ raise "Failed to create a subscription."
47
+ end
48
+ end
49
+ return response
50
+ end
51
+
52
+ if __FILE__ == $0
53
+ create_Subscription()
54
+ end