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.
- checksums.yaml +7 -0
- data/lib/CustomerProfiles/create-customer-payment-profile.rb +62 -0
- data/lib/CustomerProfiles/create-customer-profile-from-transaction.rb +51 -0
- data/lib/CustomerProfiles/create-customer-profile.rb +92 -0
- data/lib/CustomerProfiles/create-customer-shipping-address.rb +31 -0
- data/lib/CustomerProfiles/delete-customer-payment-profile.rb +32 -0
- data/lib/CustomerProfiles/delete-customer-profile.rb +31 -0
- data/lib/CustomerProfiles/delete-customer-shipping-address.rb +33 -0
- data/lib/CustomerProfiles/get-accept-customer-profile-page.rb +42 -0
- data/lib/CustomerProfiles/get-customer-payment-profile-list.rb +54 -0
- data/lib/CustomerProfiles/get-customer-payment-profile.rb +40 -0
- data/lib/CustomerProfiles/get-customer-profile-ids.rb +45 -0
- data/lib/CustomerProfiles/get-customer-profile.rb +54 -0
- data/lib/CustomerProfiles/get-customer-shipping-address.rb +41 -0
- data/lib/CustomerProfiles/update-customer-payment-profile.rb +37 -0
- data/lib/CustomerProfiles/update-customer-profile.rb +37 -0
- data/lib/CustomerProfiles/update-customer-shipping-address.rb +37 -0
- data/lib/CustomerProfiles/validate-customer-payment-profile.rb +37 -0
- data/lib/FraudManagement/approve-or-decline-held-transaction.rb +57 -0
- data/lib/FraudManagement/get-held-transaction-list.rb +47 -0
- data/lib/MobileInAppTransactions/create-an-accept-transaction.rb +59 -0
- data/lib/MobileInAppTransactions/create-an-android-pay-transaction.rb +59 -0
- data/lib/MobileInAppTransactions/create-an-apple-pay-transaction.rb +58 -0
- data/lib/PayPalExpressCheckout/authorization-and-capture-continued.rb +69 -0
- data/lib/PayPalExpressCheckout/authorization-and-capture.rb +70 -0
- data/lib/PayPalExpressCheckout/authorization-only-continued.rb +70 -0
- data/lib/PayPalExpressCheckout/authorization-only.rb +71 -0
- data/lib/PayPalExpressCheckout/credit.rb +67 -0
- data/lib/PayPalExpressCheckout/get-details.rb +69 -0
- data/lib/PayPalExpressCheckout/prior-authorization-capture.rb +112 -0
- data/lib/PayPalExpressCheckout/void.rb +113 -0
- data/lib/PaymentTransactions/authorize-credit-card.rb +103 -0
- data/lib/PaymentTransactions/capture-funds-authorized-through-another-channel.rb +60 -0
- data/lib/PaymentTransactions/capture-previously-authorized-amount.rb +104 -0
- data/lib/PaymentTransactions/charge-credit-card.rb +104 -0
- data/lib/PaymentTransactions/charge-customer-profile.rb +61 -0
- data/lib/PaymentTransactions/charge-tokenized-credit-card.rb +60 -0
- data/lib/PaymentTransactions/create-an-accept-payment-transaction.rb +62 -0
- data/lib/PaymentTransactions/credit-bank-account.rb +62 -0
- data/lib/PaymentTransactions/debit-bank-account.rb +64 -0
- data/lib/PaymentTransactions/get-an-accept-payment-page.rb +47 -0
- data/lib/PaymentTransactions/refund-transaction.rb +60 -0
- data/lib/PaymentTransactions/update-split-tender-group.rb +44 -0
- data/lib/PaymentTransactions/void-transaction.rb +103 -0
- data/lib/RecurringBilling/cancel-subscription.rb +36 -0
- data/lib/RecurringBilling/create-subscription-from-customer-profile.rb +52 -0
- data/lib/RecurringBilling/create-subscription.rb +54 -0
- data/lib/RecurringBilling/get-list-of-subscriptions.rb +51 -0
- data/lib/RecurringBilling/get-subscription-status.rb +36 -0
- data/lib/RecurringBilling/get-subscription.rb +42 -0
- data/lib/RecurringBilling/update-subscription.rb +54 -0
- data/lib/TransactionReporting/get-batch-statistics.rb +57 -0
- data/lib/TransactionReporting/get-customer-profile-transaction-list.rb +49 -0
- data/lib/TransactionReporting/get-merchant-details.rb +50 -0
- data/lib/TransactionReporting/get-settled-batch-list.rb +49 -0
- data/lib/TransactionReporting/get-transaction-details.rb +40 -0
- data/lib/TransactionReporting/get-transaction-list.rb +58 -0
- data/lib/TransactionReporting/get-unsettled-transaction-list.rb +48 -0
- data/lib/VisaCheckout/create-visa-checkout-transaction.rb +62 -0
- data/lib/VisaCheckout/decrypt-visa-checkout-data.rb +37 -0
- data/lib/authorize_netsample.rb +16 -0
- data/lib/authorizenetsample.rb +4 -0
- data/lib/credentials.yml +9 -0
- data/lib/spec/sample_code_spec.rb +320 -0
- data/lib/spec/spec.opts +2 -0
- data/lib/spec/spec_helper.rb +10 -0
- data/lib/spec/support/shared_helper.rb +7 -0
- 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
|