Пример #1
0
        /// <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, "UpdateInvoice", keyResponseParams, service.getLastRequest(),
                            service.getLastResponse(), response.error, null);
        }
Пример #2
0
    // # SearchInvoices API Operation
    // Use the SearchInvoice API operation to search an invoice.
    public SearchInvoicesResponse SearchInvoicesAPIOperation()
    {
        // Create the SearchInvoicesResponse object
        SearchInvoicesResponse responseSearchInvoices = new SearchInvoicesResponse();

        try
        {
            // # SearchInvoicesRequest
            // Use the SearchInvoiceRequest message to search an invoice.

            // The code for the language in which errors are returned, which must be
            // en_US.
            RequestEnvelope envelopeRequest = new RequestEnvelope();
            envelopeRequest.errorLanguage = "en_US";

            SearchParametersType parameters = new SearchParametersType();

            // 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.
            parameters.upperAmount = Convert.ToDecimal("4.00");

            // Currency used for lower and upper amounts. It is required when you
            // specify lowerAmount or upperAmount.
            parameters.currencyCode = "USD";

            // SearchInvoicesRequest which takes mandatory params:
            //
            // * `Request Envelope` - Information common to each API operation, such
            // as the language in which an error message is returned.
            // * `Merchant Email` - Email address of invoice creator.
            // * `SearchParameters` - Parameters constraining the search.
            // * `Page` - Page number of result set, starting with 1.
            // * `Page Size` - Number of results per page, between 1 and 100.
            SearchInvoicesRequest requestSearchInvoices = new SearchInvoicesRequest(envelopeRequest, "*****@*****.**", parameters, Convert.ToInt32("1"), Convert.ToInt32("10"));

            // Create the service wrapper object to make the API call
            InvoiceService service = new InvoiceService();

            // # API call
            // Invoke the SearchInvoices method in service
            responseSearchInvoices = service.SearchInvoices(requestSearchInvoices);

            if (responseSearchInvoices != null)
            {
                // Response envelope acknowledgement
                string acknowledgement = "SearchInvoices API Operation - ";
                acknowledgement += responseSearchInvoices.responseEnvelope.ack.ToString();
                logger.Info(acknowledgement + "\n");
                Console.WriteLine(acknowledgement + "\n");

                // # Success values
                if (responseSearchInvoices.responseEnvelope.ack.ToString().Trim().ToUpper().Equals("SUCCESS"))
                {
                    // Number of invoices that matched the request.
                    logger.Info("Count : " + responseSearchInvoices.count + "\n");
                    Console.WriteLine("Count : " + responseSearchInvoices.count + "\n");
                }
                // # Error Values
                else
                {
                    List <ErrorData> errorMessages = responseSearchInvoices.error;
                    foreach (ErrorData error in errorMessages)
                    {
                        logger.Debug("API Error Message : " + error.message + "\n");
                        Console.WriteLine("API Error Message : " + error.message + "\n");
                    }
                }
            }
        }
        // # Exception log
        catch (System.Exception ex)
        {
            // Log the exception message
            logger.Debug("Error Message : " + ex.Message);
            Console.WriteLine("Error Message : " + ex.Message);
        }
        return(responseSearchInvoices);
    }