public string RunTransactionSearch(DateTime StartDate, TransactionSearchParam param, string delimiter) { string sOut = ""; TransactionSearchRequestType transSearch = new TransactionSearchRequestType(); // Set up the TransactionSearch TransactionSearchReq request = new TransactionSearchReq(); transSearch.StartDate = StartDate; request.TransactionSearchRequest = new TransactionSearchRequestType(); transSearch.Version = PayPalServiceUtility.PayPalAPIVersionNumber; transSearch.CurrencyCodeSpecified = false; transSearch.EndDateSpecified = false; transSearch.StatusSpecified = false; //set the params transSearch.StartDate = StartDate; transSearch.EndDate = param.EndDate; #region args list int args = 1; if (param.TransactionID != "") { transSearch.TransactionID = param.TransactionID; args++; } if (param.Amount != "") { transSearch.Amount = new BasicAmountType(); transSearch.Amount.Value = param.Amount; args++; } if (param.PayerEmail != "") { transSearch.Payer = param.PayerEmail; args++; } if (param.Currency != "") { transSearch.CurrencyCodeSpecified = true; args++; } if (param.ItemNumber != "") { transSearch.AuctionItemNumber = param.ItemNumber; args++; } if (param.LastName != "") { transSearch.PayerName = new PersonNameType(); transSearch.PayerName.LastName = param.LastName; args++; } if (param.FirstName != "") { transSearch.PayerName = new PersonNameType(); transSearch.PayerName.FirstName = param.FirstName; args++; } if (param.PaymentStatus != "") { transSearch.StatusSpecified = true; args++; } if (param.PaymentType != "") { transSearch.TransactionClassSpecified = true; args++; } #endregion request.TransactionSearchRequest = transSearch; //if there are more than 0 args set, run the transaction if (args > 0) { //run the transactioon TransactionSearchResponseType response = service.TransactionSearch(request); StringBuilder sb = new StringBuilder(); sb.Append("Status: " + response.Ack.ToString() + delimiter); sb.Append("*********** Results ***************" + delimiter); if (response != null) { sb.Append("Ack" + response.Ack + delimiter); sb.Append("Version" + response.Version + delimiter); sb.Append("Build" + response.Build + delimiter); sb.Append("CorrelationID" + response.CorrelationID + delimiter); if (response.TimestampSpecified) { sb.Append("Timestamp" + response.Timestamp + delimiter); } else { sb.Append("Timestamp Not specified" + delimiter); } //PaymentTransactionSearchResultType[] trans=new PaymentTransactionSearchResultType(); //sb.Append( "PaymentTransactions: "+response.PaymentTransactions.Length.ToString()+delimiter ); if (response.PaymentTransactions != null) { foreach (PaymentTransactionSearchResultType trans in response.PaymentTransactions) { sb.Append("TransactionID: " + trans.TransactionID + delimiter); sb.Append("FeeAmount: " + GetAmountValue(trans.FeeAmount) + delimiter); sb.Append("GrossAmount: " + GetAmountValue(trans.GrossAmount) + delimiter); sb.Append("NetAmount: " + GetAmountValue(trans.NetAmount) + delimiter); sb.Append("Payer: " + trans.Payer + delimiter); sb.Append("PayerDisplayName: " + trans.PayerDisplayName + delimiter); sb.Append("Status: " + trans.Status + delimiter); sb.Append("Timestamp: " + trans.Timestamp.ToLongDateString() + delimiter); sb.Append("Type: " + trans.Type.ToString() + delimiter); sb.Append("--" + delimiter + delimiter); } } sOut = sb.ToString(); } else { sOut = sb.ToString() + delimiter + "No Results!"; } } else { throw new Exception("You must specify at least one search paramater"); } return(sOut); }
public DataTable GetTransactionSearch(DateTime StartDate, TransactionSearchParam param, string delimiter) { DataTable table = new DataTable("results"); TransactionSearchRequestType transSearch = new TransactionSearchRequestType(); // Set up the TransactionSearch TransactionSearchReq request = new TransactionSearchReq(); transSearch.StartDate = StartDate; request.TransactionSearchRequest = new TransactionSearchRequestType(); transSearch.Version = PayPalServiceUtility.PayPalAPIVersionNumber; transSearch.CurrencyCodeSpecified = false; transSearch.EndDateSpecified = false; transSearch.StatusSpecified = false; //set the params transSearch.StartDate = StartDate; transSearch.EndDate = param.EndDate; #region args list int args = 1; if (param.TransactionID != "") { transSearch.TransactionID = param.TransactionID; args++; } if (param.Amount != "") { transSearch.Amount = new BasicAmountType(); transSearch.Amount.Value = param.Amount; args++; } if (param.PayerEmail != "") { transSearch.Payer = param.PayerEmail; args++; } if (param.Currency != "") { transSearch.CurrencyCodeSpecified = true; args++; } if (param.ItemNumber != "") { transSearch.AuctionItemNumber = param.ItemNumber; args++; } if (param.LastName != "") { transSearch.PayerName = new PersonNameType(); transSearch.PayerName.LastName = param.LastName; args++; } if (param.FirstName != "") { transSearch.PayerName = new PersonNameType(); transSearch.PayerName.FirstName = param.FirstName; args++; } if (param.PaymentStatus != "") { transSearch.StatusSpecified = true; args++; } if (param.PaymentType != "") { transSearch.TransactionClassSpecified = true; args++; } #endregion request.TransactionSearchRequest = transSearch; //if there are more than 0 args set, run the transaction if (args > 0) { //run the transactioon TransactionSearchResponseType response = service.TransactionSearch(request); if (response != null) { if (response.PaymentTransactions != null) { //build the columns out DataColumn cTransactionID = new DataColumn("TransactionID"); DataColumn cFeeAmount = new DataColumn("FeeAmount"); DataColumn cGrossAmount = new DataColumn("GrossAmount"); DataColumn cNetAmount = new DataColumn("NetAmount"); DataColumn cPayer = new DataColumn("Payer"); DataColumn cPayerDisplayName = new DataColumn("PayerDisplayName"); DataColumn cStatus = new DataColumn("Status"); DataColumn cTimestamp = new DataColumn("Timestamp"); DataColumn cType = new DataColumn("Type"); table.Columns.Add(cTransactionID); table.Columns.Add(cFeeAmount); table.Columns.Add(cGrossAmount); table.Columns.Add(cNetAmount); table.Columns.Add(cPayer); table.Columns.Add(cPayerDisplayName); table.Columns.Add(cStatus); table.Columns.Add(cTimestamp); table.Columns.Add(cType); DataRow dr; foreach (PaymentTransactionSearchResultType trans in response.PaymentTransactions) { dr = table.NewRow(); dr["TransactionID"] = trans.TransactionID; dr["FeeAmount"] = GetAmountValue(trans.FeeAmount); dr["GrossAmount"] = GetAmountValue(trans.GrossAmount); dr["NetAmount"] = GetAmountValue(trans.NetAmount); dr["Payer"] = trans.Payer; dr["PayerDisplayName"] = trans.PayerDisplayName; dr["Status"] = trans.Status; dr["Timestamp"] = trans.Timestamp.ToLongDateString(); dr["Type"] = trans.Type.ToString(); table.Rows.Add(dr); } } } } else { throw new Exception("You must specify at least one search paramater"); } return(table); }