/// <summary> /// API call example for SearchInvoices /// </summary> /// <param name="context"></param> private void SearchInvoices(HttpContext context) { // Collect input params // (Required) Email address of invoice creator. string merchantEmail = context.Request.Params["merchantEmail"]; // (Required) Page number of result set, starting with 1. int page = Convert.ToInt32(context.Request.Params["page"]); // (Required) Number of results per page, between 1 and 100. int pageSize = Convert.ToInt32(context.Request.Params["pageSize"]); InvoiceModelAlias.SearchParametersType searchParams = new InvoiceModelAlias.SearchParametersType(); InvoiceModelAlias.RequestEnvelope env = new InvoiceModelAlias.RequestEnvelope(); // (Required) RFC 3066 language in which error messages are returned; // by default it is en_US, which is the only language currently supported. env.errorLanguage = ERROR_LANGUAGE; InvoiceModelAlias.SearchInvoicesRequest request = new InvoiceModelAlias.SearchInvoicesRequest( env, merchantEmail, searchParams, page, pageSize); // (Optional) Email search string. if (context.Request.Params["email"] != string.Empty) { searchParams.email = context.Request.Params["email"]; } // (Optional) Recipient search string. if (context.Request.Params["recipientName"] != string.Empty) { searchParams.recipientName = context.Request.Params["recipientName"]; } // (Optional) Company search string. if (context.Request.Params["businessName"] != string.Empty) { searchParams.businessName = context.Request.Params["businessName"]; } // (Optional) Invoice number search string. if (context.Request.Params["invoiceNumber"] != string.Empty) { searchParams.invoiceNumber = context.Request.Params["invoiceNumber"]; } // (Optional) Invoice status search. if (context.Request.Params["status0"] != string.Empty) { // You can add upto 10 status to do a 'OR' search on multiple status types searchParams.status.Add( (InvoiceModelAlias.StatusType)Enum.Parse(typeof(InvoiceModelAlias.StatusType), context.Request.Params["status0"])); } // (Optional) Invoice status search. if (context.Request.Params["status1"] != string.Empty) { // You can add upto 10 status to do a 'OR' search on multiple status types searchParams.status.Add( (InvoiceModelAlias.StatusType)Enum.Parse(typeof(InvoiceModelAlias.StatusType), context.Request.Params["status1"])); } // (Optional) Invoice status search. if (context.Request.Params["status2"] != string.Empty) { // You can add upto 10 status to do a 'OR' search on multiple status types searchParams.status.Add( (InvoiceModelAlias.StatusType)Enum.Parse(typeof(InvoiceModelAlias.StatusType), context.Request.Params["status2"])); } // (Optional) Invoice amount search. It specifies the smallest amount to be returned. // If you pass a value for this field, you must also pass a currencyCode value. if (context.Request.Params["lowerAmount"] != string.Empty) { searchParams.lowerAmount = Convert.ToDecimal(context.Request.Params["lowerAmount"]); } // (Optional) Invoice amount search. It specifies the largest amount to be returned. // If you pass a value for this field, you must also pass a currencyCode value. if (context.Request.Params["upperAmount"] != string.Empty) { searchParams.upperAmount = Convert.ToDecimal(context.Request.Params["upperAmount"]); } // (Optional) Invoice memo search string. if (context.Request.Params["memo"] != string.Empty) { searchParams.memo = context.Request.Params["memo"]; } // (Optional) Currency used for lower and upper amounts. // It is required when you specify lowerAmount or upperAmount. if (context.Request.Params["currencyCode"] != string.Empty) { searchParams.currencyCode = context.Request.Params["currencyCode"]; } // (Optional) Indicates whether the invoice was created by the website or by an API call. // It is one of the following values: // Web – The invoice was created on paypal.com. // API – The invoice was created by an Invoicing Service API call. if (context.Request.Params["origin"] != string.Empty) { searchParams.origin = (InvoiceModelAlias.OriginType) Enum.Parse(typeof(InvoiceModelAlias.OriginType), context.Request.Params["origin"]); } // if (context.Request.Params["invoiceDateStart"] != string.Empty || context.Request.Params["invoiceDateEnd"] != string.Empty) { InvoiceModelAlias.DateRangeType dateRange = new InvoiceModelAlias.DateRangeType(); // (Optional) Start of the date range. dateRange.startDate = context.Request.Params["invoiceDateStart"]; // Optional) End of the date range. dateRange.endDate = context.Request.Params["invoiceDateEnd"]; searchParams.invoiceDate = dateRange; } if (context.Request.Params["dueDateStart"] != string.Empty || context.Request.Params["dueDateEnd"] != string.Empty) { InvoiceModelAlias.DateRangeType dateRange = new InvoiceModelAlias.DateRangeType(); // (Optional) Start of the date range. dateRange.startDate = context.Request.Params["dueDateStart"]; // Optional) End of the date range. dateRange.endDate = context.Request.Params["dueDateEnd"]; searchParams.dueDate = dateRange; } if (context.Request.Params["paymentDateStart"] != string.Empty || context.Request.Params["paymentDateEnd"] != string.Empty) { InvoiceModelAlias.DateRangeType dateRange = new InvoiceModelAlias.DateRangeType(); // (Optional) Start of the date range. dateRange.startDate = context.Request.Params["paymentDateStart"]; // Optional) End of the date range. dateRange.endDate = context.Request.Params["paymentDateEnd"]; searchParams.paymentDate = dateRange; } if (context.Request.Params["creationDateStart"] != string.Empty || context.Request.Params["creationDateEnd"] != string.Empty) { InvoiceModelAlias.DateRangeType dateRange = new InvoiceModelAlias.DateRangeType(); // (Optional) Start of the date range. dateRange.startDate = context.Request.Params["creationDateStart"]; // Optional) End of the date range. dateRange.endDate = context.Request.Params["creationDateEnd"]; searchParams.creationDate = dateRange; } // Create service object and make the API call InvoiceAlias.InvoiceService service; InvoiceModelAlias.SearchInvoicesResponse response; SignatureCredential cred = SetThirdPartyAuthorization(context); try { service = GetService(context); if (cred != null) { response = service.SearchInvoices(request, cred); } else { response = service.SearchInvoices(request); } } catch (Exception e) { context.Response.Write(e.Message); return; } // Display response values. Dictionary<string, string> keyResponseParams = new Dictionary<string, string>(); //Acknowledgement code. It is one of the following values: //Success – The operation completed successfully. //Failure – The operation failed. //SuccessWithWarning – The operation completed successfully; however, there is a warning message. //FailureWithWarning – The operation failed with a warning message. keyResponseParams.Add("API status", response.responseEnvelope.ack.ToString()); // Correlation identifier. It is a 13-character, // alphanumeric string (for example, db87c705a910e) that is used // only by PayPal Merchant Technical Support. // Note: You must log and store this data for every response you receive. // PayPal Technical Support uses the information to assist with reported issues. keyResponseParams.Add("correlationId", response.responseEnvelope.correlationId); // Number of invoices that matched the request. keyResponseParams.Add("invoice count", response.count.ToString()); // True if another page of invoice summary results exists. keyResponseParams.Add("hasNextPage", response.hasNextPage.ToString()); // True if a previous page of the invoice summary results exists. keyResponseParams.Add("hasPreviousPage", response.hasPreviousPage.ToString()); if (response.invoiceList != null && response.invoiceList.invoice != null) { int idx = 0; foreach (InvoiceModelAlias.InvoiceSummaryType invoice in response.invoiceList.invoice) { keyResponseParams.Add(idx + " invoice Id", invoice.invoiceID); keyResponseParams.Add(idx + " invoice status", invoice.status.ToString()); idx++; } } displayResponse(context, "SearchInvoices", keyResponseParams, service.getLastRequest(), service.getLastResponse(), response.error, null); }
/// <summary> /// API call example for SearchInvoices /// </summary> /// <param name="context"></param> private void SearchInvoices(HttpContext context) { // Collect input params String merchantEmail = context.Request.Params["merchantEmail"]; int page = Int32.Parse(context.Request.Params["page"]); int pageSize = Int32.Parse(context.Request.Params["pageSize"]); SearchParametersType searchParams = new SearchParametersType(); SearchInvoicesRequest request = new SearchInvoicesRequest( new RequestEnvelope(ERROR_LANGUAGE), merchantEmail, searchParams, page, pageSize); if (context.Request.Params["email"] != "") { searchParams.email = context.Request.Params["email"]; } if (context.Request.Params["recipientName"] != "") { searchParams.recipientName = context.Request.Params["recipientName"]; } if (context.Request.Params["businessName"] != "") { searchParams.businessName = context.Request.Params["businessName"]; } if (context.Request.Params["invoiceNumber"] != "") { searchParams.invoiceNumber = context.Request.Params["invoiceNumber"]; } if (context.Request.Params["status0"] != "") { // You can add upto 10 status to do a 'OR' search on multiple status types searchParams.status.Add( (StatusType)Enum.Parse(typeof(StatusType), context.Request.Params["status0"])); } if (context.Request.Params["status1"] != "") { // You can add upto 10 status to do a 'OR' search on multiple status types searchParams.status.Add( (StatusType)Enum.Parse(typeof(StatusType), context.Request.Params["status1"])); } if (context.Request.Params["status2"] != "") { // You can add upto 10 status to do a 'OR' search on multiple status types searchParams.status.Add( (StatusType)Enum.Parse(typeof(StatusType), context.Request.Params["status2"])); } if (context.Request.Params["lowerAmount"] != "") { searchParams.lowerAmount = decimal.Parse(context.Request.Params["lowerAmount"]); } if (context.Request.Params["upperAmount"] != "") { searchParams.upperAmount = decimal.Parse(context.Request.Params["upperAmount"]); } if (context.Request.Params["memo"] != "") { searchParams.memo = context.Request.Params["memo"]; } if (context.Request.Params["currencyCode"] != "") { searchParams.currencyCode = context.Request.Params["currencyCode"]; } if (context.Request.Params["origin"] != "") { searchParams.origin = (OriginType) Enum.Parse( typeof(OriginType), context.Request.Params["origin"]); } if (context.Request.Params["invoiceDateStart"] != "" || context.Request.Params["invoiceDateEnd"] != "") { DateRangeType dateRange = new DateRangeType(); dateRange.startDate = context.Request.Params["invoiceDateStart"]; dateRange.endDate = context.Request.Params["invoiceDateEnd"]; searchParams.invoiceDate = dateRange; } if (context.Request.Params["dueDateStart"] != "" || context.Request.Params["dueDateEnd"] != "") { DateRangeType dateRange = new DateRangeType(); dateRange.startDate = context.Request.Params["dueDateStart"]; dateRange.endDate = context.Request.Params["dueDateEnd"]; searchParams.dueDate = dateRange; } if (context.Request.Params["paymentDateStart"] != "" || context.Request.Params["paymentDateEnd"] != "") { DateRangeType dateRange = new DateRangeType(); dateRange.startDate = context.Request.Params["paymentDateStart"]; dateRange.endDate = context.Request.Params["paymentDateEnd"]; searchParams.paymentDate = dateRange; } if (context.Request.Params["creationDateStart"] != "" || context.Request.Params["creationDateEnd"] != "") { DateRangeType dateRange = new DateRangeType(); dateRange.startDate = context.Request.Params["creationDateStart"]; dateRange.endDate = context.Request.Params["creationDateEnd"]; searchParams.creationDate = dateRange; } // Create service object and make the API call InvoiceService service; SearchInvoicesResponse response; try { service = getService(context); response = service.SearchInvoices(request); } catch (Exception e) { context.Response.Write(e.Message); return; } // Display response values. Dictionary<string, string> keyResponseParams = new Dictionary<string, string>(); keyResponseParams.Add("API status", response.responseEnvelope.ack.ToString()); keyResponseParams.Add("correlationId", response.responseEnvelope.correlationId); keyResponseParams.Add("invoice count", response.count.ToString()); keyResponseParams.Add("hasNextPage", response.hasNextPage.ToString()); keyResponseParams.Add("hasPreviousPage", response.hasPreviousPage.ToString()); if (response.invoiceList != null && response.invoiceList.invoice != null) { int idx = 0; foreach (InvoiceSummaryType invoice in response.invoiceList.invoice) { keyResponseParams.Add(idx + " invoice Id", invoice.invoiceID); keyResponseParams.Add(idx + " invoice status", invoice.status.ToString()); idx++; } } displayResponse(context, "SearchInvoices", keyResponseParams, service.getLastRequest(), service.getLastResponse(), response.error, null); }
/// <summary> /// API call example for SearchInvoices /// </summary> /// <param name="context"></param> private void SearchInvoices(HttpContext context) { // Collect input params String merchantEmail = context.Request.Params["merchantEmail"]; int page = Int32.Parse(context.Request.Params["page"]); int pageSize = Int32.Parse(context.Request.Params["pageSize"]); SearchParametersType searchParams = new SearchParametersType(); SearchInvoicesRequest request = new SearchInvoicesRequest( new RequestEnvelope(ERROR_LANGUAGE), merchantEmail, searchParams, page, pageSize); if (context.Request.Params["email"] != "") { searchParams.email = context.Request.Params["email"]; } if (context.Request.Params["recipientName"] != "") { searchParams.recipientName = context.Request.Params["recipientName"]; } if (context.Request.Params["businessName"] != "") { searchParams.businessName = context.Request.Params["businessName"]; } if (context.Request.Params["invoiceNumber"] != "") { searchParams.invoiceNumber = context.Request.Params["invoiceNumber"]; } if (context.Request.Params["status0"] != "") { // You can add upto 10 status to do a 'OR' search on multiple status types searchParams.status.Add( (StatusType)Enum.Parse(typeof(StatusType), context.Request.Params["status0"])); } if (context.Request.Params["status1"] != "") { // You can add upto 10 status to do a 'OR' search on multiple status types searchParams.status.Add( (StatusType)Enum.Parse(typeof(StatusType), context.Request.Params["status1"])); } if (context.Request.Params["status2"] != "") { // You can add upto 10 status to do a 'OR' search on multiple status types searchParams.status.Add( (StatusType)Enum.Parse(typeof(StatusType), context.Request.Params["status2"])); } if (context.Request.Params["lowerAmount"] != "") { searchParams.lowerAmount = decimal.Parse(context.Request.Params["lowerAmount"]); } if (context.Request.Params["upperAmount"] != "") { searchParams.upperAmount = decimal.Parse(context.Request.Params["upperAmount"]); } if (context.Request.Params["memo"] != "") { searchParams.memo = context.Request.Params["memo"]; } if (context.Request.Params["currencyCode"] != "") { searchParams.currencyCode = context.Request.Params["currencyCode"]; } if (context.Request.Params["origin"] != "") { searchParams.origin = (OriginType) Enum.Parse( typeof(OriginType), context.Request.Params["origin"]); } if (context.Request.Params["invoiceDateStart"] != "" || context.Request.Params["invoiceDateEnd"] != "") { DateRangeType dateRange = new DateRangeType(); dateRange.startDate = context.Request.Params["invoiceDateStart"]; dateRange.endDate = context.Request.Params["invoiceDateEnd"]; searchParams.invoiceDate = dateRange; } if (context.Request.Params["dueDateStart"] != "" || context.Request.Params["dueDateEnd"] != "") { DateRangeType dateRange = new DateRangeType(); dateRange.startDate = context.Request.Params["dueDateStart"]; dateRange.endDate = context.Request.Params["dueDateEnd"]; searchParams.dueDate = dateRange; } if (context.Request.Params["paymentDateStart"] != "" || context.Request.Params["paymentDateEnd"] != "") { DateRangeType dateRange = new DateRangeType(); dateRange.startDate = context.Request.Params["paymentDateStart"]; dateRange.endDate = context.Request.Params["paymentDateEnd"]; searchParams.paymentDate = dateRange; } if (context.Request.Params["creationDateStart"] != "" || context.Request.Params["creationDateEnd"] != "") { DateRangeType dateRange = new DateRangeType(); dateRange.startDate = context.Request.Params["creationDateStart"]; dateRange.endDate = context.Request.Params["creationDateEnd"]; searchParams.creationDate = dateRange; } // Create service object and make the API call InvoiceService service = getService(context); SearchInvoicesResponse response = service.SearchInvoices(request); // Process response context.Response.Write("<html><body><textarea rows=30 cols=80>"); ObjectDumper.Write(response, 5, context.Response.Output); context.Response.Write("</textarea></body></html>"); }