Обновление с дополнительной информацией - 18 декабря.
По мере того, как я тестирую дальше, выясняется, что ошибка изолирована от "this.response.end (json);" См. Примечания ниже:
Stripe, не связанное с фактурой: a) "this.response.end (EJSON.stringify (obj, {indent: true}));" работает и возвращает 200 б) "this.response.end (EJSON.stringify (obj));" нет ошибки на локальном сервере, ошибка на панели инструментов полосы с «невозможно подключиться» и не возвращает код 200
событие накладной полосы: a) "this.response.end (EJSON.stringify (obj, {indent: true}));" выдает ошибки - подробности см. ниже. б) "this.response.end (EJSON.stringify (obj));" нет ошибки на локальном сервере, ошибка на панели инструментов полосы с «невозможно подключиться» и не возвращает код 200
Любое понимание будет оценено.
У меня возникли проблемы с Stripe API, и мне нужна помощь или понимание. Я использую ngrok
для локального тестирования веб-перехватчиков Stripe, и все работает нормально, пока я не сделаю запрос к любому типу события Stripe «invoice» (например, invoice.payment_succeeded). Когда я запускаю тест для любого типа события «счет-фактура», я получаю несколько ошибок:
мое работающее приложение ломается (т.е. требует, чтобы я набрал запуск метеора в терминале, чтобы перезапустить приложение)
Я получаю это сообщение об ошибке на стороне сервера в своем терминале:
///error message start///
events.js:183
throw er; // Unhandled 'error' event
^
Error: write after end
at write_ (_http_outgoing.js:622:15)
at ServerResponse.write (_http_outgoing.js:617:10)
at IncomingMessage.ondata (_stream_readable.js:639:20)
at emitOne (events.js:116:13)
at IncomingMessage.emit (events.js:211:7)
at IncomingMessage.Readable.read (_stream_readable.js:475:10)
at flow (_stream_readable.js:846:34)
at resume_ (_stream_readable.js:828:3)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)
///error message end///
- На моей панели управления Stripe я получаю сообщение об ошибке:
'Test webhook error: Unable to connect'
Опять же, это происходит только тогда, когда я делаю запрос к любому типу события Stripe 'invoice'
(например, invoice.payment_succeeded
).
Я связался со Stripe, чтобы узнать, есть ли еще что-нибудь, что мне следует рассмотреть, но они сказали, что с их стороны все в порядке.
И последнее: чтобы запустить ngrok
, я использую 'ngrok http 3000'
.
С учетом сказанного ниже мой код веб-перехватчика на стороне сервера. Если у кого-то есть представление о том, что может вызвать эту ошибку, будет оценена любая точка зрения.
///server side webhook code start///
Router.route('/webhooks/stripe', { where: 'server' })
.get(function () {
console.log('getter');
this.response.end('closing...');
})
.post(function () {
console.log('post function initiated');
// stores payload as string
var obj = this.request.body;
console.log("print obj var");
console.log(obj);
// saves as indented string to send as response
var json = EJSON.stringify(obj, {indent: true});
this.response.writeHead(200, {
'Content-Length': json.length,
'Content-Type': 'application/json'
});
this.response.end(json);
})
.put(function () {
console.log('put');
});
///server side webhook code end///
console.log(obj);
печатает что-нибудь до появления ошибки? - person wsw   schedule 18.12.2018