0

我正在使用Stripe 的教程从格子链接按钮发送信息。

我在 onSuccess 函数中添加了以下代码:

onSuccess: function(public_token, metadata) {
// Send the public_token and account ID to your app server.
var form = $('#payment-form');
form.append("<input type='hidden' name='plaid_public_token' value='" + public_token + "'/>");
form.append("<input type='hidden' name='plaid_account_id' value='" + metadata.account_id + "'/>");
form.get(0).submit();
}

我认为当用户使用 Plaid 链接成功添加银行时会调用此函数。本质上,这将在表单关闭时被调用。

但是,当用户打开格子链接时,行为似乎会提交表单,将空白数据发送到我的控制器。

当 Plaid 完成后,如何将此信息发送到我的服务器?目前,它说变量是空的,但我认为这是因为在抛出此错误之前我什至无法使用格子弹出窗口。

Plaid::InvalidRequestError (
Error Type      : INVALID_REQUEST
Error Code      : INVALID_FIELD
Error Message   : public_token must be a non-empty string
Display Message : 
Request ID      : A1AXs
):
4

1 回答 1

0

关于“public_token 必须是非空字符串”和从条带给出的链接。

当你创建 Plaid 并给它一个配置时,你似乎没有给它你的链接令牌,如示例所示。首先创建一个包含所有需要的道具的对象,即:onSuccess、onExits 和token

根据您所拥有的和所提供的应该如下所示:

    const configs = {
        // where linkData.link_token is data returned from the call to the link api.
        token: linkData.link_token || '',
        onLoad: function() {
          // The Link module finished loading.
        },
        onSuccess: function(public_token, metadata) {
          // Send the public_token and account ID to your app server.
          var form = $('#payment-form');
          form.append("<input type='hidden' name='plaid_public_token' value='" + public_token + "'/>");
          form.append("<input type='hidden' name='plaid_account_id' value='" + metadata.account_id + "'/>");
          form.get(0).submit();
        },
        onExit: async function(err, metadata) {
          // The user exited the Link flow.
          if (err != null) {
              // The user encountered a Plaid API error
              // prior to exiting.
          }
          // metadata contains information about the institution
          // that the user selected and the most recent
          // API request IDs.
          // Storing this information can be helpful for support.
        },
      };

      var linkHandler = Plaid.create(configs);

于 2021-09-14T14:53:10.000 回答