public static GetRefundDetailsResponse CheckRefundStatus(string amazonRefundId, IOffAmazonPaymentsService service, OffAmazonPaymentsServicePropertyCollection propertiesCollection) { //used to check if the refund is time-out TimeSpan startTime = DateTime.Now.TimeOfDay; GetRefundDetailsRequest refundDetailRequest = new GetRefundDetailsRequest(); refundDetailRequest.SellerId = propertiesCollection.MerchantID; refundDetailRequest.AmazonRefundId = amazonRefundId; GetRefundDetailsResponse getRefundDetailsResponse = GetRefundDetailsSample.InvokeGetRefundDetails(service, refundDetailRequest); while (getRefundDetailsResponse.IsSetGetRefundDetailsResult() && getRefundDetailsResponse.GetRefundDetailsResult.RefundDetails.RefundStatus.State.Equals(PaymentStatus.PENDING)) { if (DateTime.Now.TimeOfDay.Milliseconds - startTime.Milliseconds > 60000) { throw new OffAmazonPaymentsServiceException("The refund has timed-out."); } System.Threading.Thread.Sleep(8000); Console.WriteLine("Waiting until the Refund Status changes from PENDING"); getRefundDetailsResponse = GetRefundDetailsSample.InvokeGetRefundDetails(service, refundDetailRequest); } return(getRefundDetailsResponse); }
public static GetRefundDetailsResponse GetRefundDetails(IOffAmazonPaymentsService service, OffAmazonPaymentsServicePropertyCollection propertiesCollection, string amazonRefundId) { GetRefundDetailsRequest request = new GetRefundDetailsRequest(); request.SellerId = propertiesCollection.MerchantID; request.AmazonRefundId = amazonRefundId; return(GetRefundDetailsSample.InvokeGetRefundDetails(service, request)); }
public static GetRefundDetailsResponse CheckRefundStatus(string amazonRefundId, IOffAmazonPaymentsService service, OffAmazonPaymentsServicePropertyCollection propertiesCollection) { //used to check if the refund is time-out TimeSpan startTime = DateTime.Now.TimeOfDay; GetRefundDetailsRequest refundDetailRequest = new GetRefundDetailsRequest(); refundDetailRequest.SellerId = propertiesCollection.MerchantID; refundDetailRequest.AmazonRefundId = amazonRefundId; GetRefundDetailsResponse getRefundDetailsResponse = GetRefundDetailsSample.InvokeGetRefundDetails(service, refundDetailRequest); while (getRefundDetailsResponse.IsSetGetRefundDetailsResult() && getRefundDetailsResponse.GetRefundDetailsResult.RefundDetails.RefundStatus.State.Equals(PaymentStatus.PENDING)) { if (DateTime.Now.TimeOfDay.Milliseconds - startTime.Milliseconds > 60000) throw new OffAmazonPaymentsServiceException("The refund has timed-out."); System.Threading.Thread.Sleep(8000); Console.WriteLine("Waiting until the Refund Status changes from PENDING"); getRefundDetailsResponse = GetRefundDetailsSample.InvokeGetRefundDetails(service, refundDetailRequest); } return getRefundDetailsResponse; }
public RefundDetails GetRefundDetails(AmazonPayClient client, string refundId, out AmazonPayApiData data) { data = new AmazonPayApiData(); RefundDetails details = null; var request = new GetRefundDetailsRequest(); request.SellerId = client.Settings.SellerId; request.AmazonRefundId = refundId; var response = client.Service.GetRefundDetails(request); if (response != null && response.IsSetGetRefundDetailsResult()) { var result = response.GetRefundDetailsResult; if (result != null && result.IsSetRefundDetails()) { details = result.RefundDetails; } } try { data.MessageType = "GetRefundDetails"; if (response.IsSetResponseMetadata() && response.ResponseMetadata.IsSetRequestId()) { data.MessageId = response.ResponseMetadata.RequestId; } if (details != null) { if (details.IsSetAmazonRefundId()) { data.RefundId = details.AmazonRefundId; } if (details.IsSetRefundReferenceId()) { data.ReferenceId = details.RefundReferenceId; } if (details.IsSetFeeRefunded()) { data.Fee = new AmazonPayApiPrice(details.FeeRefunded.Amount, details.FeeRefunded.CurrencyCode); } if (details.IsSetRefundAmount()) { data.RefundedAmount = new AmazonPayApiPrice(details.RefundAmount.Amount, details.RefundAmount.CurrencyCode); } if (details.IsSetCreationTimestamp()) { data.Creation = details.CreationTimestamp; } if (details.IsSetRefundStatus()) { data.ReasonCode = details.RefundStatus.ReasonCode; data.ReasonDescription = details.RefundStatus.ReasonDescription; data.State = details.RefundStatus.State.ToString(); data.StateLastUpdate = details.RefundStatus.LastUpdateTimestamp; } } } catch (Exception exc) { exc.Dump(); } return(details); }
public RefundDetails GetRefundDetails(AmazonPayClient client, string refundId, out AmazonPayApiData data) { data = new AmazonPayApiData(); RefundDetails details = null; var request = new GetRefundDetailsRequest(); request.SellerId = client.Settings.SellerId; request.AmazonRefundId = refundId; var response = client.Service.GetRefundDetails(request); if (response != null && response.IsSetGetRefundDetailsResult()) { var result = response.GetRefundDetailsResult; if (result != null && result.IsSetRefundDetails()) details = result.RefundDetails; } try { data.MessageType = "GetRefundDetails"; if (response.IsSetResponseMetadata() && response.ResponseMetadata.IsSetRequestId()) data.MessageId = response.ResponseMetadata.RequestId; if (details != null) { if (details.IsSetAmazonRefundId()) data.RefundId = details.AmazonRefundId; if (details.IsSetRefundReferenceId()) data.ReferenceId = details.RefundReferenceId; if (details.IsSetFeeRefunded()) data.Fee = new AmazonPayApiPrice(details.FeeRefunded.Amount, details.FeeRefunded.CurrencyCode); if (details.IsSetRefundAmount()) data.RefundedAmount = new AmazonPayApiPrice(details.RefundAmount.Amount, details.RefundAmount.CurrencyCode); if (details.IsSetCreationTimestamp()) data.Creation = details.CreationTimestamp; if (details.IsSetRefundStatus()) { data.ReasonCode = details.RefundStatus.ReasonCode; data.ReasonDescription = details.RefundStatus.ReasonDescription; data.State = details.RefundStatus.State.ToString(); data.StateLastUpdate = details.RefundStatus.LastUpdateTimestamp; } } } catch (Exception exc) { exc.Dump(); } return details; }
public static GetRefundDetailsResponse InvokeGetRefundDetails(IOffAmazonPaymentsService service, GetRefundDetailsRequest request) { GetRefundDetailsResponse response = null; try { response = service.GetRefundDetails(request); Console.WriteLine("Service Response"); Console.WriteLine("============================================================================="); Console.WriteLine(); Console.WriteLine(" GetRefundDetailsResponse"); if (response.IsSetGetRefundDetailsResult()) { Console.WriteLine(" GetRefundDetailsResult"); GetRefundDetailsResult getRefundDetailsResult = response.GetRefundDetailsResult; if (getRefundDetailsResult.IsSetRefundDetails()) { Console.WriteLine(" RefundDetails"); RefundDetails refundDetails = getRefundDetailsResult.RefundDetails; if (refundDetails.IsSetAmazonRefundId()) { Console.WriteLine(" AmazonRefundId"); Console.WriteLine(" {0}", refundDetails.AmazonRefundId); } if (refundDetails.IsSetRefundReferenceId()) { Console.WriteLine(" RefundReferenceId"); Console.WriteLine(" {0}", refundDetails.RefundReferenceId); } if (refundDetails.IsSetSellerRefundNote()) { Console.WriteLine(" SellerRefundNote"); Console.WriteLine(" {0}", refundDetails.SellerRefundNote); } if (refundDetails.IsSetRefundType()) { Console.WriteLine(" RefundType"); Console.WriteLine(" {0}", refundDetails.RefundType); } if (refundDetails.IsSetFeeRefunded()) { Console.WriteLine(" FeeRefunded"); Price feeRefunded = refundDetails.FeeRefunded; if (feeRefunded.IsSetAmount()) { Console.WriteLine(" Amount"); Console.WriteLine(" {0}", feeRefunded.Amount); } if (feeRefunded.IsSetCurrencyCode()) { Console.WriteLine(" CurrencyCode"); Console.WriteLine(" {0}", feeRefunded.CurrencyCode); } } if (refundDetails.IsSetCreationTimestamp()) { Console.WriteLine(" CreationTimestamp"); Console.WriteLine(" {0}", refundDetails.CreationTimestamp); } if (refundDetails.IsSetRefundStatus()) { Console.WriteLine(" RefundStatus"); Status refundStatus = refundDetails.RefundStatus; if (refundStatus.IsSetState()) { Console.WriteLine(" State"); Console.WriteLine(" {0}", refundStatus.State); } if (refundStatus.IsSetLastUpdateTimestamp()) { Console.WriteLine(" LastUpdateTimestamp"); Console.WriteLine(" {0}", refundStatus.LastUpdateTimestamp); } if (refundStatus.IsSetReasonCode()) { Console.WriteLine(" ReasonCode"); Console.WriteLine(" {0}", refundStatus.ReasonCode); } if (refundStatus.IsSetReasonDescription()) { Console.WriteLine(" ReasonDescription"); Console.WriteLine(" {0}", refundStatus.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); }