public ActionResult OrderReferenceCreated(string orderReferenceId /*, string accessToken*/) { var success = false; var error = string.Empty; try { var state = _httpContext.GetAmazonPayState(Services.Localization); state.OrderReferenceId = orderReferenceId; //if (accessToken.HasValue()) //{ // state.AccessToken = accessToken; //} if (state.OrderReferenceId.IsEmpty()) { success = false; error = T("Plugins.Payments.AmazonPay.MissingOrderReferenceId"); } if (state.AccessToken.IsEmpty()) { success = false; error = error.Grow(T("Plugins.Payments.AmazonPay.MissingAddressConsentToken"), " "); } } catch (Exception ex) { error = ex.Message; } return(new JsonResult { Data = new { success = success, error = error } }); }
// For payment simulation in sandbox mode. Admin and sandbox only. public ActionResult SetSellerNote(string paymentState) { var customer = Services.WorkContext.CurrentCustomer; if (!customer.IsAdmin()) { return(HttpNotFound()); } var store = Services.StoreContext.CurrentStore; var settings = Services.Settings.LoadSetting <AmazonPaySettings>(store.Id); if (!settings.UseSandbox) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Endpoint is for testing purposes and only available in sandbox mode.")); } var state = _httpContext.GetAmazonPayState(Services.Localization); var sellerNote = string.Empty; // Reset payment state. // See https://pay.amazon.com/de/developer/documentation/lpwa/201956480 if (paymentState.IsCaseInsensitiveEqual("PaymentMethodNotAllowed")) { sellerNote = "{\"SandboxSimulation\":{\"Constraint\":\"PaymentMethodNotAllowed\"}}"; } else if (paymentState.IsCaseInsensitiveEqual("Success")) { sellerNote = "{\"SandboxSimulation\":{\"PaymentAuthenticationStatus\":{\"State\":\"Success\"}}}"; } else if (paymentState.IsCaseInsensitiveEqual("Failure")) { sellerNote = "{\"SandboxSimulation\":{\"PaymentAuthenticationStatus\":{\"State\":\"Failure\"}}}"; } else if (paymentState.IsCaseInsensitiveEqual("Abandoned")) { sellerNote = "{\"SandboxSimulation\":{\"PaymentAuthenticationStatus\":{\"State\":\"Abandoned\"}}}"; } var result = _apiService.SetOrderReferenceDetails(null, settings, state, sellerNote, out var errorMesage); var sb = new StringBuilder(); sb.Append(result ? "ok. " : "failure. "); sb.AppendLine(sellerNote); sb.AppendLine(errorMesage.EmptyNull()); return(Content(sb.ToString())); }