Esempio n. 1
0
        /// <summary>
        /// Execute the sample, using the given arguments as parameters for the scenario
        ///
        /// The sample executes the refund against the capture and verifies that the
        /// refund has been performed through waiting for a refund payment notification
        /// </summary>
        /// <param name="amazonCaptureId">Amazon Capture Id for the capture transaction to perform the refund against</param>
        /// <param name="refundAmount">Amount to refund to the customer</param>
        /// <param name="providerId">Provider Id for whom credit reversal is needed</param>
        /// <param name="creditReversalAmount">Credit Amount to reverse from the provider</param>
        private void RunSample(string amazonCaptureId, string refundAmount, string providerId, string creditReversalAmount)
        {
            /************************************************************************
             * Invoke Refund Action
             ***********************************************************************/
            RefundResponse refundResponse = this._providerRefund.RefundActionWithProviderCreditReversal(amazonCaptureId, refundAmount, providerId, creditReversalAmount);

            if (refundResponse == null)
            {
                throw new Exception("The response from Refund request is null");
            }

            /************************************************************************
             * Wait for the refund notification to arrive and display it to the user
             ***********************************************************************/
            lblNotification.Text += WaitAndGetNotificationDetails(refundResponse.RefundResult.RefundDetails.AmazonRefundId + "_Refund");

            /************************************************************************
             * Invoke Get Refund Details Action
             ***********************************************************************/
            GetRefundDetailsResponse getRefundDetailsResponse = this._providerRefund.GetRefundDetails(refundResponse);

            if (getRefundDetailsResponse == null)
            {
                throw new OffAmazonPaymentsServiceException("The response from GetRefundDetails Response request is null");
            }

            /************************************************************************
             * Invoke Get Provider Credit Reversal Details Action after getting ipn
             ***********************************************************************/
            if (!String.IsNullOrEmpty(providerId) && !String.IsNullOrEmpty(creditReversalAmount))
            {
                foreach (OffAmazonPaymentsService.Model.ProviderCreditReversalSummary providerCreditReversalSummary in getRefundDetailsResponse.GetRefundDetailsResult.RefundDetails.ProviderCreditReversalSummaryList.member)
                {
                    /************************************************************************
                     * Wait for the notification from ipn.aspx page in a loop, then print the corresponding information
                     ***********************************************************************/
                    lblNotification.Text += formatStringForDisplay(WaitAndGetNotificationDetails(providerCreditReversalSummary.ProviderCreditReversalId + "_ProviderCreditReversal"));
                    GetProviderCreditReversalDetailsResponse getProviderCreditReversalDetailsResponse = this._providerRefund.GetProviderCreditReversalDetails(providerCreditReversalSummary);
                    if (getProviderCreditReversalDetailsResponse == null)
                    {
                        throw new OffAmazonPaymentsServiceException("The response from GetProviderCreditReversalDetails request is null for ProviderCreditReversalId:" + providerCreditReversalSummary.ProviderCreditReversalId);
                    }
                }
            }
        }
        /// <summary>
        /// Parse the Notification into API Response objects.
        /// </summary>
        private void GetIpnResponseObjects()
        {
            string xml;

            xml = this.ToXml();

            if (Enum.IsDefined(typeof(NotificationType), this.GetNotificationType()))
            {
                switch ((NotificationType)Enum.Parse(typeof(NotificationType), this.GetNotificationType()))
                {
                case NotificationType.OrderReferenceNotification:
                    orderReferenceDetailsObject = new OrderReferenceDetailsResponse(xml);
                    break;

                case NotificationType.BillingAgreementNotification:
                    billingAgreementDetailsObject = new BillingAgreementDetailsResponse(xml);
                    break;

                case NotificationType.PaymentAuthorize:
                    authorizeResponseObject = new AuthorizeResponse(xml);
                    break;

                case NotificationType.PaymentCapture:
                    captureResponseObject = new CaptureResponse(xml);
                    break;

                case NotificationType.PaymentRefund:
                    refundResponseObject = new RefundResponse(xml);
                    break;

                case NotificationType.ProviderCredit:
                    providerCreditResponseObject = new GetProviderCreditDetailsResponse(xml);
                    break;

                case NotificationType.ProviderCreditReversal:
                    providerCreditReversalResponseObject = new GetProviderCreditReversalDetailsResponse(xml);
                    break;

                case NotificationType.ChargebackDetailedNotification:
                    chargebackResponseObject = new ChargebackResponse(xml);
                    break;
                }
            }
        }
