我在Node.js中有一个正在运行的应用程序,它将负责Stripe收费。由于我正在使用Firebase进行托管,因此我需要使用Google Cloud Functions来处理这个问题。有没有一种简单的方法来翻译'我的代码,index.js
中的云函数?
exports.stripecharge = functions.https.onRequest((req, res) =>
不知道如何将其实现到我现有的代码
这是我的工作API(修改了testkeys):
var stripe = require("stripe")("sk_test_213123123123123");
var express = require('express'), bodyParser = require('body-parser');
var urlencodedParser = bodyParser.urlencoded({ extended: false })
var app = express();
app.get('/',function(req, res) {
// for kicks, just sending checkout
res.send('<form action="/charge" method="POST">Buy it !<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-
key="pk_test_123123123123213"></script></form>')
});
app.post('/charge',urlencodedParser, function(req, res) {
// grab a token
var token = req.body.stripeToken;
// creating a charge, for real use add things like error handling
stripe.charges.create({
amount: 2000,
currency: "usd",
source: token, // obtained with Stripe.js
description: "Charge"
}, function(err, charge) {
res.send("You made a charge: "+ charge.id);
});
});
答案 0 :(得分:2)
看起来你已经有了一个有效的Express应用程序。事实证明,您可以将Express应用程序传递给云功能:
exports.api = functions.https.onRequest(app)
执行此操作时,您的应用中的所有路线都将由云功能处理。 URL的路径将以函数名称为前缀。在上面的例子中,那是“api”,因此路径将是/api/
和/api/charge
等。
您可以在one example中看到Firebase samples repo。