Repository navigation
Expand file tree
/
Copy pathcreate-and-send-invoice-immediately.rb
More file actions
74 lines (63 loc) · 2.94 KB
/
Copy pathcreate-and-send-invoice-immediately.rb
File metadata and controls
74 lines (63 loc) · 2.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
require 'cybersource_rest_client'
require_relative '../../../data/Configuration.rb'
public
class Create_and_send_invoice_immediately
def run()
request_obj = CyberSource::CreateInvoiceRequest.new
customer_information = CyberSource::Invoicingv2invoicesCustomerInformation.new
customer_information.name = "Tanya Lee"
customer_information.email = "tanya.lee@my-email.world"
request_obj.customer_information = customer_information
invoice_information = CyberSource::Invoicingv2invoicesInvoiceInformation.new
invoice_information.description = "This is a test invoice"
invoice_information.due_date = "2019-07-11"
invoice_information.send_immediately = true
invoice_information.allow_partial_payments = true
invoice_information.delivery_mode = "email"
request_obj.invoice_information = invoice_information
order_information = CyberSource::Invoicingv2invoicesOrderInformation.new
amount_details = CyberSource::Invoicingv2invoicesOrderInformationAmountDetails.new
amount_details.total_amount = "2623.64"
amount_details.currency = "USD"
amount_details.discount_amount = "126.08"
amount_details.discount_percent = "5.0"
amount_details.sub_amount = "2749.72"
amount_details.minimum_partial_amount = "20.00"
tax_details = CyberSource::Invoicingv2invoicesOrderInformationAmountDetailsTaxDetails.new
tax_details.type = "State Tax"
tax_details.amount = "208.04"
tax_details.rate = "8.25"
amount_details.tax_details = tax_details
freight = CyberSource::Invoicingv2invoicesOrderInformationAmountDetailsFreight.new
freight.amount = "20.00"
freight.taxable = true
amount_details.freight = freight
order_information.amount_details = amount_details
line_items = []
line_items1 = CyberSource::Invoicingv2invoicesOrderInformationLineItems.new
line_items1.product_sku = "P653727383"
line_items1.product_name = "First line item's name"
line_items1.quantity = 21
line_items1.unit_price = "120.08"
line_items << line_items1
order_information.line_items = line_items
request_obj.order_information = order_information
config = MerchantConfiguration.new.merchantConfigProp()
api_client = CyberSource::ApiClient.new
api_instance = CyberSource::InvoicesApi.new(api_client, config)
data, status_code, headers = api_instance.create_invoice(request_obj)
puts data, status_code, headers
write_log_audit(status_code)
return data
rescue StandardError => err
write_log_audit(err.code)
puts err.message
end
def write_log_audit(status)
filename = ($0.split("/")).last.split(".")[0]
puts "[Sample Code Testing] [#{filename}] #{status}"
end
if __FILE__ == $0
Create_and_send_invoice_immediately.new.run()
end
end