Обрабатывать ответ полосой в приложении Express - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь написать простую интеграцию Stripe с использованием Express.Мой код создает клиента и взимает плату и завершает, появляясь в моей панели инструментов.Однако я изо всех сил пытаюсь понять, как справиться с ответом от Stripe.Следующее просто выводит весь ответ от Stripe - я хотел бы иметь возможность выводить дружеское сообщение в зависимости от содержания этого ответа:

stripe.customers.create({
    card: stripeToken
  })
  .then(customer =>
stripe.charges.create({
  amount: fee,
  description: "Client Ref: " + clientref,
  currency: "gbp",
  customer: customer.id,
  metadata: {
    'allocation:': allocate
  }
}))
  .then(charge => response.send(charge))
  .catch(err => {
    console.log("Error:", err);
    response.status(500).send({error: "Purchase Failed"});
  });

Как я могу посмотреть на ответ и обработать егосоответственно?Я попытался использовать обещание response.send, и я могу заставить его отображать части ответа, но является ли это страницей "оплаты"?Как я могу отобразить это как html, а не просто как обычный текст ??

Я посмотрел в документах Stripe и не нашел ничего подобного.Я хочу, чтобы иметь возможность учитывать неудавшиеся платежи, отклонения и т. Д., А также успешные платежи.

Любая помощь или другие примеры очень ценятся!

Спасибо

редактировать: хорошо, яобрабатывать «ошибки» в блоке catch.Я не осознавал, что Stripe не создает исключений, поэтому это облегчает жизнь.Однако моя точка зрения на форматирование сообщений остается в силе.«/ charge» просто выводит простой текст.

1 Ответ

0 голосов
/ 16 мая 2018

Как я могу посмотреть на ответ и обработать его соответственно?

Документы Stripe ясно показывают, что ответ на успешный заряд здесь: https://stripe.com/docs/api/node#create_charge (под Example response). Он возвращает вам большой объект JSON.

Вам необходимо выяснить, какая часть этого ответа будет полезна для вас в вашем клиентском приложении. Если никакая информация не нужна, вы можете просто проигнорировать ответ.

(...) но является ли это платной страницей? Как я могу отобразить это как HTML, а не только в виде простого текста ??

То, что вы сейчас делаете, это просто отправка всего объекта JSON вашему клиенту через res.send. И вы ничего не делаете с ответом, кроме простой отправки его обратно в виде простого текста. Вам необходимо настроить свой вид для отображения ответа: http://expressjs.com/en/guide/using-template-engines.html

Или, если вы создаете API для использования другими, используйте res.json, чтобы отправить обратно JSON, полученный вами из Stripe. http://expressjs.com/en/4x/api.html#res.json

Я хочу быть в состоянии учитывать неудавшиеся платежи, отклонения и т. Д., А также успешные платежи.

Тогда вам нужно обработать возникшую ошибку. Вы обрабатываете ошибку через .catch, но вы не проверяете объект ошибки. Опять же, у полосы есть документация по ошибкам: https://stripe.com/docs/api#errors

И они даже говорят вам, как обрабатывать ошибки: https://stripe.com/docs/api#handling-errors

...