如何在Recurly中为其生成发票而创建费用?

时间:2017-09-20 03:19:45

标签: node.js recurly

使用node-recurly。我们的想法是在不生成发票的情况下创建费用,然后创建订阅并将费用重新附加到订阅发票上。但是,当我创建费用时,会自动为其生成发票,因此用户会在电子邮件中收到两个单独的发票:一个用于收费,另一个用于订阅。 这是我使用的充电对象:

const shippingCharge = {
      amount_in_cents: parseFloat(shippingMethod.amount) * 100,
      currency: 'USD',
      description: `${shippingMethod.provider} ${shippingMethod.servicelevel_name} shipping`,
      account: {
        account_code: activationCode,
      },
    };

我把它传递给这个产生电荷的函数:

recurly.transactions.create(chargeObject, (response) => {
    ... blah blah blah
  });
接下来调用

recurly.subscriptions.create(使用promises正在调用顺序)。最终结果是两张发票而不是一张。

2 个答案:

答案 0 :(得分:1)

Recurly的文档令人困惑。当我试图创建一个收费时,我假设我必须创建一个交易。联系支持部门后,我收到了create a charge的链接。如果查看右侧的代码示例,它们会引用 Recurly_Adjustment ,而不是事务对象。所以创建一个收费我必须创建一个调整,而不是一个交易。切换到正确的API调用修复了问题,我收到了一张发票。

答案 1 :(得分:0)

亚历克斯是正确的。如果您希望同时收费,则还需要使用revenue_schedule_type: at_invoice。 Recurly API文档未包含NodeJS示例。在这里,您去了:

return recurly.adjustments.create(accountId, {
  unit_amount_in_cents: parseFloat(shippingMethod.amount) * 100,
  currency: 'USD',
  description: `${shippingMethod.provider} ${shippingMethod.servicelevel_name} shipping`,
  revenue_schedule_type: 'at_invoice',
  accounting_code: accountingCode,
}).then(() => {
  // ...create an invoice, subscription, or whatever
});