troubleshooting Question

LinkPoint WebServices Recurring Payment with Custom OrderId

Avatar of robertfowler
robertfowler asked on
.NET ProgrammingC#E-Commerce
6 Comments1 Solution1223 ViewsLast Modified:
I have installed the LinkPoint Webservices Api in my .Net application and use it to successfully conduct transactions for both one-time Sales as well as Recurring periodic billing.

I use the Web Reference to generate the SOAP call. I use the built in FDGGWSApiOrderService object and execute either the FDGGWSApiOrderRequest or FDGGWSApiActionRequest method.

I also customize the orderId using this pattern: firstName.lastName-personId-datetime ToOADate()  [* I strip out any invalid characters in the person's name such as apostrophes and the total length is capped at 100 character -- though the highest I have yet created was 60 long.]

When I submit a basic sale using FDGGWSApiOrder(), I set the OrderId property in the  TransactionDetails object to my custom orderId and the transaction is commits successfully with the correct custom orderId.

However, when I ‘install’ a recurring payment using FDGGWSApiAction() and also set the OrderId property in the  TransactionDetails object to my custom orderId - the transaction commits successfully but the OrderId is changed by LinkPoint to a random unique Id.

How can I force the custom orderId on action requests regarding recurring billing?
I don’t know if my RecurringPayment object is either misconfigured or is missing a setting to override LinkPoint’s auto-generated unique OrderId key.

FYI - my company switched over from using the COM object to WebServices for both ease of deployment in a web farm and the difficulties getting the 32bit api to run on 64bit OS.
While I had no problems assigning a custom created orderId to a recurring payment using the COM object, there is no going back to that method.

Thank you in advance for your help.
Robert

// oTrans – custom object containing all the info I need to build by transaction.
// oTrans.TrxnOrderNumber – my custom orderId

//Normal Sale Transaction  - Custom OrderId
Transaction oTransLP = new Transaction();
TransactionDetails oTrxnDetails = new TransactionDetails();
oTrxnDetails.PONumber = oTrans.TrxnPoNumber;
oTrxnDetails.InvoiceNumber = oTrans.TrxnInvoiceNumber;
oTrxnDetails.OrderId = oTrans.TrxnOrderNumber;
oTransLP.TransactionDetails = oTrxnDetails;
/** I also create and append to the oTransLP the following objects: CreditCardData, Payment, Billing, Shipping, and Notes **/

FDGGWSApiOrderRequest oOrderRequest = new FDGGWSApiOrderRequest();
oOrderRequest.Item = oTransLP;
oOrderResponse = oLPOrderService.FDGGWSApiOrder(oOrderRequest);


//Recurring Transaction [Install] – with custom OrderId
RecurringPayment oRecurring = new RecurringPayment();
oRecurring.Function = RecurringPaymentFunction.install;

RecurringPaymentInformation oRecurringInfo = new RecurringPaymentInformation();
oRecurringInfo.RecurringStartDate = DateTime.Now.ToString("yyyyMMdd"); 
oRecurringInfo.InstallmentCount = "60";
oRecurringInfo.InstallmentFrequency = "5";
oRecurringInfo.InstallmentPeriod = RecurringPaymentInformationInstallmentPeriod.year;
oRecurringInfo.InstallmentPeriodSpecified = true;
oRecurringInfo.MaximumFailures = "1";
oRecurring.RecurringPaymentInformation = oRecurringInfo;

TransactionDetails oTrxnDetails = new TransactionDetails();
oTrxnDetails.PONumber = oTrans.TrxnPoNumber;
oTrxnDetails.Recurring = Recurring.Yes;
oTrxnDetails.InvoiceNumber = oTrans.TrxnInvoiceNumber;
oTrxnDetails.OrderId = oTrans.TrxnOrderNumber;
oRecurring.TransactionDetails = oTrxnDetails;

/** I also create and append to the oTransLP the following objects: CreditCardData, Payment, Billing, Shipping, and Notes **/

FDGGWSApiActionRequest oActionRequest = new FDGGWSApiActionRequest();
LinkPointGateway.Action oAction = new LinkPointGateway.Action();
oAction.Item = oRecurring;
oActionRequest.Item = oAction;
oLPOrderService.FDGGWSApiAction(oActionRequest);
ASKER CERTIFIED SOLUTION
robertfowler

Our community of experts have been thoroughly vetted for their expertise and industry experience.

Join our community to see this answer!
Unlock 1 Answer and 6 Comments.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 6 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros