Payment Technology Blog

Explore our modern gateway designed to help you sell more, make more and keep more.

Thursday, June 3, 2010

How To: Integrate Credit Card and ACH (e-check) processing into a Flex / Actionscript Flash system

This is the eighth part in a series of postings on how to integrate credit card and ACH/E-check transactions into various systems. This installment demonstrates code used for processing payments (credit card and/or ACH) within a Flex / ActionScript Flash application.

This was taken from the NELiX TransaX FleXport toolkit documentation. Credit card integration examples can be downloaded on the NELiX TransaX FleXport page.

Assumptions:
- Using NELiX TransaX Payment Gateway
- Communicating using NELiX TransaX Webservice

Follow these steps.

1. Create a new project.

2. Open “Data->Import Web Service” menu

Image: (NelixExmaples\doc\images\flex\01.jpg)

3. Change port to “RoXAIPSoap”and click “Finish”.
WebService files will be generated automatically.

Image: (NelixExmaples\doc\images\flex\02.jpg)

4. Add import directives in your project:

import com.nelixtransax.Responses;
import com.nelixtransax.Params;
import com.nelixtransax.ProcessTransaction_request;
import com.nelixtransax.ProcessTransactionResultEvent;
import com.nelixtransax.RoXAPI;

5. Initialize WebService:

private var ws:RoXAPI = new RoXAPI(null, null);

6. Add event listeners:

private function OnNelixWSButtonClick():void
{
ws.addEventListener(ProcessTransactionResultEvent.ProcessTransaction_RESULT, OnNelixWSSucces);

var params:Params = new Params();
var token:AsyncToken = ws.processTransaction(params);
token.addEventListener(FaultEvent.FAULT, OnFault);
}

private function OnNelixWSSucces(event:ProcessTransactionResultEvent):void
{
var a:com.nelixtransax.Responses = ws.processTransaction_lastResult;
Alert.show("Succes!");
}

private function OnFault(event:FaultEvent):void
{
Alert.show("Error #" + event.fault.errorID.toString() + ": " + event.fault.message );
}

7. Fill parameters:

private function FillParams(wsParams:Params):void
{
wsParams.TransactionType = TransactionType.selectedItem.toString();
wsParams.GatewayUserName = GatewayUserName.text;
wsParams.GatewayPassword = GatewayPassword.text;
wsParams.IPAddress = "127.0.0.1";

wsParams.Merchant_Defined_Field_1 = Merchant_Defined_Field_1.text;
wsParams.Merchant_Defined_Field_2 = Merchant_Defined_Field_2.text;

if(TransactionType.selectedItem.toString() == "void")
wsParams.TransactionID = TransactionID.text;

if(TransactionType.selectedItem.toString() == "refund")
{
wsParams.Amount = Amount.text;
wsParams.TransactionID = TransactionID.text;
}

if (TransactionType.selectedItem.toString() == "capture" )
{
wsParams.Amount = Amount.text;
wsParams.TransactionID = TransactionID.text;
wsParams.OrderID = OrderID.text;
wsParams.Tracking_Number = Tracking_Number.text;
wsParams.Shipping_Carrier = Shipping_Carrier.text;
}

if (TransactionType.selectedItem.toString() == "update")
{
wsParams.TransactionID = TransactionID.text;
wsParams.Tracking_Number = Tracking_Number.text;
wsParams.Shipping_Carrier = Shipping_Carrier.text;
}

if (Customer_Vault_Action.selectedItem.toString() == "delete_customer")
{
wsParams.Customer_Vault_Action = Customer_Vault_Action.selectedItem.toString();
wsParams.Customer_Vault_ID = Customer_Vault_ID.text;
}

if(TransactionType.selectedItem.toString() == "sale" || TransactionType.selectedItem.toString() == "auth" || Customer_Vault_Action.selectedItem.toString() == "add_customer" || Customer_Vault_Action.selectedItem.toString() == "update_customer" )
{
wsParams.PaymentType = PaymentType.selectedItem.toString();

if(Customer_Vault_Action.selectedItem.toString() == "add_customer" || Customer_Vault_Action.selectedItem.toString() == "update_customer" )
{
wsParams.Customer_Vault_Action = Customer_Vault_Action.selectedItem.toString();
}
wsParams.Customer_Vault_ID = Customer_Vault_ID.text;

if (wsParams.PaymentType == "creditcard")
{
wsParams.CCNumber = CCNumber.text;
wsParams.CCExpDate = CCExpDate.text;
wsParams.CVV = CVV.text;
}
if(wsParams.PaymentType == "check")
{
wsParams.CheckName = CheckName.text;
wsParams.CheckABA = CheckABA.text;
wsParams.CheckAccount = CheckAccount.text;
wsParams.AccountHolderType = AccountHolderType.selectedItem.toString();
wsParams.AccountType = AccountType.selectedItem.toString();
wsParams.SecCode = SecCode.selectedItem.toString();
}

wsParams.Payment_Plan_SKU = Payment_Plan_SKU.text;

wsParams.Amount = Amount.text;
wsParams.Tax = Tax.text;
wsParams.Shipping = Shipping.text;
wsParams.OrderDescription = OrderDescription.text;
wsParams.OrderID = OrderID.text;
wsParams.PONumber = PONumber.text;

wsParams.FirstName = FirstName.text;
wsParams.LastName = LastName.text;
wsParams.Company = Company.text;
wsParams.Address1 = Address1.text;
wsParams.Address2 = Address2.text;
wsParams.City = City.text;
wsParams.State = State.text;
wsParams.Zip = Zip.text;
wsParams.Country = Country.text;
wsParams.Phone = Phone.text;
wsParams.Fax = Fax.text;
wsParams.EMail = EMail.text;
wsParams.Website = Website.text;

wsParams.ShippingFirstName = ShippingFirstName.text;
wsParams.ShippingLastName = ShippingLastName.text;
wsParams.ShippingCompany = ShippingCompany.text;
wsParams.ShippingAddress1 = ShippingAddress1.text;
wsParams.ShippingAddress2 = ShippingAddress2.text;
wsParams.ShippingCity = ShippingCity.text;
wsParams.ShippingState = ShippingState.text;
wsParams.ShippingZip = ShippingZip.text;
wsParams.ShippingCountry = ShippingCountry.text;
wsParams.ShippingEmail = ShippingEmail.text;

wsParams.ProcessorID = ProcessorID.text;
wsParams.Descriptor = Descriptor.text;
wsParams.DescriptorPhone = DescriptorPhone.text;
}
}


If you need any assistance with payment processing integration with your Flex /ActionScript Flash system, we are here to help!

Download Flex / ActionScript flash credit card and ACH (e-check) integration examples.
Flash /ActionScript credit card integration examples also available.



No comments:

The biggest advantage of our gateway comes from power that it puts in the hands of your developers. Easily integrate with your application and take advantage of features to enhance your system.

We invite you to a live demo and the opportunity to build a partnership. Our promise to partners is, through innovation, today's products will be relentlessly enhanced into tomorrow's solutions.

1921-A Rohlwing Road
Rolling Meadows IL 60008-4800
P) 866-513-1547
F) 866-513-1548
info@transaxgateway.com