#node.js #google-cloud-platform #stripe-payments
#node.js #google-облачная платформа #stripe-платежи
Вопрос:
Я пытаюсь написать несколько NodeJS для облачной функции Google для обработки stripe. Я довольно новичок в этом и пытаюсь следовать различным руководствам.
В настоящее время я получаю следующую ошибку:
Detailed stack trace: ReferenceError: request is not defined
Я действительно не понимаю, поскольку запрос, который, как я думал, является частью пакета express. Это весь мой код. Он предназначен для получения токена из формы и создания оплаты. Даже при просмотре руководства stripe они не определяют запрос отдельно.
var app = require('express')();
var http = require('http').Server(app);
var stripe = require('stripe')(
"sk_);
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
//get token from body
const token = request.body.stripeToken;
//initiate a one-off charge for a customer
exports.chargeCustomer = app.get("/", function chargeCustomer (req,res){
stripe.charges.create({
source: token,
currency: 'usd',
amount:999
},function(err, charge) {
if(err) {
return res.send(JSON.stringify(err));
}
res.send(JSON.stringify(charge));
});
});
Комментарии:
1.
request.body
это просто пример. В Google Cloud вы, вероятно, захотите прочитать cloud.google.com/functions/docs/writing/http2.
app.get()
при написании этих бессерверных функций нет необходимости. Это становится задачей этой строки кодаexports.createUser = functions.https.onRequest(createUser);
, что также делает ненужным запрос в http-модуле.
Ответ №1:
Я не уверен, какому руководству вы следовали, поэтому не могу указать на это. Чего не хватает в вашем коде, так это первого запроса к конечной точке tokens, которая создает токен card, необходимый для последующего charges
вызова.
var stripe = require("stripe")("sk_test_XXXXXXX"); // your test key
stripe.tokens.create({
card: {
number: '4242424242424242',
exp_month: 12,
exp_year: 2020,
cvc: '123'
}
}, function(err, token) {
// asynchronously called
});
В результате этого будет возвращен объект JSON, и вам понадобится id
этого объекта. Идентификатор представляет собой строку, начинающуюся с tok_
, т.е. tok_0EDyAkDOjEFp8g5k9NxTrm2k