Как создать заказ Stripe с инвойсом? - PullRequest
0 голосов
/ 30 мая 2019

У меня есть конечная точка API, которая прослушивает событие invoice.payment_succces webhook. Всякий раз, когда я получаю счет, я отправляю ссылку на него пользователю, для которого он предназначен.

До сих пор это работало для подписок, которые автоматически создают счет, но, похоже, не работают одинаково для заказов.

Когда я отправляю заказ (вот так) ...

const order = await stripe.orders.create({
    customer: user.stripeCustomerId as string,
    currency: "usd",
    coupon: couponCode,
    items: [{
        type: "sku",
        parent: product.sku,
    }],
});
return stripe.orders.pay(order.id, {});

... заказ регистрируется, и происходит оплата, но счет-фактура не создается.

Как заставить полосу создать счет при отправке заказа?

1 Ответ

1 голос
/ 30 мая 2019

Если вы хотите отправлять разовые счета по каждому заказу, сначала настройте счета

например.

const stripe = require('stripe')('sk_test_4eC39HqLyjWDarjtT1zdp7dc');

stripe.invoiceItems.create({
  amount: 1000,
  currency: 'usd',
  customer: 'cus_4fdAW5ftNQow1a',
  description: 'Set-up fee',
});

Далее вы готовите «черновой» счет, используя await.stripe.invoices.create

const stripe = require('stripe')('sk_test_4eC39HqLyjWDarjtT1zdp7dc');

(async () => {
  const invoice = await stripe.invoices.create({
    customer: 'cus_4fdAW5ftNQow1a',
    billing: 'send_invoice',
    days_until_due: 30,
  });
})();

Черновик счета-фактуры может быть обновлен, и когда вы будете готовы выставить счет, вы можете завершить его:

const stripe = require('stripe')('sk_test_4eC39HqLyjWDarjtT1zdp7dc');

stripe.invoices.sendInvoice(invoice.id, function(err, invoice) {
  // asynchronously called
});

Исходный код взят из чередующихся документов

Если я неправильно понял вопрос, пожалуйста, прокомментируйте. (Похоже, вы делаете заказ по тому, как сформулирован ваш вопрос ...)

Надеюсь, это поможет

...