Find Jobs
Hire Freelancers

Payment Gateway Update (Server-side Javascript) Portland, Oregon

$5000-25000 USD

Closed
Posted about 14 years ago

$5000-25000 USD

Paid on delivery
We have an eCommerce site that uses the Paypal API COM object to process credit card transactions. We need to update this to use the First Data/Link Point API COM object. This is currently done via a server-side Javascript classic asp (NO [login to view URL]). Additionally, the First Data/Link Point API returns an xml response. This needs to be parsed to mimic the name/value pair returned by the PayPal API. Due testing limitations, preference will be given to coders local to PDX. ## Deliverables Link to the PayPal API: [login to view URL] (Note: we use and older version and NVP) Included Files are the First Data/LinkPoint Guide and Code Samples. Samples are VBScript and need to be converted to Javascript. Code Fragment to be updated ---Start Fragment--- function fCyberObj() { oCyber = [login to view URL]("[login to view URL]"); return oCyber; } function fCCAuth(OrderID, Amount, CardType, CardNumber, ExpDate, Name, TESTMODE,horder) { var hResult = new classCCRet(); [login to view URL](OrderID); [login to view URL](Amount); [login to view URL](CardType); [login to view URL](CardNumber); [login to view URL](ExpDate); [login to view URL](Name); try { Amount = ([login to view URL](Amount*100)/100); if( "NaN"==(""+Amount)) { [login to view URL]("PMTERR_PARAMETER"); return hResult; } var locCardNumber=""; var locCardType=CardType; var context; [login to view URL]("Creating oCyber"); var oCyber = fCyberObj(); [login to view URL]("oCyber Created:"+oCyber); locCardNumber=String(CardNumber); // testing var host = "[login to view URL]"; // production //var host = "[login to view URL]"; // host port var port = 443; // transaction timeout in seconds var timeOut = 45; var proxyAddress = ""; var proxyPort = 0; var proxyLogon = ""; var proxyPassword = ""; // Specify whether exception trace is enabled or not. when ON, response will also have entire stack // trace of exception if any. Default is OFF. var traceEnabled = "OFF"; // DO NOT CHANGE THE FOLLOWING 4 LEGACY PARAMS var doNotChangeParam1 = ""; var doNotChangeParam2 = ""; var doNotChangeParam3 = ""; var doNotChangeParam4 = true; [login to view URL](host, port, timeOut, proxyAddress, proxyPort, proxyLogon, proxyPassword, traceEnabled, doNotChangeParam1, doNotChangeParam2, doNotChangeParam3, doNotChangeParam4); [login to view URL]("locCardNumber:"+locCardNumber); [login to view URL]("Adding Parameters"); // now build the parameter list that we will pass in. Start with the constant data parmList = "TRXTYPE=S&TENDER=C&VENDOR=xxxxxxxxx&USER=xxxxx&PWD=xxxxx&PARTNER=xxxxx" parmList = parmList + "&ACCT=" + String(locCardNumber).replace(/ |\D/g,""); parmList = parmList + "&EXPDATE=" + String(ExpDate).replace(/\//,""); parmList = parmList + "&AMT=" + Amount; parmList = parmList + "&COMMENT1=" + String(OrderID); parmList = parmList + "&COMMENT2=" + Name; // the following is no longer used // [login to view URL]("INVNUM",String(OrderID)); [login to view URL]("ParametersAdded"); var ResultString; try { ResultString = [login to view URL](parmList,OrderID); } catch (e) { [login to view URL]([login to view URL]("failed in SubmitTransaction")); [login to view URL]([login to view URL] + " parmList is " + parmList); } [login to view URL]("ResultString:"+ResultString); oCyber = null; eval("var hRes={"+[login to view URL](/\=/g,":'").replace(/\&/g,"',")+"'}"); //split("&"); // According to the PayPall documentation, return code 30 occurs if two SubmitTransaction // calls are made with the same requestID (OrderID). Unfortunately, testing shows that 0 // is returned along with the string DUPLICATE=1. The only instance where this should // occur is if we actually get a duplicate purchase due to pressing the buy button // multiple times, cosmic rays, etc. Since the values from the first request are // returned with the duplicate error, we should be able to just treat it like everything // worked. if([login to view URL] == "0" || [login to view URL] == "30") { [login to view URL]("Sale"); [login to view URL]("success"); } else { [login to view URL](""); [login to view URL](String(hRes["RESPMSG"])); } [login to view URL](String(hRes["AUTHCODE"])); [login to view URL](String([login to view URL])); [login to view URL](String(hRes["RESULT"])); [login to view URL](String(hRes["RESPMSG"])); [login to view URL](String(hRes["PNREF"])); [login to view URL](OrderID); [login to view URL](Amount); [login to view URL](CardType); [login to view URL] = locCardNumber+""; [login to view URL](CardNumber); [login to view URL](ExpDate); [login to view URL](Name); hResult.fResultString= ResultString; } catch(e) { [login to view URL]([login to view URL]("really failed here")); [login to view URL]([login to view URL] + " ResultString is " + ResultString); } return hResult; } ---End Fragment
Project ID: 3273165

About the project

1 proposal
Remote project
Active 14 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
1 freelancer is bidding on average $4,930 USD for this job
User Avatar
See private message.
$4,930 USD in 14 days
2.8 (16 reviews)
4.6
4.6

About the client

Flag of UNITED STATES
United States
0.0
0
Member since Mar 18, 2010

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.