没有错误,只是我没有得到我在 Postman 中所期望的输出。
例如不显示产品数据、payment_intent:空等
你能帮我修一下吗?
这是我得到的输出
{
"status": "success",
"session": {
"id": "cs_test_a1mZ6W9dAO1n7IgpBkvZFJR3Uoe0TTAv3BV9U76b9JVpogcbOyImkaAvU2",
"object": "checkout.session",
"after_expiration": null,
"allow_promotion_codes": null,
"amount_subtotal": 99700,
"amount_total": 99700,
"automatic_tax": {
"enabled": false,
"status": null
},
"billing_address_collection": null,
"cancel_url": "http://127.0.0.1:3000/tour/the-mountain-biker",
"client_reference_id": "64482b81fc72db55d5ab256c",
"consent": null,
"consent_collection": null,
"created": 1682624190,
"currency": "usd",
"currency_conversion": null,
"custom_fields": [],
"custom_text": {
"shipping_address": null,
"submit": null
},
"customer": null,
"customer_creation": "if_required",
"customer_details": {
"address": null,
"email": "leo@example.com",
"name": null,
"phone": null,
"tax_exempt": "none",
"tax_ids": null
},
"customer_email": "leo@example.com",
"expires_at": 1682710590,
"invoice": null,
"invoice_creation": {
"enabled": false,
"invoice_data": {
"account_tax_ids": null,
"custom_fields": null,
"description": null,
"footer": null,
"metadata": {},
"rendering_options": null
}
},
"livemode": false,
"locale": null,
"metadata": {},
"mode": "payment",
"payment_intent": null,
"payment_link": null,
"payment_method_collection": "always",
"payment_method_options": {},
"payment_method_types": [
"card"
],
"payment_status": "unpaid",
"phone_number_collection": {
"enabled": false
},
"recovered_from": null,
"setup_intent": null,
"shipping_address_collection": null,
"shipping_cost": null,
"shipping_details": null,
"shipping_options": [],
"status": "open",
"submit_type": null,
"subscription": null,
"success_url": "http://127.0.0.1:3000/",
"total_details": {
"amount_discount": 0,
"amount_shipping": 0,
"amount_tax": 0
},
"url": "https://checkout.stripe.com/c/pay/cs_test_a1mZ6W9dAO1n7IgpBkvZFJR3Uoe0TTAv3BV9U76b9JVpogcbOyImkaAvU2#fidkdWxOYHwnPyd1blpxYHZxWjA0SzRTa1FWQkNTSE9%2FN3BEXFF3RlJvVXJnVn02bV0yQEh8ZEJrVW01bHFPYHxqUzxtbjFBRkpdc2phMU9oUTA8NVFUU19BQXE0XGRHXHBcMTBGQH1PYUI2NTVmf1xTd0FhSicpJ2N3amhWYHdzYHcnP3F3cGApJ2lkfGpwcVF8dWAnPyd2bGtiaWBabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl"
}
}
这是我的代码,顺便说一句,使用条纹@7
const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);
const Tour = require('./../models/tourModel');
const catchAsync = require('./../utils/catchAsync');
const factory = require('./handlerFactory');
const AppError = require('./../utils/appError');
exports.getCheckoutSession = catchAsync(async (req, res, next) => {
//1) Get the currently booked tour
const tour = await Tour.findById(req.params.tourId);
//2) Create checkout session
console.log(tour);
const session = await stripe.checkout.sessions.create({
payment_method_types: ['card'],
success_url: `${req.protocol}://${req.get('host')}/`,
cancel_url: `${req.protocol}://${req.get('host')}/tour/${tour.slug}`,
customer_email: req.user.email,
client_reference_id: req.params.tourId,
line_items: [
{
quantity: 1,
price_data: {
currency: 'usd',
unit_amount: tour.price * 100,
product_data: {
name: `${tour.name} Tour`,
description: tour.summary,
images: [`https://www.natours.dev/img/tours/${tour.imageCover}`],
},
},
},
],
// metadata: {
// name: `${tour.name} Tour`,
// description: tour.summary,
// image: `https://www.natours.dev/img/tours/${tour.imageCover}`,
// },
mode: 'payment',
});
//3) Create session as response
res.status(200).json({
status: 'success',
session,
});
});
我期待适当的输出在下面的领域在 Postman 。
因为数据没有反映在product_data,payment_intent中:空,字段
1条答案
按热度按时间7rfyedvj1#
为什么您在创建结账会话时期望存在支付意图?当客户使用付款页面完成付款时,结算会话创建付款意向。此属性将在 * 成功支付后具有支付意向的ID。
关于产品数据,API参考文档中提到默认不包含。但它是可扩展的。这意味着当您创建Checkout Session时,您可以在expand parameter中传入
line_items
,以在响应中获取完整的line_items
数据。