节点RESTful API到Firebase云功能

时间:2017-10-15 16:16:28

标签: javascript node.js firebase stripe-payments google-cloud-functions

我在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);
 });
});

1 个答案:

答案 0 :(得分:2)

看起来你已经有了一个有效的Express应用程序。事实证明,您可以将Express应用程序传递给云功能:

exports.api = functions.https.onRequest(app)

执行此操作时,您的应用中的所有路线都将由云功能处理。 URL的路径将以函数名称为前缀。在上面的例子中,那是“api”,因此路径将是/api//api/charge等。

您可以在one example中看到Firebase samples repo