Axios请求-Firebase云函数-错误:无法处理该请求
我正在尝试将Stripe checkout集成到我的电子商务网站(由VueJS和Firebase开发) 这是我的签出脚本:Axios请求-Firebase云函数-错误:无法处理该请求,firebase,axios,google-cloud-functions,stripe-payments,Firebase,Axios,Google Cloud Functions,Stripe Payments,我正在尝试将Stripe checkout集成到我的电子商务网站(由VueJS和Firebase开发) 这是我的签出脚本: <script> import axios from "axios"; var stripe = Stripe( "pk_test_51INdvGD9cbEc0vgt2LTeZ81ZFuqapXTBYP6tQuFSrm61zvmjzUxc61NEf3vsNOXJpmJa8qeFQ1OOZeetNknJVLq600xUZ4koaP
<script>
import axios from "axios";
var stripe = Stripe(
"pk_test_51INdvGD9cbEc0vgt2LTeZ81ZFuqapXTBYP6tQuFSrm61zvmjzUxc61NEf3vsNOXJpmJa8qeFQ1OOZeetNknJVLq600xUZ4koaP"
);
export default {
name: "Checkout",
data() {
return {
sessionId: ""
};
},
methods: {
pay() {
let data = this.$store.state.cart.map(item => ({[item.product_id] : item.productQuantity}));
data = Object.assign({}, ...data);
// console.log(data);
axios.get(
"https://us-central1-shop-vue-c6c23.cloudfunctions.net/CheckoutSession",
{
params: {
products : data
}
}
)
.then(response => {
this.sessionId = response.data
console.log(this.sessionId.id);
console.log(response.data);
stripe.redirectToCheckout({
sessionId: this.sessionId.id
})
.then(function(result) {});
})
.catch(error => {
console.log(error);
});
}
}
};
</script>
正如你看到的标题,我的错误是
“错误:无法处理请求”
另一方面,我知道应该从我的签出传递到条带签出的细节不起作用,但它是未定义的。是因为checkoutsession链接不起作用吗?是否有关于此错误的更多详细信息?像堆栈跟踪?我没有关于这个错误的任何其他细节。这就是我被封锁的原因,真不幸。如果没有更多的细节,就做不了什么。
const functions = require("firebase-functions");
const stripe = require('stripe')('sk_test_***');
const cors = require('cors')({origin: true});
const admin = require('firebase-admin');
admin.initializeApp();
exports.CheckoutSession = functions.https.onRequest((request, response) => {
cors(request, response, () => {
response.set('Access-Control-Allow-Origin', 'https://shop-vue-c6c23.web.app');
let myProducts = request.query.products;
myProducts = Object.entries(JSON.parse(myProducts));
response.send(myProducts);
const productArray = [];
myproducts.forEach(item => {
const p = admin.firestore().doc(`products/&{item[0]}`).get();
productArray.push(p);
});
const all = await Promise.all(productArray);
const results = [];
all.forEach(item => {
const data = {};
data.amount = parseFloat(item.data().price);
data.currency = "eur";
data.description = item.data().description;
data.name = item.data().name;
myproducts.forEach(q => {
if(item.id == q[0]){
data.quantity = q[1];
}
});
results.push(data);
});
stripe.checkout.sessions.create({
payment_method_types: ['card'],
line_items: results,
mode: 'payment',
success_url: 'https://example.com/success',
cancel_url: 'https://example.com/cancel',
}, function(err, session) {
response.send(session);
});
});
});