Uncaught ошибка в решении размещенных полей Braintree - PullRequest
0 голосов
/ 14 ноября 2018

Я внедряю Braintree-решение на хостинге и очень точно следую документации. И документация довольно крутая, я должен сказать. Тем не менее, при загрузке клиента я получаю необработанную ссылку. Ошибка появляется на клиентском токене. Даже если он установлен, я получаю неперехваченную ошибку ссылки.

Вот конец бритвенной страницы, где возникает проблема:

     var form = document.querySelector('#my-sample-form');
     var submit = document.querySelector('input[type="submit"]');
     var clientToken = @ViewBag.ClientToken;

        braintree.client.create({
            authorization: clientToken
        }, function (err, clientInstance) {
            if (err) {
                console.error(err);
                return;
            }

Вот методы в контроллере (хотя я думаю, что это не то, что порождает проблему). Перенаправлено с пост-метода, который собирает платежную информацию:

            return RedirectToAction(nameof(Pay));

        }
        else
        {
            return View(order);
        }
    }

    public ActionResult Pay()
    {
        var gateway = GetGetAway();
        string clientToken = gateway.ClientToken.Generate();
        ViewBag.ClientToken = clientToken;

        return View(); 
    }


    public BraintreeGateway GetGetAway()
    {
        return new BraintreeGateway
        {
            Environment = Braintree.Environment.SANDBOX,
            MerchantId = "xxxxxxx",
            PublicKey = "xxxxxxxx",
            PrivateKey = "xxxxxxxxxx"
    };
    }


    [HttpPost]
    public ActionResult CreatePurchase()
    {

            var gateway = config.GetGateway();


            var request = new TransactionRequest
            {
                Amount = 15,
                PaymentMethodNonce = Request.Query["payment_method_nonce"],
                Options = new TransactionOptionsRequest
                {
                    SubmitForSettlement = true
                }
            };


            Result<Transaction> result = gateway.Transaction.Sale(request);
            if (result.IsSuccess())
            {
                Transaction transaction = result.Target;
                return View("Completed");
            }
            else 
            {
                return RedirectToAction("Unsuccessful");
            }

    }
...