Esempio n. 3
0
        private static void RunSample()
        {
            /************************************************************************
             * Invoke Reverse Provider Credit Action
             ***********************************************************************/
            ReverseProviderCreditResponse reverseProviderCreditResponse = reverseProviderCreditInstance.ReverseProviderCreditAction(amazonProviderCreditId, creditReversalAmount);

            if (reverseProviderCreditResponse == null)
            {
                throw new OffAmazonPaymentsServiceException("The response of  ReverseProviderCredit request is null");
            }

            /************************************************************************
             * Invoke Get Provider Credit Reversal Details
             ***********************************************************************/
            GetProviderCreditReversalDetailsResponse getProviderCreditReversalDetailsResponse = reverseProviderCreditInstance.GetProviderCreditReversalDetails(reverseProviderCreditResponse);

            if (getProviderCreditReversalDetailsResponse == null)
            {
                throw new OffAmazonPaymentsServiceException("The response of getProviderCreditReversalDetails request is null");
            }
        }
Esempio n. 4
0
        private static void RunSample()
        {
            /************************************************************************
             * Invoke Refund Action With Provider Credit Reversal
             ***********************************************************************/
            RefundResponse refundResponse = providerRefund.RefundActionWithProviderCreditReversal(amazonCaptureId, refundAmount, providerId, creditReversalAmount);

            if (refundResponse == null)
            {
                throw new OffAmazonPaymentsServiceException("The response of Refund request is null");
            }

            /************************************************************************
             * Check Refund Status unitl it is not "PENDING" any more
             * GetRefundDetails is contained in this method
             ***********************************************************************/
            GetRefundDetailsResponse getRefundDetailsResponse = providerRefund.CheckRefundStatus(refundResponse);

            if (getRefundDetailsResponse == null)
            {
                throw new OffAmazonPaymentsServiceException("The response of GetRefundDetails request is null");
            }

            /************************************************************************
             * Invoke Get Provider Credit Reversal Details
             ***********************************************************************/
            if (getRefundDetailsResponse.GetRefundDetailsResult.RefundDetails.IsSetProviderCreditReversalSummaryList())
            {
                foreach (ProviderCreditReversalSummary providerCreditReversalSummary in getRefundDetailsResponse.GetRefundDetailsResult.RefundDetails.ProviderCreditReversalSummaryList.member)
                {
                    GetProviderCreditReversalDetailsResponse getProviderCreditReversalDetails = providerRefund.GetProviderCreditReversalDetails(providerCreditReversalSummary);
                    if (getProviderCreditReversalDetails == null)
                    {
                        throw new OffAmazonPaymentsServiceException("The response from GetProviderCreditDetails request is null for ProviderCreditId:" + providerCreditReversalSummary.ProviderCreditReversalId);
                    }
                    Console.WriteLine("=============================================================================");
                }
            }
        }
