public static GetOrderReferenceDetailsResponse GetOrderReferenceDetails(OffAmazonPaymentsServicePropertyCollection propertiesCollection, IOffAmazonPaymentsService service, string orderReferenceId, string addressConsentToken, TextWriter buffer) { GetOrderReferenceDetailsResponse response = InvokeGetOrderReferenceDetails(propertiesCollection, service, orderReferenceId, addressConsentToken); printOrderReferenceDetailsResponseToBuffer(response, buffer); return(response); }
private static GetOrderReferenceDetailsResponse InvokeGetOrderReferenceDetails(OffAmazonPaymentsServicePropertyCollection propertiesCollection, IOffAmazonPaymentsService service, string orderReferenceId, string addressConsentToken) { GetOrderReferenceDetailsRequest getOrderRequest = new GetOrderReferenceDetailsRequest(); getOrderRequest.SellerId = propertiesCollection.MerchantID; getOrderRequest.AmazonOrderReferenceId = orderReferenceId; getOrderRequest.AddressConsentToken = addressConsentToken; GetOrderReferenceDetailsResponse response = service.GetOrderReferenceDetails(getOrderRequest); return(response); }
private void RunSampleMultiShipments(string orderAmount, OffAmazonPaymentsServiceMultipleShipment instance) { /************************************************************************ * Invoke Get Order Reference Details Action ***********************************************************************/ GetOrderReferenceDetailsResponse getOrderDetails = instance.GetOrderReferenceDetails(); if (getOrderDetails == null) { throw new OffAmazonPaymentsServiceException("The response from GetOrderReference request is null"); } Address address = getOrderDetails.GetOrderReferenceDetailsResult.OrderReferenceDetails.Destination.PhysicalDestination; lblShipping.Text = "The shipping address is: " + address.City + "<br>" + address.StateOrRegion + "<br>" + address.PostalCode + "<br>"; /************************************************************************ * Invoke Set Order Reference Details Action ***********************************************************************/ SetOrderReferenceDetailsResponse setOrderDetailsResponse = instance.SetOrderReferenceDetails(orderAmount); if (setOrderDetailsResponse == null) { throw new OffAmazonPaymentsServiceException("The response from SetOrderReference request is null"); } /************************************************************************ * Invoke Confirm Order Reference Action ***********************************************************************/ if (instance.ConfirmOrderReferenceObject() == null) { throw new OffAmazonPaymentsServiceException("The response from ConfirmOrderResponse request is null"); } //iterate the authoriztion amount in the authList for (int i = 0; i < numberOfShipment; i++) { String eachOrderAmount = amountEachShip[i].ToString(); /************************************************************************ * Invoke Authorize Action ***********************************************************************/ AuthorizeResponse authResponse = instance.AuthorizeAction(eachOrderAmount, indicator); 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 += WaitAndGetNotificationDetails(authResponse.AuthorizeResult.AuthorizationDetails.AmazonAuthorizationId + "_Authorize"); instance.CheckAuthorizationStatus(authResponse); /************************************************************************ * Invoke Capture Action ***********************************************************************/ CaptureResponse captureResponse = instance.CaptureAction(authResponse, eachOrderAmount, indicator); if (captureResponse == null) { throw new OffAmazonPaymentsServiceException("The response from Caputre Response request is null"); } lblNotification.Text += WaitAndGetNotificationDetails(captureResponse.CaptureResult.CaptureDetails.AmazonCaptureId + "_Capture"); /************************************************************************ * Invoke Get Capture Details Action ***********************************************************************/ if (instance.GetCaptureDetails(captureResponse) == null) { throw new OffAmazonPaymentsServiceException("The response from GetCaputreDetails Response request is null"); } indicator++; } /************************************************************************ * Invoke Close Order Reference Action ***********************************************************************/ if (instance.CloseOrderReference() == null) { throw new OffAmazonPaymentsServiceException("The response from CloseOrderReference Response request is null"); } lblNotification.Text += WaitAndGetNotificationDetails(orderReferenceId + "_OrderReference"); }
private static void RunSampleMultiShipments(string orderReferenceId, string orderAmount, OffAmazonPaymentsServiceMultipleShipment instance) { /************************************************************************ * Invoke Get Order Reference Details Action ***********************************************************************/ GetOrderReferenceDetailsResponse getOrderDetails = instance.GetOrderReferenceDetails(); if (getOrderDetails == null) { throw new OffAmazonPaymentsServiceException("The response from GetOrderReference request is null"); } Console.WriteLine("======================================================="); /************************************************************************ * Invoke Set Order Reference Details Action ***********************************************************************/ SetOrderReferenceDetailsResponse setOrderDetailsResponse = instance.SetOrderReferenceDetails(orderAmount); if (setOrderDetailsResponse == null) { throw new OffAmazonPaymentsServiceException("The response from SetOrderReference request is null"); } Console.WriteLine("======================================================="); /************************************************************************ * Invoke Confirm Order Reference Action ***********************************************************************/ if (instance.ConfirmOrderReferenceObject() == null) { throw new OffAmazonPaymentsServiceException("The response from ConfirmOrderResponse request is null"); } Console.WriteLine("======================================================="); Console.WriteLine("==========================================="); Console.WriteLine("Here is the demo of one capture per authorization."); Console.WriteLine("==========================================="); Console.WriteLine(); IDictionary <string, OrderItem> orderList = instance.OrderList; Console.WriteLine("Current orders are listed as below: "); instance.ShowCurrentOrders(); System.Threading.Thread.Sleep(3000); //iterate the authoriztion amount in the authList foreach (string item in orderList.Keys) { String eachOrderAmount = (orderList[item].Price * orderList[item].Number).ToString(); /************************************************************************ * Invoke Authorize Action ***********************************************************************/ AuthorizeResponse authResponse = instance.AuthorizeAction(eachOrderAmount, indicator); if (authResponse == null) { throw new OffAmazonPaymentsServiceException("The response from Authorization Response request is null"); } Console.WriteLine("======================================================="); /************************************************************************ * Check the authorization status unitl it is not "PENDING" any more * GetAuthorizeDetails is contained in this method ***********************************************************************/ instance.CheckAuthorizationStatus(authResponse); /************************************************************************ * Invoke Capture Action ***********************************************************************/ CaptureResponse captureResponse = instance.CaptureAction(authResponse, eachOrderAmount, indicator); if (captureResponse == null) { throw new OffAmazonPaymentsServiceException("The response from Caputre Response request is null"); } Console.WriteLine("======================================================="); /************************************************************************ * Invoke GetCaptureDetails Action ***********************************************************************/ if (instance.GetCaptureDetails(captureResponse) == null) { throw new OffAmazonPaymentsServiceException("The response from GetCaputreDetails Response request is null"); } Console.WriteLine("======================================================="); indicator++; } /************************************************************************ * Invoke CloseOrderReference Action ***********************************************************************/ if (instance.CloseOrderReference() == null) { throw new OffAmazonPaymentsServiceException("The response from CloseOrderReference Response request is null"); } }
private void RunSample(OffAmazonPaymentsServiceProviderCheckout providerCheckout, string orderReferenceId, string orderAmount, int shippingOption, int authorizationOption, string providerId, string creditAmount) { /************************************************************************ * Invoke Get Order Reference Details Action ***********************************************************************/ GetOrderReferenceDetailsResponse getOrderDetails = providerCheckout.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 = providerCheckout.SetOrderReferenceDetails(totalAmount); if (setOrderDetailsResponse == null) { throw new OffAmazonPaymentsServiceException("The response from SetOrderReference request is null"); } /************************************************************************ * Invoke Confirm Order Reference Action ***********************************************************************/ if (providerCheckout.ConfirmOrderReferenceObject() == null) { throw new OffAmazonPaymentsServiceException("The response from ConfirmOrderResponse request is null"); } /************************************************************************ * Invoke Authorize Action ***********************************************************************/ AuthorizeResponse authResponse = providerCheckout.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 = providerCheckout.CheckAuthorizationStatus(authResponse); /************************************************************************ * On an IPN callback, call GetAuthorizationDetails 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 = providerCheckout.CaptureActionWithProviderCredit(authResponse, totalAmount, providerId, creditAmount); 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 ***********************************************************************/ GetCaptureDetailsResponse getCaptureDetailsResponse = providerCheckout.GetCaptureDetails(captureResponse); if (getCaptureDetailsResponse == null) { throw new OffAmazonPaymentsServiceException("The response from GetCaputreDetails Response request is null"); } /************************************************************************ * Invoke GetProviderCreditDetails Action ***********************************************************************/ if (!String.IsNullOrEmpty(providerId) && !String.IsNullOrEmpty(creditAmount)) { /************************************************************************ * Wait till the the ProviderCreditSummaryList is available in the GetCaptureDetailsResponse ***********************************************************************/ OffAmazonPaymentsService.Model.ProviderCreditSummaryList providerCreditSummaryList = providerCheckout.CheckCaptureForProviderCreditSummaryList(captureResponse); foreach (OffAmazonPaymentsService.Model.ProviderCreditSummary providerCreditSummary in providerCreditSummaryList.member) { /************************************************************************ * Wait for the notification from ipn.aspx page in a loop, then print the corresponding information ***********************************************************************/ lblNotification.Text += formatStringForDisplay(WaitAndGetNotificationDetails(providerCreditSummary.ProviderCreditId + "_ProviderCredit")); GetProviderCreditDetailsResponse getProviderCreditDetailsResponse = providerCheckout.GetProviderCreditDetails(providerCreditSummary); if (getProviderCreditDetailsResponse == null) { throw new OffAmazonPaymentsServiceException("The response from GetProviderCreditDetails request is null for ProviderCreditId:" + providerCreditSummary.ProviderCreditId); } } } /************************************************************************ * Invoke CloseOrderReference Action ***********************************************************************/ if (providerCheckout.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 printOrderReferenceDetailsResponseToBuffer(GetOrderReferenceDetailsResponse response, TextWriter outputBuffer) { outputBuffer.WriteLine("Service Response"); outputBuffer.WriteLine("============================================================================="); outputBuffer.WriteLine(); outputBuffer.WriteLine(" GetOrderReferenceDetailsResponse"); if (response.IsSetGetOrderReferenceDetailsResult()) { outputBuffer.WriteLine(" GetOrderReferenceDetailsResult"); GetOrderReferenceDetailsResult getOrderReferenceDetailsResult = response.GetOrderReferenceDetailsResult; if (getOrderReferenceDetailsResult.IsSetOrderReferenceDetails()) { outputBuffer.WriteLine(" OrderReferenceDetails"); OrderReferenceDetails orderReferenceDetails = getOrderReferenceDetailsResult.OrderReferenceDetails; if (orderReferenceDetails.IsSetAmazonOrderReferenceId()) { outputBuffer.WriteLine(" AmazonOrderReferenceId"); outputBuffer.WriteLine(" {0}", orderReferenceDetails.AmazonOrderReferenceId); } if (orderReferenceDetails.IsSetBuyer()) { outputBuffer.WriteLine(" Buyer"); Buyer buyer = orderReferenceDetails.Buyer; if (buyer.IsSetName()) { outputBuffer.WriteLine(" Name"); outputBuffer.WriteLine(" {0}", buyer.Name); } if (buyer.IsSetEmail()) { outputBuffer.WriteLine(" Email"); outputBuffer.WriteLine(" {0}", buyer.Email); } if (buyer.IsSetPhone()) { outputBuffer.WriteLine(" Phone"); outputBuffer.WriteLine(" {0}", buyer.Phone); } } if (orderReferenceDetails.IsSetOrderTotal()) { outputBuffer.WriteLine(" OrderTotal"); OrderTotal orderTotal = orderReferenceDetails.OrderTotal; if (orderTotal.IsSetCurrencyCode()) { outputBuffer.WriteLine(" CurrencyCode"); outputBuffer.WriteLine(" {0}", orderTotal.CurrencyCode); } if (orderTotal.IsSetAmount()) { outputBuffer.WriteLine(" Amount"); outputBuffer.WriteLine(" {0}", orderTotal.Amount); } } if (orderReferenceDetails.IsSetSellerNote()) { outputBuffer.WriteLine(" SellerNote"); outputBuffer.WriteLine(" {0}", orderReferenceDetails.SellerNote); } if (orderReferenceDetails.IsSetPlatformId()) { outputBuffer.WriteLine(" PlatformId"); outputBuffer.WriteLine(" {0}", orderReferenceDetails.PlatformId); } if (orderReferenceDetails.IsSetDestination()) { outputBuffer.WriteLine(" Destination"); Destination destination = orderReferenceDetails.Destination; if (destination.IsSetDestinationType()) { outputBuffer.WriteLine(" DestinationType"); outputBuffer.WriteLine(" {0}", destination.DestinationType); } if (destination.IsSetPhysicalDestination()) { outputBuffer.WriteLine(" PhysicalDestination"); Address physicalDestination = destination.PhysicalDestination; if (physicalDestination.IsSetName()) { outputBuffer.WriteLine(" Name"); outputBuffer.WriteLine(" {0}", physicalDestination.Name); } if (physicalDestination.IsSetAddressLine1()) { outputBuffer.WriteLine(" AddressLine1"); outputBuffer.WriteLine(" {0}", physicalDestination.AddressLine1); } if (physicalDestination.IsSetAddressLine2()) { outputBuffer.WriteLine(" AddressLine2"); outputBuffer.WriteLine(" {0}", physicalDestination.AddressLine2); } if (physicalDestination.IsSetAddressLine3()) { outputBuffer.WriteLine(" AddressLine3"); outputBuffer.WriteLine(" {0}", physicalDestination.AddressLine3); } if (physicalDestination.IsSetCity()) { outputBuffer.WriteLine(" City"); outputBuffer.WriteLine(" {0}", physicalDestination.City); } if (physicalDestination.IsSetCounty()) { outputBuffer.WriteLine(" County"); outputBuffer.WriteLine(" {0}", physicalDestination.County); } if (physicalDestination.IsSetDistrict()) { outputBuffer.WriteLine(" District"); outputBuffer.WriteLine(" {0}", physicalDestination.District); } if (physicalDestination.IsSetStateOrRegion()) { outputBuffer.WriteLine(" StateOrRegion"); outputBuffer.WriteLine(" {0}", physicalDestination.StateOrRegion); } if (physicalDestination.IsSetPostalCode()) { outputBuffer.WriteLine(" PostalCode"); outputBuffer.WriteLine(" {0}", physicalDestination.PostalCode); } if (physicalDestination.IsSetCountryCode()) { outputBuffer.WriteLine(" CountryCode"); outputBuffer.WriteLine(" {0}", physicalDestination.CountryCode); } if (physicalDestination.IsSetPhone()) { outputBuffer.WriteLine(" Phone"); outputBuffer.WriteLine(" {0}", physicalDestination.Phone); } } } if (orderReferenceDetails.IsSetBillingAddress()) { outputBuffer.WriteLine(" BillingAddress"); BillingAddress billingAddress = orderReferenceDetails.BillingAddress; if (billingAddress.IsSetAddressType()) { outputBuffer.WriteLine(" AddressType"); outputBuffer.WriteLine(" {0}", billingAddress.AddressType); } if (billingAddress.IsSetPhysicalAddress()) { outputBuffer.WriteLine(" PhysicalAddress"); Address physicalAddress = billingAddress.PhysicalAddress; if (physicalAddress.IsSetName()) { outputBuffer.WriteLine(" Name"); outputBuffer.WriteLine(" {0}", physicalAddress.Name); } if (physicalAddress.IsSetAddressLine1()) { outputBuffer.WriteLine(" AddressLine1"); outputBuffer.WriteLine(" {0}", physicalAddress.AddressLine1); } if (physicalAddress.IsSetAddressLine2()) { outputBuffer.WriteLine(" AddressLine2"); outputBuffer.WriteLine(" {0}", physicalAddress.AddressLine2); } if (physicalAddress.IsSetAddressLine3()) { outputBuffer.WriteLine(" AddressLine3"); outputBuffer.WriteLine(" {0}", physicalAddress.AddressLine3); } if (physicalAddress.IsSetCity()) { outputBuffer.WriteLine(" City"); outputBuffer.WriteLine(" {0}", physicalAddress.City); } if (physicalAddress.IsSetCounty()) { outputBuffer.WriteLine(" County"); outputBuffer.WriteLine(" {0}", physicalAddress.County); } if (physicalAddress.IsSetDistrict()) { outputBuffer.WriteLine(" District"); outputBuffer.WriteLine(" {0}", physicalAddress.District); } if (physicalAddress.IsSetStateOrRegion()) { outputBuffer.WriteLine(" StateOrRegion"); outputBuffer.WriteLine(" {0}", physicalAddress.StateOrRegion); } if (physicalAddress.IsSetPostalCode()) { outputBuffer.WriteLine(" PostalCode"); outputBuffer.WriteLine(" {0}", physicalAddress.PostalCode); } if (physicalAddress.IsSetCountryCode()) { outputBuffer.WriteLine(" CountryCode"); outputBuffer.WriteLine(" {0}", physicalAddress.CountryCode); } if (physicalAddress.IsSetPhone()) { outputBuffer.WriteLine(" Phone"); outputBuffer.WriteLine(" {0}", physicalAddress.Phone); } } } if (orderReferenceDetails.IsSetReleaseEnvironment()) { outputBuffer.WriteLine(" ReleaseEnvironment"); outputBuffer.WriteLine(" {0}", orderReferenceDetails.ReleaseEnvironment); } if (orderReferenceDetails.IsSetSellerOrderAttributes()) { outputBuffer.WriteLine(" SellerOrderAttributes"); SellerOrderAttributes sellerOrderAttributes = orderReferenceDetails.SellerOrderAttributes; if (sellerOrderAttributes.IsSetSellerOrderId()) { outputBuffer.WriteLine(" SellerOrderId"); outputBuffer.WriteLine(" {0}", sellerOrderAttributes.SellerOrderId); } if (sellerOrderAttributes.IsSetStoreName()) { outputBuffer.WriteLine(" StoreName"); outputBuffer.WriteLine(" {0}", sellerOrderAttributes.StoreName); } if (sellerOrderAttributes.IsSetOrderItemCategories()) { outputBuffer.WriteLine(" OrderItemCategories"); OrderItemCategories orderItemCategories = sellerOrderAttributes.OrderItemCategories; List<String> orderItemCategoryList = orderItemCategories.OrderItemCategory; foreach (String orderItemCategory in orderItemCategoryList) { outputBuffer.WriteLine(" OrderItemCategory"); outputBuffer.WriteLine(" {0}", orderItemCategory); } } if (sellerOrderAttributes.IsSetCustomInformation()) { outputBuffer.WriteLine(" CustomInformation"); outputBuffer.WriteLine(" {0}", sellerOrderAttributes.CustomInformation); } } if (orderReferenceDetails.IsSetOrderReferenceStatus()) { outputBuffer.WriteLine(" OrderReferenceStatus"); OrderReferenceStatus orderReferenceStatus = orderReferenceDetails.OrderReferenceStatus; if (orderReferenceStatus.IsSetState()) { outputBuffer.WriteLine(" State"); outputBuffer.WriteLine(" {0}", orderReferenceStatus.State); } if (orderReferenceStatus.IsSetLastUpdateTimestamp()) { outputBuffer.WriteLine(" LastUpdateTimestamp"); outputBuffer.WriteLine(" {0}", orderReferenceStatus.LastUpdateTimestamp); } if (orderReferenceStatus.IsSetReasonCode()) { outputBuffer.WriteLine(" ReasonCode"); outputBuffer.WriteLine(" {0}", orderReferenceStatus.ReasonCode); } if (orderReferenceStatus.IsSetReasonDescription()) { outputBuffer.WriteLine(" ReasonDescription"); outputBuffer.WriteLine(" {0}", orderReferenceStatus.ReasonDescription); } } if (orderReferenceDetails.IsSetConstraints()) { outputBuffer.WriteLine(" Constraints"); Constraints constraints = orderReferenceDetails.Constraints; List<Constraint> constraintList = constraints.Constraint; foreach (Constraint constraint in constraintList) { outputBuffer.WriteLine(" Constraint"); if (constraint.IsSetConstraintID()) { outputBuffer.WriteLine(" ConstraintID"); outputBuffer.WriteLine(" {0}", constraint.ConstraintID); } if (constraint.IsSetDescription()) { outputBuffer.WriteLine(" Description"); outputBuffer.WriteLine(" {0}", constraint.Description); } } } if (orderReferenceDetails.IsSetCreationTimestamp()) { outputBuffer.WriteLine(" CreationTimestamp"); outputBuffer.WriteLine(" {0}", orderReferenceDetails.CreationTimestamp); } if (orderReferenceDetails.IsSetExpirationTimestamp()) { outputBuffer.WriteLine(" ExpirationTimestamp"); outputBuffer.WriteLine(" {0}", orderReferenceDetails.ExpirationTimestamp); } if (orderReferenceDetails.IsSetIdList()) { outputBuffer.WriteLine(" IdList"); IdList idList = orderReferenceDetails.IdList; List<String> memberList = idList.member; foreach (String member in memberList) { outputBuffer.WriteLine(" member"); outputBuffer.WriteLine(" {0}", member); } } } } if (response.IsSetResponseMetadata()) { outputBuffer.WriteLine(" ResponseMetadata"); ResponseMetadata responseMetadata = response.ResponseMetadata; if (responseMetadata.IsSetRequestId()) { outputBuffer.WriteLine(" RequestId"); outputBuffer.WriteLine(" {0}", responseMetadata.RequestId); } } }
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"); } }
private static void printOrderReferenceDetailsResponseToBuffer(GetOrderReferenceDetailsResponse response, TextWriter outputBuffer) { outputBuffer.WriteLine("Service Response"); outputBuffer.WriteLine("============================================================================="); outputBuffer.WriteLine(); outputBuffer.WriteLine(" GetOrderReferenceDetailsResponse"); if (response.IsSetGetOrderReferenceDetailsResult()) { outputBuffer.WriteLine(" GetOrderReferenceDetailsResult"); GetOrderReferenceDetailsResult getOrderReferenceDetailsResult = response.GetOrderReferenceDetailsResult; if (getOrderReferenceDetailsResult.IsSetOrderReferenceDetails()) { outputBuffer.WriteLine(" OrderReferenceDetails"); OrderReferenceDetails orderReferenceDetails = getOrderReferenceDetailsResult.OrderReferenceDetails; if (orderReferenceDetails.IsSetAmazonOrderReferenceId()) { outputBuffer.WriteLine(" AmazonOrderReferenceId"); outputBuffer.WriteLine(" {0}", orderReferenceDetails.AmazonOrderReferenceId); } if (orderReferenceDetails.IsSetBuyer()) { outputBuffer.WriteLine(" Buyer"); Buyer buyer = orderReferenceDetails.Buyer; if (buyer.IsSetName()) { outputBuffer.WriteLine(" Name"); outputBuffer.WriteLine(" {0}", buyer.Name); } if (buyer.IsSetEmail()) { outputBuffer.WriteLine(" Email"); outputBuffer.WriteLine(" {0}", buyer.Email); } if (buyer.IsSetPhone()) { outputBuffer.WriteLine(" Phone"); outputBuffer.WriteLine(" {0}", buyer.Phone); } } if (orderReferenceDetails.IsSetOrderTotal()) { outputBuffer.WriteLine(" OrderTotal"); OrderTotal orderTotal = orderReferenceDetails.OrderTotal; if (orderTotal.IsSetCurrencyCode()) { outputBuffer.WriteLine(" CurrencyCode"); outputBuffer.WriteLine(" {0}", orderTotal.CurrencyCode); } if (orderTotal.IsSetAmount()) { outputBuffer.WriteLine(" Amount"); outputBuffer.WriteLine(" {0}", orderTotal.Amount); } } if (orderReferenceDetails.IsSetSellerNote()) { outputBuffer.WriteLine(" SellerNote"); outputBuffer.WriteLine(" {0}", orderReferenceDetails.SellerNote); } if (orderReferenceDetails.IsSetPlatformId()) { outputBuffer.WriteLine(" PlatformId"); outputBuffer.WriteLine(" {0}", orderReferenceDetails.PlatformId); } if (orderReferenceDetails.IsSetDestination()) { outputBuffer.WriteLine(" Destination"); Destination destination = orderReferenceDetails.Destination; if (destination.IsSetDestinationType()) { outputBuffer.WriteLine(" DestinationType"); outputBuffer.WriteLine(" {0}", destination.DestinationType); } if (destination.IsSetPhysicalDestination()) { outputBuffer.WriteLine(" PhysicalDestination"); Address physicalDestination = destination.PhysicalDestination; if (physicalDestination.IsSetName()) { outputBuffer.WriteLine(" Name"); outputBuffer.WriteLine(" {0}", physicalDestination.Name); } if (physicalDestination.IsSetAddressLine1()) { outputBuffer.WriteLine(" AddressLine1"); outputBuffer.WriteLine(" {0}", physicalDestination.AddressLine1); } if (physicalDestination.IsSetAddressLine2()) { outputBuffer.WriteLine(" AddressLine2"); outputBuffer.WriteLine(" {0}", physicalDestination.AddressLine2); } if (physicalDestination.IsSetAddressLine3()) { outputBuffer.WriteLine(" AddressLine3"); outputBuffer.WriteLine(" {0}", physicalDestination.AddressLine3); } if (physicalDestination.IsSetCity()) { outputBuffer.WriteLine(" City"); outputBuffer.WriteLine(" {0}", physicalDestination.City); } if (physicalDestination.IsSetCounty()) { outputBuffer.WriteLine(" County"); outputBuffer.WriteLine(" {0}", physicalDestination.County); } if (physicalDestination.IsSetDistrict()) { outputBuffer.WriteLine(" District"); outputBuffer.WriteLine(" {0}", physicalDestination.District); } if (physicalDestination.IsSetStateOrRegion()) { outputBuffer.WriteLine(" StateOrRegion"); outputBuffer.WriteLine(" {0}", physicalDestination.StateOrRegion); } if (physicalDestination.IsSetPostalCode()) { outputBuffer.WriteLine(" PostalCode"); outputBuffer.WriteLine(" {0}", physicalDestination.PostalCode); } if (physicalDestination.IsSetCountryCode()) { outputBuffer.WriteLine(" CountryCode"); outputBuffer.WriteLine(" {0}", physicalDestination.CountryCode); } if (physicalDestination.IsSetPhone()) { outputBuffer.WriteLine(" Phone"); outputBuffer.WriteLine(" {0}", physicalDestination.Phone); } } } if (orderReferenceDetails.IsSetBillingAddress()) { outputBuffer.WriteLine(" BillingAddress"); BillingAddress billingAddress = orderReferenceDetails.BillingAddress; if (billingAddress.IsSetAddressType()) { outputBuffer.WriteLine(" AddressType"); outputBuffer.WriteLine(" {0}", billingAddress.AddressType); } if (billingAddress.IsSetPhysicalAddress()) { outputBuffer.WriteLine(" PhysicalAddress"); Address physicalAddress = billingAddress.PhysicalAddress; if (physicalAddress.IsSetName()) { outputBuffer.WriteLine(" Name"); outputBuffer.WriteLine(" {0}", physicalAddress.Name); } if (physicalAddress.IsSetAddressLine1()) { outputBuffer.WriteLine(" AddressLine1"); outputBuffer.WriteLine(" {0}", physicalAddress.AddressLine1); } if (physicalAddress.IsSetAddressLine2()) { outputBuffer.WriteLine(" AddressLine2"); outputBuffer.WriteLine(" {0}", physicalAddress.AddressLine2); } if (physicalAddress.IsSetAddressLine3()) { outputBuffer.WriteLine(" AddressLine3"); outputBuffer.WriteLine(" {0}", physicalAddress.AddressLine3); } if (physicalAddress.IsSetCity()) { outputBuffer.WriteLine(" City"); outputBuffer.WriteLine(" {0}", physicalAddress.City); } if (physicalAddress.IsSetCounty()) { outputBuffer.WriteLine(" County"); outputBuffer.WriteLine(" {0}", physicalAddress.County); } if (physicalAddress.IsSetDistrict()) { outputBuffer.WriteLine(" District"); outputBuffer.WriteLine(" {0}", physicalAddress.District); } if (physicalAddress.IsSetStateOrRegion()) { outputBuffer.WriteLine(" StateOrRegion"); outputBuffer.WriteLine(" {0}", physicalAddress.StateOrRegion); } if (physicalAddress.IsSetPostalCode()) { outputBuffer.WriteLine(" PostalCode"); outputBuffer.WriteLine(" {0}", physicalAddress.PostalCode); } if (physicalAddress.IsSetCountryCode()) { outputBuffer.WriteLine(" CountryCode"); outputBuffer.WriteLine(" {0}", physicalAddress.CountryCode); } if (physicalAddress.IsSetPhone()) { outputBuffer.WriteLine(" Phone"); outputBuffer.WriteLine(" {0}", physicalAddress.Phone); } } } if (orderReferenceDetails.IsSetReleaseEnvironment()) { outputBuffer.WriteLine(" ReleaseEnvironment"); outputBuffer.WriteLine(" {0}", orderReferenceDetails.ReleaseEnvironment); } if (orderReferenceDetails.IsSetSellerOrderAttributes()) { outputBuffer.WriteLine(" SellerOrderAttributes"); SellerOrderAttributes sellerOrderAttributes = orderReferenceDetails.SellerOrderAttributes; if (sellerOrderAttributes.IsSetSellerOrderId()) { outputBuffer.WriteLine(" SellerOrderId"); outputBuffer.WriteLine(" {0}", sellerOrderAttributes.SellerOrderId); } if (sellerOrderAttributes.IsSetStoreName()) { outputBuffer.WriteLine(" StoreName"); outputBuffer.WriteLine(" {0}", sellerOrderAttributes.StoreName); } if (sellerOrderAttributes.IsSetOrderItemCategories()) { outputBuffer.WriteLine(" OrderItemCategories"); OrderItemCategories orderItemCategories = sellerOrderAttributes.OrderItemCategories; List <String> orderItemCategoryList = orderItemCategories.OrderItemCategory; foreach (String orderItemCategory in orderItemCategoryList) { outputBuffer.WriteLine(" OrderItemCategory"); outputBuffer.WriteLine(" {0}", orderItemCategory); } } if (sellerOrderAttributes.IsSetCustomInformation()) { outputBuffer.WriteLine(" CustomInformation"); outputBuffer.WriteLine(" {0}", sellerOrderAttributes.CustomInformation); } } if (orderReferenceDetails.IsSetOrderReferenceStatus()) { outputBuffer.WriteLine(" OrderReferenceStatus"); OrderReferenceStatus orderReferenceStatus = orderReferenceDetails.OrderReferenceStatus; if (orderReferenceStatus.IsSetState()) { outputBuffer.WriteLine(" State"); outputBuffer.WriteLine(" {0}", orderReferenceStatus.State); } if (orderReferenceStatus.IsSetLastUpdateTimestamp()) { outputBuffer.WriteLine(" LastUpdateTimestamp"); outputBuffer.WriteLine(" {0}", orderReferenceStatus.LastUpdateTimestamp); } if (orderReferenceStatus.IsSetReasonCode()) { outputBuffer.WriteLine(" ReasonCode"); outputBuffer.WriteLine(" {0}", orderReferenceStatus.ReasonCode); } if (orderReferenceStatus.IsSetReasonDescription()) { outputBuffer.WriteLine(" ReasonDescription"); outputBuffer.WriteLine(" {0}", orderReferenceStatus.ReasonDescription); } } if (orderReferenceDetails.IsSetConstraints()) { outputBuffer.WriteLine(" Constraints"); Constraints constraints = orderReferenceDetails.Constraints; List <Constraint> constraintList = constraints.Constraint; foreach (Constraint constraint in constraintList) { outputBuffer.WriteLine(" Constraint"); if (constraint.IsSetConstraintID()) { outputBuffer.WriteLine(" ConstraintID"); outputBuffer.WriteLine(" {0}", constraint.ConstraintID); } if (constraint.IsSetDescription()) { outputBuffer.WriteLine(" Description"); outputBuffer.WriteLine(" {0}", constraint.Description); } } } if (orderReferenceDetails.IsSetCreationTimestamp()) { outputBuffer.WriteLine(" CreationTimestamp"); outputBuffer.WriteLine(" {0}", orderReferenceDetails.CreationTimestamp); } if (orderReferenceDetails.IsSetExpirationTimestamp()) { outputBuffer.WriteLine(" ExpirationTimestamp"); outputBuffer.WriteLine(" {0}", orderReferenceDetails.ExpirationTimestamp); } if (orderReferenceDetails.IsSetIdList()) { outputBuffer.WriteLine(" IdList"); IdList idList = orderReferenceDetails.IdList; List <String> memberList = idList.member; foreach (String member in memberList) { outputBuffer.WriteLine(" member"); outputBuffer.WriteLine(" {0}", member); } } } } if (response.IsSetResponseMetadata()) { outputBuffer.WriteLine(" ResponseMetadata"); ResponseMetadata responseMetadata = response.ResponseMetadata; if (responseMetadata.IsSetRequestId()) { outputBuffer.WriteLine(" RequestId"); outputBuffer.WriteLine(" {0}", responseMetadata.RequestId); } } }