Компонент проверки Braintree PayPal выдает "e.client.getVersion не является функцией"

Я изо всех сил пытаюсь понять, что я делаю здесь не так:

 braintree.client.create({
     authorization: res.clientToken // this is the token, I know it is correct
 }, (err, client) => {
    if (err) { ... }
    braintree.paypalCheckout.create({ client }, (err, paypalInstance) => {
        if (...) { ... }
    })
 });

При звонке braintree.paypalCheckout.createошибка вызывается синхронно:

Uncaught TypeError: e.client.getVersion это не функция

Действительно, client У объекта нет такого метода. Я следовал коду с этой страницы и этой страницы (почти то же самое).

Как решить проблему? Компонент PayPal Checkout загружается и добавляется к braintree объект.

2 ответа

Решение

Полное раскрытие: я работаю в Braintree. Если у вас есть какие-либо дополнительные вопросы, не стесняйтесь обращаться в службу поддержки.

getVersion это метод client класс с версии 3.16.0 из braintree-web, Обновите версию braintree-web вы используете до 3.16.0+.

Я столкнулся с этим при попытке использовать vaultManager в сочетании с dropIn,

Сейчас я не собираюсь продолжать это, я просто играю. Похоже, мне придется полностью перейти на обычай - вот почему я хотел начать играть с vaultManager,

Во всяком случае у меня было это:

 braintree.dropin.create({....}, (err, instance) => {

       braintree.vaultManager.create({ client: instance }, (e, vmInstance) =>
       {
           vmInstance.fetchPaymentMethods((err, paymentMethods) => {

              alert(JSON.stringify(paymentMethods)); 
           });
       });
 });

Оказывается instance это не Client объект. Это Dropin объект;-) Создает свой собственный клиент, хранящийся на _client частная собственность.

Мне нужно было вместо этого сделать braintree.client.create(...) чтобы получить правду Client объект.

Я на самом деле обманул и сделал это - только на время:

 braintree.vaultManager.create({ client: instance._client },

Как я уже сказал, я не рекомендую использовать DropIn и Vault вместе, это как бы побеждает суть обоих.

Другие вопросы по тегам