【问题标题】:terms of service stripe connect服务条带连接条款
【发布时间】:2022-01-28 10:06:54
【问题描述】:

我创建了一个函数来为我的用户创建一个条带自定义公司帐户,一切正常,但是当我尝试更新 node.js 中的服务条款数据时,它没有出现任何错误,但是当我转到 Stripe 仪表板时,它说该帐户仍然需要接受服务条款。我该怎么办?

这是创建帐户的函数:

export const createStripeMerchant = async(connectId: any, line1: any, line2: any, city: any, country: any, postCode: any,
  day: any, month: any, year: any, uid: any, email: any, firstName: any, lastName: any, phoneNumber: any) => {

  const account = await stripe.accounts.createPerson(
    connectId, {
      address: {
        line1: line1,
        line2: line2,
        city: city,
        country: country,
        postal_code: postCode,
      },
      dob: {
        day: day,
        month: month,
        year: year,
      },
      first_name: firstName,
      last_name: lastName,
      email: email,
      relationship: {
        executive: true,
        director: true,
        representative: true,
        title: 'Director',
      },
      phone: phoneNumber,
      metadata: {
        firebaseUID: uid
      },
    });

  await updateMerchantId(uid, {
    personAccountId: account.id
  });

  return account;
}

这是在服务接受条款中添加的功能:

export const updateStripeConnect = async(connectId: any, uid: any, date: any, ip: any, userName: any) => {

  const account = await stripe.accounts.update(
    connectId, {
      tos_acceptance: {
        date: date,
        ip: ip,
        service_agreement: 'full',
        user_agent: userName,
      },
    }
  );
  return account;
}

我这样称呼它:

createStripePerson({
  connectId: connectId,
  line1: address1.val(),
  line2: address2.val(),
  city: cityTown.val(),
  country: 'GB',
  postCode: postCode.val(),
  day: $("#dateOB").val().substring(8, 10),
  month: $("#dateOB").val().substring(5, 7),
  year: $("#dateOB").val().substring(0, 4),
  uid: uid,
  email: email.val(),
  firstName: firstName.val(),
  lastName: lastName.val(),
  phoneNumber: phoneInput.getNumber(),
}).then((result) => {
  /** @type {any} */
  const data = result.data;
  const textData = data.text;
  console.log("Result data: " + data);
  console.log("Text data: " + textData);


  updateStripeConnect({
    connectId: connectId,
    uid: uid,
    date: unixTimestamp,
    ip: ip,
    userName: firstName.val() + " " + lastName.val(),
  }).then((result) => {
    /** @type {any} */
    const data = result.data;
    const textData = data.text;
    console.log("Result data: " + data);
    console.log("Text data: " + textData);
  }).catch((error) => {
    console.log("Error message: " + error.message);
    console.log("Error details: " + error.details);
  });


}).catch((error) => {
  console.log("Error message: " + error.message);
  console.log("Error details: " + error.details);
});

所以,正如我所说,这一切都通过了,但服务条款没有得到履行/在 Stripe 的仪表板中仍然需要:

【问题讨论】:

    标签: javascript node.js stripe-payments


    【解决方案1】:

    您共享的调用更新帐户API 的代码总体上看起来是正确的。您遇到的主要问题是您没有与await 同步调用它,因此调用可能会失败/出错,但您没有正确捕获错误。

    您应该首先使用硬编码的帐户 ID 自行运行该代码,以确认该部分代码有效。确保使用await 或处理回调并正确处理错误。一旦成功,您就可以添加清晰的日志来调试不适合您的其他调用

    【讨论】:

    • 当然!谢谢伙计,让我困惑了一段时间 - 对其进行硬编码并将 JSON 字符串化 + 添加 async/await 完成了这项工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    • 2020-05-01
    • 2021-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多