/// <summary> /// Process a payment transaction /// </summary> /// <param name="request">A PayPalRequest object containing the information to process.</param> /// <returns>A PayPalResponse object with the payment gateway's response.</returns> public ACHCancelResponse ProcessTransaction(ACHCancelRequest request) { ACHCancelResponse response = new ACHCancelResponse(); PayflowNETAPI payflowNetApi = new PayflowNETAPI(request.HostAddress, request.HostPort, request.TimeOut); string apiResponse = payflowNetApi.SubmitTransaction(request.ParmList.ToString(),PayflowUtility.RequestId); response = ParseApiResponse(apiResponse); return response; }
/// <summary> /// Parse a string response from PayPal into the PayPalResponse object. /// </summary> /// <param name="apiResponse">PayPal's API response</param> /// <returns>Our PayPalResponse Service object.</returns> private ACHCancelResponse ParseApiResponse(string apiResponse) { ACHCancelResponse response = new ACHCancelResponse(); Dictionary<string, string> responseDictionary = new Dictionary<string, string>(); string[] splitResponse = apiResponse.Split('&'); foreach (string s in splitResponse) { string[] pair = s.Split('='); responseDictionary.Add(pair[0], pair[1]); } string output = ""; responseDictionary.TryGetValue("PNREF", out output); response.Pnref = output; output = ""; responseDictionary.TryGetValue("PPREF", out output); response.Ppref = output; output = ""; responseDictionary.TryGetValue("RESULT", out output); response.Result = output; output = ""; responseDictionary.TryGetValue("CVV2MATCH", out output); response.Cvv2Match = output; output = ""; responseDictionary.TryGetValue("RESPMSG", out output); response.RespMsg = output; output = ""; responseDictionary.TryGetValue("AUTHCODE", out output); response.AuthCode = output; output = ""; responseDictionary.TryGetValue("AVSADDR", out output); response.AvsAddr = output; output = ""; responseDictionary.TryGetValue("AVSZIP", out output); response.AvsZip = output; output = ""; responseDictionary.TryGetValue("IAVS", out output); response.Iavs = output; output = ""; responseDictionary.TryGetValue("PROCAVS", out output); response.ProcAvs = output; output = ""; responseDictionary.TryGetValue("PROCCVV2", out output); response.ProcCvv2 = output; output = ""; responseDictionary.TryGetValue("CORRELATIONID", out output); response.CorrelationId = output; output = ""; responseDictionary.TryGetValue("AMEXID", out output); response.AmexId = output; output = ""; responseDictionary.TryGetValue("AMEXPOSDATA", out output); response.AmexPosData = output; return response; }