将元数据信息传递给 Stripe createToken 调用

Passing metadata info to Stripe createToken call

我在 javascript 应用程序中使用 Stripe.js 时遇到问题。我成功地像 explained here in the doc 一样调用了 cart.createToken,但我找不到向 Stripe 提供 metadata 信息的方法。

这是我传递的数据:

  const data = {
    number: $form.find('[data-stripe=number]').val(),
    exp_month: $form.find('[data-stripe=exp_month]').val(),
    exp_year: $form.find('[data-stripe=exp_year]').val(),
    cvc: $form.find('[data-stripe=cvc]').val(),
    name: $form.find('[data-stripe=name]').val(),
    address_line1: $form.find('[data-stripe=address_line1]').val(),
    address_city: $form.find('[data-stripe=address_city]').val(),
    address_state: $form.find('[data-stripe=address_state]').val(),
    address_zip: $form.find('[data-stripe=address_zip]').val(),
    address_country: $form.find('[data-stripe=address_country]').val(),
    metadata: {
      vat_number: $form.find('[data-stripe=vat_number]').val()
    }
  };

  stripe.card.createToken(data, (status, response) => { ... })

我在我的 Chrome 网络检查器中成功地看到 vat_number 信息被提供给 stripe

key=pk_test_foobar&payment_user_agent=stripe.js%2F81eca10&card[number]=4242+4242+4242+4242&card[exp_month]=12&card[exp_year]=19&card[cvc]=234&card[name]=GDG&card[address_line1]=20&card[address_city]=P&card[address_zip]=75004&card[address_country]=F&card[metadata][vat_number]=FR309483094830948

但不幸的是,在 Stripe 的回答中,metadata 字段仍然是一个空对象 {}。我在代码的响应中非常需要它,我怎么能确定 Stripe 成功拥有它。

感谢您的帮助

Metadata can only be added to updatable objects. As tokens不可更新,创建令牌时不能提供元数据。

根据您要提供的元数据类型,您应该在 creating a charge or a customer 时使用卡令牌传递 metadata 参数。