Как я могу создать платеж, не создавая для него счет в 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 вызывается следующим (вызовы выполняются последовательно с использованием промисов). В итоге получается два счета вместо одного.


person Alex Polkhovsky    schedule 20.09.2017    source источник


Ответы (2)


Документация Recurly сбивает с толку. Когда я пытался создать начисление, я сделал предположение, что я должен создать транзакцию. После обращения в службу поддержки мне была предоставлена ​​ссылка для создания платежа. Если вы посмотрите на примеры кода справа, они ссылаются на Recurly_Adjustment, а не на объект транзакции. Таким образом, чтобы создать платеж, я должен создать корректировку, а не транзакцию. Переключение на правильный вызов API устранило проблему, и я получил один счет.

person Alex Polkhovsky    schedule 26.09.2017

Алекс прав. Вам также нужно будет использовать 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
});

person Ben Hulan    schedule 02.05.2019