private void RunSample(OffAmazonPaymentsServiceSimpleCheckout simpleCheckout, string orderReferenceId, string orderAmount, int shippingOption, int authorizationOption) { /************************************************************************ * Invoke Get Order Reference Details Action ***********************************************************************/ GetOrderReferenceDetailsResponse getOrderDetails = simpleCheckout.GetOrderReferenceDetails(); if (getOrderDetails == null) { throw new OffAmazonPaymentsServiceException("The response from GetOrderReference request is null"); } /************************************************************************ * Add the tax and shipping rates here * Get the rates by using the CountryCode and the StateOrRegionCode from the orderReferenceDetails ***********************************************************************/ Destination destination = getOrderDetails.GetOrderReferenceDetailsResult.OrderReferenceDetails.Destination; TaxAndShippingRates rates = new TaxAndShippingRates(destination); string totalAmount = rates.getTotalAmountWithTaxAndShipping(Convert.ToDouble(orderAmount), shippingOption).ToString("0.##"); Address address = destination.PhysicalDestination; lblShipping.Text = "The shipping address is: <br>" + address.City + "<br>" + address.StateOrRegion + "<br>" + address.PostalCode + "<br>" + "The total amount with tax and shipping is: " + totalAmount + "<br>"; /************************************************************************ * Invoke Set Order Reference Details Action ***********************************************************************/ SetOrderReferenceDetailsResponse setOrderDetailsResponse = simpleCheckout.SetOrderReferenceDetails(totalAmount); if (setOrderDetailsResponse == null) { throw new OffAmazonPaymentsServiceException("The response from SetOrderReference request is null"); } /************************************************************************ * Invoke Confirm Order Reference Action ***********************************************************************/ if (simpleCheckout.ConfirmOrderReferenceObject() == null) { throw new OffAmazonPaymentsServiceException("The response from ConfirmOrderResponse request is null"); } /************************************************************************ * Invoke Authorize Action ***********************************************************************/ AuthorizeResponse authResponse = simpleCheckout.AuthorizeAction(setOrderDetailsResponse, authorizationOption); if (authResponse == null) { throw new OffAmazonPaymentsServiceException("The response from Authorization Response request is null"); } /************************************************************************ * Wait for the notification from ipn.aspx page in a loop, then print the corresponding information ***********************************************************************/ lblNotification.Text += formatStringForDisplay(WaitAndGetNotificationDetails(authResponse.AuthorizeResult.AuthorizationDetails.AmazonAuthorizationId + "_Authorize")); GetAuthorizationDetailsResponse response = simpleCheckout.CheckAuthorizationStatus(authResponse); /************************************************************************ * On an IPN callback, call Get Authorization Details to retreive additional * information about the authorization - this is done as part of the * previous call to check the status. ***********************************************************************/ StringWriter stringWriter = new StringWriter(); GetAuthorizationDetailsSample.printGetAuthorizationDetailsResponseToBuffer(response, stringWriter); lblNotification.Text += formatStringForDisplay(stringWriter.ToString()); /************************************************************************ * Invoke Capture Action ***********************************************************************/ CaptureResponse captureResponse = simpleCheckout.CaptureAction(authResponse, totalAmount); if (captureResponse == null) { throw new OffAmazonPaymentsServiceException("The response from Caputre Response request is null"); } /************************************************************************ * Wait for the notification from ipn.aspx page in a loop, then print the corresponding information ***********************************************************************/ lblNotification.Text += formatStringForDisplay(WaitAndGetNotificationDetails(captureResponse.CaptureResult.CaptureDetails.AmazonCaptureId + "_Capture")); /************************************************************************ * Invoke Get Capture Details Action ***********************************************************************/ if (simpleCheckout.GetCaptureDetails(captureResponse) == null) { throw new OffAmazonPaymentsServiceException("The response from GetCaputreDetails Response request is null"); } /************************************************************************ * Invoke Close Order Reference Action ***********************************************************************/ if (simpleCheckout.CloseOrderReference() == null) { throw new OffAmazonPaymentsServiceException("The response from CloseOrderReference Response request is null"); } /************************************************************************ * Wait for the notification from ipn.aspx page in a loop, then print the corresponding information ***********************************************************************/ lblNotification.Text += formatStringForDisplay(WaitAndGetNotificationDetails(orderReferenceId + "_OrderReference")); }
private static void RunSample(string orderReferenceId, double orderAmount, int shippingOption, int authorizationOption, OffAmazonPaymentsServiceSimpleCheckout simpleCheckout) { /************************************************************************ * Invoke Get Order Reference Details Action ***********************************************************************/ GetOrderReferenceDetailsResponse getOrderDetails = simpleCheckout.GetOrderReferenceDetails(); if (getOrderDetails == null) { throw new OffAmazonPaymentsServiceException("The response from GetOrderReference request is null"); } /************************************************************************ * Add the tax and shipping rates here * Get the rates by using the CountryCode and the StateOrRegionCode from the orderReferenceDetails ***********************************************************************/ Destination destination = getOrderDetails.GetOrderReferenceDetailsResult.OrderReferenceDetails.Destination; TaxAndShippingRates rates = new TaxAndShippingRates(destination); string totalAmount = rates.getTotalAmountWithTaxAndShipping(orderAmount, shippingOption).ToString("0.##"); Console.WriteLine("=========================Tax and Shipping Calculation========================"); Console.WriteLine("The tax and shipping rate will be calculated based on the CountryCode: " + destination.PhysicalDestination.CountryCode + " and the StateOrRegionCode: " + destination.PhysicalDestination.StateOrRegion); Console.WriteLine("The total amount is " + totalAmount); Console.WriteLine("============================================================================="); /************************************************************************ * Invoke Set Order Reference Details Action ***********************************************************************/ SetOrderReferenceDetailsResponse setOrderDetailsResponse = simpleCheckout.SetOrderReferenceDetails(totalAmount); if (setOrderDetailsResponse == null) { throw new OffAmazonPaymentsServiceException("The response from SetOrderReference request is null"); } Console.WriteLine("============================================================================="); /************************************************************************ * Invoke Confirm Order Reference Action ***********************************************************************/ if (simpleCheckout.ConfirmOrderReferenceObject() == null) { throw new OffAmazonPaymentsServiceException("The response from ConfirmOrderResponse request is null"); } Console.WriteLine("============================================================================="); /************************************************************************ * Invoke Authorize Action ***********************************************************************/ AuthorizeResponse authResponse = simpleCheckout.AuthorizeAction(setOrderDetailsResponse, authorizationOption); if (authResponse == null) { throw new OffAmazonPaymentsServiceException("The response from Authorization request is null"); } Console.WriteLine("============================================================================="); /************************************************************************ * When Regular Asynchronous Authorization is used, the Authorization * State remains in pending and we need to wait for the state change. * Fast Authorization has a synchronous response and doesn't require this. ***********************************************************************/ if (authorizationOption == 1) { /************************************************************************ * Check the authorization status unitl it is not "PENDING" any more * GetAuthorizeDetails is contained in this method ***********************************************************************/ simpleCheckout.CheckAuthorizationStatus(authResponse); } /************************************************************************ * Invoke Capture Action ***********************************************************************/ CaptureResponse captureResponse = simpleCheckout.CaptureAction(authResponse, totalAmount); if (captureResponse == null) { throw new OffAmazonPaymentsServiceException("The response from Caputre request is null"); } Console.WriteLine("============================================================================="); /************************************************************************ * Invoke GetCaptureDetails Action ***********************************************************************/ if (simpleCheckout.GetCaptureDetails(captureResponse) == null) { throw new OffAmazonPaymentsServiceException("The response from GetCaputreDetails request is null"); } Console.WriteLine("============================================================================="); /************************************************************************ * Invoke CloseOrderReference Action ***********************************************************************/ if (simpleCheckout.CloseOrderReference() == null) { throw new OffAmazonPaymentsServiceException("The response from CloseOrderReference request is null"); } }