Scenario 3: Visual C++.NET

From Intrannuity

Jump to: navigation, search

Download Source File

#include "stdafx.h"
 
using namespace System;
using namespace System::Collections::Generic;
using namespace iBilling::Client;
 
int Scenario3(array<System::String ^> ^args)
{
	//Set up clients' settings;
	Dictionary<String^, Object^>^ config = gcnew Dictionary<String^, Object^>();
	config[SessionConnection::PROCESSOR_HOST] = "http://server.ibillingclient.org/ibilling/xmlhttps";
	config["debug"] = true;
	Session^ session = Session::Login(2000, "welcome", config);
	//Find customer account;
	CustomerAccount^ customerAccount = session->LoadCustomerAccount("cpp.ca-1");
	//Create payment plan;
	PaymentPlan^ paymentPlan = customerAccount->CreatePaymentPlan();
	//code is optinal; if you specify the value, make sure the code is unique;
	paymentPlan->Code = "cpp.pp-3";
	//all amounts are in cents;
	paymentPlan->Amount = 3000;
	//Item Codes must be setup in portal prior to being used;
	paymentPlan->ItemCode = "Membership";
	//Billing Cycle codes must be setup in portal prior to being used;
	paymentPlan->BillingCycleCode = "M03";
	paymentPlan->Type = PaymentPlanTypes::Fixed;
	//Specify desired billing date; if nothing specified, next billing date of the selected cycle assumed.
	//paymentPlan.FirstBillingDate = <DateTime>;
	paymentPlan->Add(0, 6, false);
	//Create child payment plan;
	PaymentPlan^ childPaymentPlan = paymentPlan->CreateLinkedPaymentPlan();
	//code is optinal; if you specify the value, make sure the code is unique;
	childPaymentPlan->Code = "cpp.pp-3-1";
	childPaymentPlan->Type = PaymentPlanTypes::Perpetual;
	//all amounts are in cents;
	childPaymentPlan->Amount = 2000;
	//Item Codes must be setup in portal prior to being used;
	childPaymentPlan->ItemCode = "Membership";
	//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 0;
	}
	//logout;
	session->Logout();
return 0;
}
Personal tools