using System; using System.Collections.Generic; using iBilling.Client; namespace iBilling.Samples { public class Scenario2 { public static void Main(string[] args){ //Set up clients' settings; Dictionary config = new Dictionary(); config[SessionConnection.PROCESSOR_HOST] = "http://server.ibillingclient.org/ibilling/xmlhttps"; config[SessionConnection.PAYMENT_OPTION_VERIFICATION_AMOUNT] = 99; config["debug"] = true; //Login; Session session = Session.Login(2000, "welcome", config); //Create customer account; CustomerAccount customerAccount = session.CreateCustomerAccount(); //code is optinal; if you specify the value, make sure the code is unique; customerAccount.Code = "csharp.ca-2"; customerAccount.MerchantAccountCode = 2001; customerAccount.FirstName = "John"; customerAccount.LastName = "Smith"; customerAccount.Type = CustomerAccountTypes.Male; customerAccount.HomePhone = "2129856472"; customerAccount.Email = "test@yahoo.com"; customerAccount.Street1 = "233 12th Street"; customerAccount.City = "Columbus"; customerAccount.State = "NY"; customerAccount.ZipCode = "31909"; //Create payment option; PaymentOption paymentOption = customerAccount.CreatePaymentOption(); //code is optinal; if you specify the value, make sure the code is unique; paymentOption.Code = "csharp.po-2"; paymentOption.HolderName = "John Smith"; paymentOption.Number = "1000121279381"; //routing number; paymentOption.Accessory = "610000227"; paymentOption.Type = PaymentOptionTypes.Checking; paymentOption.Street1 = "233 12th Street"; paymentOption.City = "Columbus"; paymentOption.State = "CA"; paymentOption.ZipCode = "31909"; //Create payment plan; PaymentPlan paymentPlan = customerAccount.CreatePaymentPlan(); //code is optinal; if you specify the value, make sure the code is unique; paymentPlan.Code = "csharp.pp-2"; //all amounts are in cents; paymentPlan.Amount = 1000; //Item Codes must be setup in portal prior to being used; paymentPlan.ItemCode = "Membership"; paymentPlan.Type = PaymentPlanTypes.Perpetual; //Billing Cycle codes must be setup in portal prior to being used; paymentPlan.BillingCycleCode = "W01"; //Specify desired billing date; if nothing specified, next billing date of the selected cycle assumed. //paymentPlan.FirstBillingDate = ; paymentPlan.PaymentOption = paymentOption; //Create invoice for downpayment; RevenueTransaction revenueTransaction = customerAccount.CreateRevenueTransaction(); //code is optinal; if you specify the value, make sure the code is unique; revenueTransaction.Code = "csharp.rt-2"; //ll amounts are in cents; revenueTransaction.Amount = 5000; //Item Codes must be setup in portal prior to being used; revenueTransaction.ItemCode = "Membership"; //Type of transaction; revenueTransaction.AccountActivityType = AccountActivityTypes.Invoice; //Create payment for downpayment; AssetTransaction transaction = customerAccount.CreateAssetTransaction(); //code is optinal; if you specify the value, make sure the code is unique; transaction.Code = "csharp.at-2"; //all amounts are in cents; transaction.Amount = 5000; transaction.TransactionType = AssetTransactionTypes.Visa; //Credit card number to charge; transaction.AccountNumber = "4111111111111111"; //Credit card expiration date; transaction.Accessory = "1209"; //Type of transaction; transaction.AccountActivityType = AccountActivityTypes.Payment; //Add processing specific info (for better qualification rates; CaptureInfo captureInfo = transaction.CaptureInfo; captureInfo.HolderName = "John Smith"; captureInfo.City = "Columbus"; captureInfo.State = "CA"; captureInfo.Street = "233 12th Street"; captureInfo.ZipCode = "31909"; captureInfo.Phone = "2129856472"; captureInfo.Email = "test@yahoo.com"; captureInfo.Cvv2 = "999"; //Mark object for persistence; session.Save(customerAccount); //Synchronize changes with the server; try{ session.Synchronize(); } catch(Exception ex){ //Be sure to properly handle exception, this is just a sample solution; Console.WriteLine(ex.Message); return ; } //Get info from customer account; Console.WriteLine(customerAccount.Code); Console.WriteLine(customerAccount.FirstName); Console.WriteLine(customerAccount.LastName); Console.WriteLine(customerAccount.CreateDate); //Get info from payment option; Console.WriteLine(paymentOption.Code); Console.WriteLine(paymentOption.Accessory); Console.WriteLine(paymentOption.Number); Console.WriteLine(paymentOption.CreateDate); //Get info from payment plan; Console.WriteLine(paymentPlan.Code); Console.WriteLine(paymentPlan.FirstBillingDate); Console.WriteLine(paymentPlan.BillingCycleCode); Console.WriteLine(paymentPlan.CreateDate); //Get info from revenue transaction; Console.WriteLine(revenueTransaction.Code); Console.WriteLine(revenueTransaction.Amount); Console.WriteLine(revenueTransaction.AccountActivityType); Console.WriteLine(revenueTransaction.CreateDate); //Get info from asset transaction; Console.WriteLine(transaction.Code); Console.WriteLine(transaction.Accessory); Console.WriteLine(transaction.AccountNumber); Console.WriteLine(transaction.CreateDate); //Get info from capture info; Console.WriteLine(captureInfo.ReturnType); Console.WriteLine(captureInfo.ApprovalCode); Console.WriteLine(captureInfo.ReferenceNumber); //logout; session.Logout(); } } }