javascript - Firebase Cloud Functions 的 Node RESTful API

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

我在 Node.js 中有一个可用的应用程序,它将处理 Stripe收费。因为我用 Firebase 主持, 我需要使用谷歌 Cloud Functions为了照顾这个。有没有一种简单的方法可以将我的代码“翻译”为 index.js 中的云函数?


exports.stripecharge = functions.https.onRequest((req, res) => 不确定如何将其实现到我现有的代码中

这是我的工作 API(已修改测试 key ):

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

最佳答案

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

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

执行此操作时,来自您应用的所有路由都将由 Cloud Functions 处理。 URL 的路径将以函数名称为前缀。在上面的例子中,这是“api”,所以路径将是 /api//api/charge 等。

可以看到one example这在 Firebase samples repo .

关于javascript - Firebase Cloud Functions 的 Node RESTful API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46757185/

相关文章:

ajax - 使用 Angular js 登录 ajax 后清空 Passport session

Javascript-Node.Js 到达动态主体元素

javascript - 创建时将数据写入文档

javascript - Angular场景e2e测试能否集成外部资源工作流

javascript - 单击下拉列表的特定选项时隐藏表单,单击下拉列表的特定选项时显示表单

javascript - 如何抑制 LivePass 控制台消息? (Vimeo 播放器)

node.js - 将 Node.js 应用程序部署到 Heroku 的问题

ios - 为什么 Flutter 手机身份验证在我的真实设备上不起作用

javascript - 获取 Firebase 引用的路径

javascript - 基本 JavaScript : How can I link my HTML and Javascript on a Highcharts example?