private void setKeyResponseObjects(PayPalAPIInterfaceServiceService service, DoReferenceTransactionResponseType response)
        {
            HttpContext CurrContext = HttpContext.Current;

            CurrContext.Items.Add("Response_apiName", "DoReferenceTransaction");
            CurrContext.Items.Add("Response_redirectURL", null);
            CurrContext.Items.Add("Response_requestPayload", service.getLastRequest());
            CurrContext.Items.Add("Response_responsePayload", service.getLastResponse());

            Dictionary <string, string> responseParams = new Dictionary <string, string>();

            responseParams.Add("Correlation Id", response.CorrelationID);
            responseParams.Add("API Result", response.Ack.ToString());

            if (response.Ack.Equals(AckCodeType.FAILURE) ||
                (response.Errors != null && response.Errors.Count > 0))
            {
                CurrContext.Items.Add("Response_error", response.Errors);
            }
            else
            {
                CurrContext.Items.Add("Response_error", null);
                DoReferenceTransactionResponseDetailsType transactionDetails = response.DoReferenceTransactionResponseDetails;
                responseParams.Add("Transaction ID", transactionDetails.TransactionID);
                responseParams.Add("Payment status", transactionDetails.PaymentInfo.PaymentStatus.ToString());
                if (transactionDetails.PaymentInfo.PendingReason != null)
                {
                    responseParams.Add("Pending reason", transactionDetails.PaymentInfo.PendingReason.ToString());
                }
            }
            CurrContext.Items.Add("Response_keyResponseObject", responseParams);
            Server.Transfer("../APIResponse.aspx");
        }
        private PayPalTrasactions ProcessTrasactionResponse(DoReferenceTransactionResponseType setECResponse)
        {
            PayPalTrasactions responseObject = new PayPalTrasactions();

            responseObject.ApiStatus = setECResponse.Ack.ToString();
            if (setECResponse.Ack.Equals(AckCodeType.FAILURE) ||
                (setECResponse.Errors != null && setECResponse.Errors.Count > 0))
            {
                responseObject.ResponseError = setECResponse.Errors;
            }
            else
            {
                responseObject.ResponseError = null;
                DoReferenceTransactionResponseDetailsType transactionDetails = setECResponse.DoReferenceTransactionResponseDetails;
                responseObject.TransactionID      = transactionDetails.TransactionID;
                responseObject.BillingAgreementID = transactionDetails.BillingAgreementID;

                if (transactionDetails.PaymentInfo != null)
                {
                    if (transactionDetails.PaymentInfo.PaymentStatus != null)
                    {
                        responseObject.PaymentStatus = transactionDetails.PaymentInfo.PaymentStatus.Value.ToString();
                    }
                    if (transactionDetails.PaymentInfo.PendingReason != null)
                    {
                        responseObject.PendingReason = transactionDetails.PaymentInfo.PendingReason.Value.ToString();
                    }
                    responseObject.PaymentDate   = transactionDetails.PaymentInfo.PaymentDate.ToString();
                    responseObject.GrossAmount   = transactionDetails.PaymentInfo.GrossAmount.value;
                    responseObject.TransactionID = transactionDetails.PaymentInfo.TransactionID;


                    responseObject.ItemTotal = transactionDetails.PaymentInfo.GrossAmount.value;

                    //responseObject.ResponseError = transactionDetails.PaymentInfo.PaymentError;

                    // comment by nitendra 16 March 2016
                    //responseObject.OrderTotal = transactionDetails.Amount.value;

                    responseObject.OrderTotal = transactionDetails.PaymentInfo.GrossAmount.value;
                }
            }
            return(responseObject);
        }