Javascript 如何在客户端sdk中提交带有payload.nonce的表单?I';我在用大脑树给出的例子?

Javascript 如何在客户端sdk中提交带有payload.nonce的表单?I';我在用大脑树给出的例子?,javascript,jquery,braintree,braintree-sandbox,braintree-data,Javascript,Jquery,Braintree,Braintree Sandbox,Braintree Data,我现在被困在这一点上了。我以前从未使用过BraintreeAPI。问题是,当我点击提交按钮时,它会显示带有我的付款方式的警告框。 这意味着我正在成功地从客户那里获得付款方式,但问题是我不知道如何使用此付款方式提交表单。 这个客户端sdk是用jquery编写的。 我尝试了几种提交表单的方式,但我不知道在提交表单时如何获得“付款方式”。 我厌倦了添加一个隐藏类型字段。甚至隐藏类型字段也不会出现。 请帮忙。这是jquery代码。 我只是想知道如何在jquery中使用“付款方法”提交表单 bra

我现在被困在这一点上了。我以前从未使用过BraintreeAPI。问题是,当我点击提交按钮时,它会显示带有我的付款方式的警告框。 这意味着我正在成功地从客户那里获得付款方式,但问题是我不知道如何使用此付款方式提交表单。 这个客户端sdk是用jquery编写的。 我尝试了几种提交表单的方式,但我不知道在提交表单时如何获得“付款方式”。 我厌倦了添加一个隐藏类型字段。甚至隐藏类型字段也不会出现。 请帮忙。这是jquery代码。 我只是想知道如何在jquery中使用“付款方法”提交表单

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

  braintree.hostedFields.create({
    client: clientInstance,
    styles: {
      'input': {
        'font-size': '14px',
        'font-family': 'helvetica, tahoma, calibri, sans-serif',
        'color': '#3a3a3a'
      },
      ':focus': {
        'color': 'black'
      }
    },
    fields: {
      number: {
        selector: '#card-number',
        placeholder: '4111 1111 1111 1111'
      },
      cvv: {
        selector: '#cvv',
        placeholder: '123'
      },
      expirationMonth: {
        selector: '#expiration-month',
        placeholder: 'MM'
      },
      expirationYear: {
        selector: '#expiration-year',
        placeholder: 'YY'
      },
      postalCode: {
        selector: '#postal-code',
        placeholder: '90210'
      }
    }
  }, function (err, hostedFieldsInstance) {
    if (err) {
      console.error(err);
      return;
    }

    hostedFieldsInstance.on('validityChange', function (event) {
      var field = event.fields[event.emittedBy];

      if (field.isValid) {
        if (event.emittedBy === 'expirationMonth' || event.emittedBy === 'expirationYear') {
          if (!event.fields.expirationMonth.isValid || !event.fields.expirationYear.isValid) {
            return;
          }
        } else if (event.emittedBy === 'number') {
          $('#card-number').next('span').text('');
        }

        // Remove any previously applied error or warning classes
        $(field.container).parents('.form-group').removeClass('has-warning');
        $(field.container).parents('.form-group').removeClass('has-success');
        // Apply styling for a valid field
        $(field.container).parents('.form-group').addClass('has-success');
      } else if (field.isPotentiallyValid) {
        // Remove styling  from potentially valid fields
        $(field.container).parents('.form-group').removeClass('has-warning');
        $(field.container).parents('.form-group').removeClass('has-success');
        if (event.emittedBy === 'number') {
          $('#card-number').next('span').text('');
        }
      } else {
        // Add styling to invalid fields
        $(field.container).parents('.form-group').addClass('has-warning');
        // Add helper text for an invalid card number
        if (event.emittedBy === 'number') {
          $('#card-number').next('span').text('Looks like this card number has an error.');
        }
      }
    });

    hostedFieldsInstance.on('cardTypeChange', function (event) {
      // Handle a field's change, such as a change in validity or credit card type
      if (event.cards.length === 1) {
        $('#card-type').text(event.cards[0].niceType);
      } else {
        $('#card-type').text('Card');
      }
    });

    $('.panel-body').submit(function (event) {
      //event.preventDefault();
      hostedFieldsInstance.tokenize(function (err, payload) {
        if (err) {
          console.error(err);
          return;
        }
        // This is where you would submit payload.nonce to your server
        alert('Submit your nonce to your server here!' + payload.nonce);
      });
    });
  });
});
充分披露:我在Braintree工作。如果您有任何进一步的问题,请随时联系

如果没有表单或HTML代码,很难知道是否已将表单定义为变量。但实际上,您需要将该nonce值(payload.nonce)注入到表单中,然后将表单提交到服务器

例如,我已经定义了我的表单(在我的braintree.client.create上面)

然后,在提交事件中,您将希望在成功标记化后将有效负载值注入到表单中(这似乎是基于警报值实现的)

随后提交您的表格

form.submit()
这将提交您的表单,其中包含一个名为付款方法\u nonce的输入,然后您可以在服务器上请求该输入

如果我能进一步澄清,请告诉我。很乐意帮忙。

完全披露:我在Braintree工作。如果您有任何进一步的问题,请随时联系

如果没有表单或HTML代码,很难知道是否已将表单定义为变量。但实际上,您需要将该nonce值(payload.nonce)注入到表单中,然后将表单提交到服务器

例如,我已经定义了我的表单(在我的braintree.client.create上面)

然后,在提交事件中,您将希望在成功标记化后将有效负载值注入到表单中(这似乎是基于警报值实现的)

随后提交您的表格

form.submit()
这将提交您的表单,其中包含一个名为付款方法\u nonce的输入,然后您可以在服务器上请求该输入


如果我能进一步澄清,请告诉我。很乐意帮忙。

是的,我的表格已经准备好了,谢谢你做了正确的事情!!!让我检查一下,让你知道!谢谢你,我的表格已经准备好了,谢谢你做了正确的事情!!!让我检查一下,让你知道!谢谢
form.submit()