使用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正在调用顺序)。最终结果是两张发票而不是一张。
答案 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
});