I started to look into it a little deeper, and started to look into the parameters I used in the PFPRO client 2.x.
I do not have a mag stripe reader with me, but I believe I ran a sample through the API https post and it appears it gave me a proper response (Declined).
I believe if it did not work, it would of gave me another error message, maybe something like "BAD PARAMETER" or "BAD NAME-VALUE PAIR".
I know it is not documented, but it does appear to work.
The code below was pulled from a website my associate found, It was originally developed in C sharp, C Pound, C#) But I redeveloped in into vb.net.
I believe the original c sharp code may have came from this website:
http://geekswithblogs.net/mikedopp/archive/2008/02/04/paypal-payflow-pro-code.aspx
Dim postURL As String = "https://pilot-payflowpro.verisign.com"
' live
' string postURL = "https://payflowpro.verisign.com/transaction";
' 2. Set your user info. This is case sensitive
Dim PWD As String = "password"
Dim USER As String = "userxyz"
Dim VENDOR As String = "Yourcompany"
Dim PARTNER As String = "gatewaycompany"
' 3. now create the name value pair string to send to the Payflow servers
' more variables can be found in the docs that can be downloaded from your payflow manager
Dim postData As StringBuilder = New StringBuilder() ' ***************add the user info***************
postData.Append("PWD=" + PWD) postData.Append("&USER=" + USER)postData.Append(
"&VENDOR=" + VENDOR)postData.Append("&PARTNER=" + PARTNER) ' ***************add some required info for testing***************
' postData.Append("&CUSTIP=" + Request.UserHostAddress);
' S for Sale. A for Auth. More in the docs
postData.Append("&TRXTYPE=S")postData.Append("&AMT=1.00") '--------
If Not (isCCSWIPE) Then
'postData.Append("&EXPDATE=1209"
'postData.Append("&ACCT=5105105105105100"
'postData.Append("&CVV2=123"
'--------
Else
'--------&SWIPE[lengthOfOneOfTheMagStripsOnTheCard]=OneOfTheMagStripsOnTheCard
postData.Append("&SWIPE[" + GetSwipeData().Length.ToString() + "]=" + GetSwipeData()) End If
postData.Append("&FIRSTNAME=Doug") postData.Append("&LASTNAME=Lubey")
postData.Append("&STREET=155515") postData.Append("&STATE=LA")
postData.Append("&CITY=BatonRouge") postData.Append("&ZIP=12345")
postData.Append("&COUNTRY=US") ' C is for credit card, P is for PayPal Express Checkout. More in the docs
postData.Append("&TENDER=C") ' *************add some optional feilds***************
' postData.Append("&COMMENT1=ASP.NET Testing"
;
' make sure that the "@" is not url encoded or you will get an error
' postData.Append("&email=bob@domain.com"
;
' this is if you want to have PayPal send an IPN post
' postData.Append("&NOTIFYURL=" + xxxx);
' removed for now: INVNUM=12345678&
' add the REQUEST_ID
postData.Append("&REQUEST_ID=" + System.Guid.NewGuid().ToString()) ' TROUBLESHOOTING
'locString = postData.ToString()
requestBytes = Encoding.UTF8.GetBytes(postData.ToString())
locNewWebRequest = HttpWebRequest.Create(postURL)
'Set WebRequest Properties
locNewWebRequest.Method = "POST"
locNewWebRequest.Accept = "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"
locNewWebRequest.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7"
locNewWebRequest.ContentType = "text/namevalue"
locNewWebRequest.ContentLength = requestBytes.Length
locNewWebRequest.AllowAutoRedirect = False
'add the custom headers
locNewWebRequest.Headers.Add("X-VPS-Timeout:30") locNewWebRequest.Headers.Add("X-VPS-VIT-Client-Architecture:x86")
locNewWebRequest.Headers.Add("X-VPS-VIT-Client-Certification-Id:14")
locNewWebRequest.Headers.Add("X-VPS-VIT-Client-Type:ASP.NET")
locNewWebRequest.Headers.Add("X-VPS-VIT-Client-Version:0.0.1")
locNewWebRequest.Headers.Add("X-VPS-VIT-Integration-Product:Homegrown")locNewWebRequest.Headers.Add("X-VPS-VIT-Integration-Version:0.0.1") locNewWebRequest.Headers.Add("X-VPS-VIT-OS-Name:windows")
locNewWebRequest.Headers.Add("X-VPS-VIT-OS-Version:2002_SP2") 'write the form values into the request message
locWebResponseStream = locNewWebRequest.GetRequestStream()
locWebResponseStream.Write(requestBytes, 0, requestBytes.Length)
'Get the response. (communication to webpage)
Dim locWebResponse As HttpWebResponse locWebResponse = locNewWebRequest.GetResponse()
locWebResponseStream.Close()
'Get the response string after communication succeeded.
Dim locResponseReader As StreamReaderlocResponseReader = New StreamReader(locNewWebRequest.GetResponse().GetResponseStream()) 'Get all data from the page into a single string
Dim responseData As String = locResponseReader.ReadToEnd() locResponseReader.Close()
locString = responseData
reference: Swipe for Mag Strip on a credit card
==========================
==========================
3rd post
==========================
==========================
Here is information I found in a payflow implementation on the Wells Fargo site (of course i did not dig for it, google found it for me) .