My company has a project that has a form using the PayFlow_dotNET.dll the form submits with no issues on our Dev Server, we pushed the project to Production and now the information is not getting received by PayPal.
We have made sure that both the test and production PayPal urls work on the Dev server, neither work on the Production server.
Our IT infrastructure team have reviewed the servers and determined no differences are the issue. We have also reviewed the code with PayPal and believe it is not the code.
Has anyone run into any issues submitting their transactions to PayPal using PayFlowPro??
private void ProcessPayment(PaymentModel model, PaymentResponseModel respModel)
// Process Payment using PayFlow
String RequestID = PayflowUtility.RequestId;
UserInfo User = new UserInfo("AOAITSL2650", "AOAITSL2650", "VERISIGN", "AOAsspw265009");
PayflowConnectionData Connection = new PayflowConnectionData(ConfigurationManager.AppSettings["PayFlowPro"], 443, 45, "", 0, "", "");
Invoice Inv = new Invoice();
CultureInfo us = new CultureInfo("en-US");
String usCurrency = "USD";
Currency Amt = new Currency(Convert.ToDecimal(model.totalAmount), usCurrency);
Inv.Amt = Amt;
Inv.PoNum = "PO12345";
Inv.InvNum = "INV12345";
Inv.CustRef = "CustRef1";
Inv.Comment1 = model.selectedAffiliate + " - " + model.orderNumber;
Inv.Comment2 = model.MasterCustomerId;
// Create the BillTo object.
BillTo Bill = new BillTo();
Bill.BillToFirstName = model.FirstName;
Bill.BillToLastName = model.LastName;
Bill.BillToStreet = model.Addr1;
Bill.BillToStreet2 = model.Addr2;
Bill.BillToCity = model.City;
Bill.BillToState = model.State;
Bill.BillToZip = model.Zip;
// Set the BillTo object into invoice.
Inv.BillTo = Bill;
Inv.EchoData = "ADDRESS";
if (model.ExpMonth.Length == 1)
model.ExpMonth = model.ExpMonth.PadLeft(2, '0');
PayPal.Payments.DataObjects.CreditCard CC = new PayPal.Payments.DataObjects.CreditCard(model.CardNumber, string.Concat(model.ExpMonth, model.ExpYear.Substring(2, 2)));
CC.Cvv2 = model.CVV;
CardTender Card = new CardTender(CC);
SaleTransaction Trans = new SaleTransaction(User, Connection, Inv, Card, RequestID);
// Set the transaction verbosity to HIGH to display most details.
Trans.Verbosity = "HIGH";
// Try to submit the transaction up to 3 times with 5 second delay. This can be used
// in case of network issues. The idea here is since you are posting via HTTPS behind the scenes there
// could be general network issues, so try a few times before you tell customer there is an issue.
int trxCount = 1;
bool RespRecd = false;
while (trxCount <= 3 && !RespRecd)
if (Trans != null)
respModel.errorMessage = "EXP YEAR:" + model.ExpYear.Substring(2, 2);
respModel.errorMessage = respModel.errorMessage + " Trans RequestId: " + Trans.mRequestId;
respModel.errorMessage = respModel.errorMessage + " Trans Request: " + Trans.Request;
respModel.errorMessage = respModel.errorMessage + " Trans Response: " + Trans.Response;
respModel.errorMessage = "Trans = null";
// Submit the Transaction
Response Resp = Trans.SubmitTransaction();
// Display the transaction response parameters.
if (Resp != null)
respModel.errorMessage = respModel.errorMessage + " SubmittedTransation Request: " + Resp.RequestString;
respModel.errorMessage = respModel.errorMessage + " SubmittedTransation Response: " + Resp.ResponseString;
respModel.errorMessage = respModel.errorMessage + " SubmittedTransation RecurringResponse: " + Resp.RecurringResponse;
RespRecd = true; // Got a response.
// Get the Transaction Response parameters.
TransactionResponse TrxnResponse = Resp.TransactionResponse;
// Refer to the Payflow Pro .NET API Reference Guide and the Payflow Pro Developer's Guide
// for explanation of the items returned and for additional information and parameters available.
if (TrxnResponse != null)
//Payment Process received a response
respModel.Result = TrxnResponse.Result;
Thread.Sleep(5000); // let's wait 5 seconds to see if this is a temporary network issue.
//Payment Process Failed multiple times
respModel.Result = -10000;
I've tried writing out the information as you can see above. Request and Response never come back with a value. Line 70 is where the problem lies. We can't step into the trans.SubmitTransaction() because that code is inside the dll. All we can tell is it is coming back NULL.
We have talked to PayPal and they say they don't see our request hitting their system. They said our code looks good, and our Infrastructure team says this goes outside our firewall, outside of our control.
Has anyone run into any issue like this??
Out of ideas...