コード例 #1
0
        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 }
            });
        }
コード例 #2
0
        // 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()));
        }