コード例 #1
0
        /// <summary>
        /// API call example for UpdateInvoice
        /// </summary>
        /// <param name="context"></param>
        private void UpdateInvoice(HttpContext context)
        {
            // Collect input params
            String           invoiceId     = context.Request.Params["invoiceId"];
            String           merchantEmail = context.Request.Params["merchantEmail"];
            String           payerEmail    = context.Request.Params["payerEmail"];
            PaymentTermsType paymentTerms  = (PaymentTermsType)Enum.Parse(
                typeof(PaymentTermsType), context.Request.Params["paymentTerms"]);
            String item_name1      = context.Request.Params["item_name1"];
            String item_quantity1  = context.Request.Params["item_quantity1"];
            String item_unitPrice1 = context.Request.Params["item_unitPrice1"];
            String item_name2      = context.Request.Params["item_name2"];
            String item_quantity2  = context.Request.Params["item_quantity2"];
            String item_unitPrice2 = context.Request.Params["item_unitPrice2"];
            String currencyCode    = context.Request.Params["currencyCode"];

            InvoiceItemListType itemList = new InvoiceItemListType();

            itemList.item = new List <InvoiceItemType>();
            itemList.item.Add(new InvoiceItemType(
                                  item_name1,
                                  decimal.Parse(item_quantity1),
                                  decimal.Parse(item_unitPrice1)));
            itemList.item.Add(new InvoiceItemType(
                                  item_name2,
                                  decimal.Parse(item_quantity2),
                                  decimal.Parse(item_unitPrice2)));
            InvoiceType invoice = new InvoiceType(merchantEmail, payerEmail, itemList,
                                                  currencyCode, paymentTerms);
            UpdateInvoiceRequest request = new UpdateInvoiceRequest(
                new RequestEnvelope(ERROR_LANGUAGE), invoiceId, invoice);

            // Create service object and make the API call
            InvoiceService        service;
            UpdateInvoiceResponse response;

            try
            {
                service  = getService(context);
                response = service.UpdateInvoice(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("invoiceId", response.invoiceID);
            keyResponseParams.Add("invoiceNumber", response.invoiceNumber);
            keyResponseParams.Add("invoiceUrl", response.invoiceURL);
            keyResponseParams.Add("totalAmount", response.totalAmount.ToString());
            displayResponse(context, "UpdateInvoice", keyResponseParams, service.getLastRequest(),
                            service.getLastResponse(), response.error, null);
        }
コード例 #2
0
    // # CreateAndSendInvoice API Operation
    // Use the CreateAndSendInvoice API operation to create and send an invoice.
    public CreateAndSendInvoiceResponse CreateAndSendInvoiceAPIOperation()
    {
        // Create the CreateAndSendInvoiceResponse object
        CreateAndSendInvoiceResponse responseCreateAndSendInvoice = new CreateAndSendInvoiceResponse();

        try
        {
            // # CreateAndSendInvoiceRequest
            // Use the CreateAndSendInvoiceRequest message to create and send a new
            // invoice. The requester should authenticate the caller and verify that
            // the merchant requesting the invoice has an existing PayPal account in
            // good standing. Once the invoice is created, PayPal sends it to the
            // specified payer, who is notified of the pending invoice.

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

            List <InvoiceItemType> invoiceItemList = new List <InvoiceItemType>();

            // InvoiceItemType which takes mandatory params:
            //
            // * `Item Name` - SKU or name of the item.
            // * `Quantity` - Item count.
            // * `Amount` - Price of the item, in the currency specified by the
            // invoice.
            InvoiceItemType invoiceItem = new InvoiceItemType("Item", Convert.ToDecimal("2"), Convert.ToDecimal("4.00"));
            invoiceItemList.Add(invoiceItem);

            // Invoice item.
            InvoiceItemListType itemList = new InvoiceItemListType(invoiceItemList);

            // InvoiceType which takes mandatory params:
            //
            // * `Merchant Email` - Merchant email address.
            // * `Personal Email` - Payer email address.
            // * `InvoiceItemList` - List of items included in this invoice.
            // * `CurrencyCode` - Currency used for all invoice item amounts and
            // totals.
            // * `PaymentTerms` - Terms by which the invoice payment is due. It is
            // one of the following values:
            //  * DueOnReceipt - Payment is due when the payer receives the invoice.
            //  * DueOnDateSpecified - Payment is due on the date specified in the
            //  invoice.
            //  * Net10 - Payment is due 10 days from the invoice date.
            //  * Net15 - Payment is due 15 days from the invoice date.
            //  * Net30 - Payment is due 30 days from the invoice date.
            //  * Net45 - Payment is due 45 days from the invoice date.
            InvoiceType invoice = new InvoiceType("*****@*****.**", "*****@*****.**", itemList, "USD", PaymentTermsType.DUEONRECEIPT);

            // CreateAndSendInvoiceRequest which takes mandatory params:
            //
            // * `Request Envelope` - Information common to each API operation, such
            // as the language in which an error message is returned.
            // * `Invoice` - Merchant, payer, and invoice information.
            CreateAndSendInvoiceRequest requestCreateAndSendInvoice = new CreateAndSendInvoiceRequest(envelopeRequest, invoice);

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

            // # API call
            // Invoke the CreateAndSendInvoice method in service
            responseCreateAndSendInvoice = service.CreateAndSendInvoice(requestCreateAndSendInvoice);

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

                // # Success values
                if (responseCreateAndSendInvoice.responseEnvelope.ack.ToString().Trim().ToUpper().Equals("SUCCESS"))
                {
                    // ID of the created invoice.
                    logger.Info("Invoice ID : " + responseCreateAndSendInvoice.invoiceID + "\n");
                    Console.WriteLine("Invoice ID : " + responseCreateAndSendInvoice.invoiceID + "\n");
                }
                // # Error Values
                else
                {
                    List <ErrorData> errorMessages = responseCreateAndSendInvoice.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(responseCreateAndSendInvoice);
    }