首页 > 解决方案 > Google Cloud Function,如何返回状态?

问题描述

以下函数成功执行,我遇到的问题是我需要返回status代码,但我收到以下错误:

TypeError:response.status 不是函数

  exports.processApplePayment = functions.https.onCall((data, context) => {

  console.log('processApplePayment');

  const stripeToken = data.stripeToken
  const amount = data.amount
  const description = data.description
  const email = data.receipt_email

  console.log('stripeToken', stripeToken);
  console.log('amount', amount);
  console.log('description', description);
  console.log('email', email);


  stripe.charges.create({
    amount: amount,
    currency: currency,
    description: description,
    source: stripeToken,
    receipt_email: email
    }, function(err, charge) {
      if (err !== null) {

        console.log('error capturing')
        console.log(err)

        response.status(400).send('error')

      } else {

        console.log('success')

        response.status(200).send('success')

      }
  });

});

标签: node.jsgoogle-cloud-functions

解决方案


您正在混淆可调用函数和HTTP 类型函数。可调用函数声明onCall并接受单个对象输入,而 HTTP 函数声明onRequest并接受请求和响应对象。您所做的是声明onCall并期望您获得 HTTP 函数参数。

如果你想写一个 HTTP 类型的函数,像这样声明它:

exports.processApplePayment = functions.https.onRequest((request, response) => {

推荐阅读