You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Stripe发票数量显示异常求助:金额正确但数量错误

问题原因

你当前创建InvoiceItem时,直接传入了总金额(单价×数量),但没有单独指定quantity和unit_amount参数。Stripe无法从总金额反推出数量,所以发票上的数量显示异常。

修复方案

修改stripe.invoiceItems.create的参数,拆分出单价(unit_amount)和数量(quantity),而不是直接传总金额。这样Stripe就能正确识别并显示数量信息。

修改后的代码如下:

if (createinvoice) {
  if (lineItems && lineItems.length > 0) {
    for (var i = 0; i < lineItems.length; i++) {
      var element = lineItems[i];
      // 计算单价的最小货币单位(Stripe要求使用最小单位,比如新加坡元的分)
      const unitAmount = parseFloat((element.Price * 100).toFixed(2));
      await stripe.invoiceItems.create({
        customer: customerid,
        unit_amount: unitAmount, // 单独传入商品单价
        quantity: element.Quantity, // 单独传入商品数量
        currency: "sgd",
        description: element.ItemName,
        metadata: { ConversationID: convID, RowKey: rowkey },
      });
    }
  }
  const invoiceitem = await stripe.invoices.create({
    customer: customerid,
  });
  invoice_id = invoiceitem.id;
  const invoice = await stripe.invoices.finalizeInvoice(invoice_id);
}

const invoice1 = await stripe.invoices.retrieve(invoice_id);
const shortenedURL = invoice1.hosted_invoice_url;
return shortenedURL;
说明
  • unit_amount:传入单个商品的价格(需转换为对应货币的最小单位,比如新加坡元的分)
  • quantity:传入商品的购买数量
  • Stripe会自动计算unit_amount × quantity作为该条目的总金额,结果和你之前手动计算的一致,同时能正确在发票上显示数量和单价信息。

内容的提问来源于stack exchange,提问作者Surabhi MS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 21:17:17