Esempio n. 5
0
        public static GetProviderCreditReversalDetailsResponse InvokeGetProviderCreditReversalDetails(IOffAmazonPaymentsService service, GetProviderCreditReversalDetailsRequest request)
        {
            GetProviderCreditReversalDetailsResponse response = null;

            try
            {
                response = service.GetProviderCreditReversalDetails(request);
                Console.WriteLine("Service Response");
                Console.WriteLine("=============================================================================");
                Console.WriteLine();
                Console.WriteLine("        GetProviderCreditReversalDetailsResponse");
                if (response.IsSetGetProviderCreditReversalDetailsResult())
                {
                    Console.WriteLine("            GetProviderCreditReversalDetailsResult");
                    GetProviderCreditReversalDetailsResult GetProviderCreditReversalDetailsResult = response.GetProviderCreditReversalDetailsResult;
                    if (GetProviderCreditReversalDetailsResult.IsSetProviderCreditReversalDetails())
                    {
                        Console.WriteLine("                ProviderCreditReversalDetails");
                        ProviderCreditReversalDetails ProviderCreditReversalDetails = GetProviderCreditReversalDetailsResult.ProviderCreditReversalDetails;
                        if (ProviderCreditReversalDetails.IsSetAmazonProviderCreditReversalId())
                        {
                            Console.WriteLine("                    AmazonProviderCreditReversalId");
                            Console.WriteLine("                        {0}", ProviderCreditReversalDetails.AmazonProviderCreditReversalId);
                        }
                        if (ProviderCreditReversalDetails.IsSetCreditReversalReferenceId())
                        {
                            Console.WriteLine("                    CreditReversalReferenceId");
                            Console.WriteLine("                        {0}", ProviderCreditReversalDetails.AmazonProviderCreditReversalId);
                        }
                        if (ProviderCreditReversalDetails.IsSetProviderId())
                        {
                            Console.WriteLine("                    ProviderId");
                            Console.WriteLine("                        {0}", ProviderCreditReversalDetails.ProviderId);
                        }
                        if (ProviderCreditReversalDetails.IsSetSellerId())
                        {
                            Console.WriteLine("                    SellerId");
                            Console.WriteLine("                        {0}", ProviderCreditReversalDetails.SellerId);
                        }
                        if (ProviderCreditReversalDetails.IsSetCreditReversalAmount())
                        {
                            Console.WriteLine("                    CreditReversalAmount");
                            Price creditReversalAmount = ProviderCreditReversalDetails.CreditReversalAmount;
                            if (creditReversalAmount.IsSetAmount())
                            {
                                Console.WriteLine("                        Amount");
                                Console.WriteLine("                            {0}", creditReversalAmount.Amount);
                            }
                            if (creditReversalAmount.IsSetCurrencyCode())
                            {
                                Console.WriteLine("                        CurrencyCode");
                                Console.WriteLine("                            {0}", creditReversalAmount.CurrencyCode);
                            }
                        }
                        if (ProviderCreditReversalDetails.IsSetCreationTimestamp())
                        {
                            Console.WriteLine("                    CreationTimestamp");
                            Console.WriteLine("                        {0}", ProviderCreditReversalDetails.CreationTimestamp);
                        }
                        if (ProviderCreditReversalDetails.IsSetCreditReversalStatus())
                        {
                            Console.WriteLine("                    CreditReversalStatus");
                            Status creditReversalStatus = ProviderCreditReversalDetails.CreditReversalStatus;
                            if (creditReversalStatus.IsSetState())
                            {
                                Console.WriteLine("                        State");
                                Console.WriteLine("                            {0}", creditReversalStatus.State);
                            }
                            if (creditReversalStatus.IsSetLastUpdateTimestamp())
                            {
                                Console.WriteLine("                        LastUpdateTimestamp");
                                Console.WriteLine("                            {0}", creditReversalStatus.LastUpdateTimestamp);
                            }
                            if (creditReversalStatus.IsSetReasonCode())
                            {
                                Console.WriteLine("                        ReasonCode");
                                Console.WriteLine("                            {0}", creditReversalStatus.ReasonCode);
                            }
                            if (creditReversalStatus.IsSetReasonDescription())
                            {
                                Console.WriteLine("                        ReasonDescription");
                                Console.WriteLine("                            {0}", creditReversalStatus.ReasonDescription);
                            }
                        }
                    }
                }
                if (response.IsSetResponseMetadata())
                {
                    Console.WriteLine("            ResponseMetadata");
                    ResponseMetadata responseMetadata = response.ResponseMetadata;
                    if (responseMetadata.IsSetRequestId())
                    {
                        Console.WriteLine("                RequestId");
                        Console.WriteLine("                    {0}", responseMetadata.RequestId);
                    }
                }
            }
            catch (OffAmazonPaymentsServiceException ex)
            {
                PrintException(ex);
            }
            return(response);
        }