firebase"/>
为什么 firebase
一切顺利,但是当它进入 fullfillOrder func 时给我 400 响应。 我试图更好地搜索 google firebase 语法,但文档没有给我太多信息,在另一个网页上它是 firebase 的订购版本,所以我又遇到了另一个错误。
import { buffer } from 'micro'
import { initializeApp, getApps, getApp } from 'firebase-admin/app'
import { credential } from 'firebase-admin'
const serviceAccount = require('../../permissions.json')
const app = !getApps().length
? initializeApp({
credentials: credential.cert(serviceAccount),
})
: getApp()
const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY)
const endpointSecret = process.env.STRIPE_SIGNING_SECRET //webhook listener key
const fullfillOrder = async (session) => {
// this func gives an error
return app
.firestore()
.collection('users')
.doc(session.metadata.email)
.collection('orders')
.doc(session.id)
.set({
amount: session.amount_total / 100, //coz of subcurrency
amount_shipping: session.total_details.amount_shipping / 100,
images: JSON.parse(session.metadata.images),
timestamp: admin.firestore().FieldValue.serverTimestamp(),
})
}
export default async function webhook(req, res) {
if (req.method === 'POST') {
const reqBuffer = await buffer(req)
const payload = reqBuffer.toString()
const sig = req.headers['stripe-signature']
let event
try {
event = stripe.webhooks.constructEvent(payload, sig, endpointSecret)
} catch (err) {
console.log(err.message)
return res.status(400).send(`Error : ${err.message}`)
}
if (event.type === 'checkout.sessionpleted') {
const session = event.data.object
return fullfillOrder(session)
.then(() => res.status(200))
.catch((err) => res.status(400).send(`Webhook error ${err.message}`))
}
}
}
回答如下:
更多推荐
为什么 firebase
发布评论