javascript Postman 意外输出

xytpbqjk  于 2023-04-28  发布在  Java
关注(0)|答案(1)|浏览(91)

没有错误,只是我没有得到我在 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_datapayment_intent中:空,字段

7rfyedvj

7rfyedvj1#

为什么您在创建结账会话时期望存在支付意图?当客户使用付款页面完成付款时,结算会话创建付款意向。此属性将在 * 成功支付后具有支付意向的ID。
关于产品数据,API参考文档中提到默认不包含。但它是可扩展的。这意味着当您创建Checkout Session时,您可以在expand parameter中传入line_items,以在响应中获取完整的line_items数据。

相关问题