登录
首页 >  Golang >  Go问答

使用Stripe API和Go:将多个产品从模型发送到结账会话

来源:stackoverflow

时间:2024-02-07 12:15:17 117浏览 收藏

大家好,今天本人给大家带来文章《使用Stripe API和Go:将多个产品从模型发送到结账会话》,文中内容主要涉及到,如果你对Golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!

问题内容

我想将更多产品从我的 sqlite 数据库发送到条带结账会话,但我不知道该怎么做。我更喜欢使用“for”循环,但我如何在此代码中实现它。

我的单个产品代码:

var cart []models.Cart

Db.Where("user_id = ?", user_id).Find(&cart)

params := &stripe.CheckoutSessionParams{
    Mode: stripe.String(string(stripe.CheckoutSessionModePayment)),
    LineItems: []*stripe.CheckoutSessionLineItemParams{
        &stripe.CheckoutSessionLineItemParams{
            PriceData: &stripe.CheckoutSessionLineItemPriceDataParams{
                Currency: stripe.String("usd"),
                ProductData: &stripe.CheckoutSessionLineItemPriceDataProductDataParams{
                    Name: stripe.String(cart[0].Product_title),
                },
                UnitAmount: stripe.Int64(cart[0].Product_price * 100),
            },
            Quantity: stripe.Int64(1),
        },
    },
    SuccessURL: stripe.String("http://localhost:3000/member/order/success"),
    CancelURL:  stripe.String("http://localhost:3000/member/order/cancel"),
}

正确答案


stripebody是你从body中解析出来的body 然后循环抛出你的 lineitems 并将然后放入像 stripeitems 这样的变量中,然后将其添加到 params

var stripeItems []*stripe.CheckoutSessionLineItemParams
for _, cart := range stripeBody.Cart {
    stripeItems = append(stripeItems, &stripe.CheckoutSessionLineItemParams{
        PriceData: &stripe.CheckoutSessionLineItemPriceDataParams{
            Currency: stripe.String("usd"),
            ProductData: &stripe.CheckoutSessionLineItemPriceDataProductDataParams{
                Name:   stripe.String(cart.Name),
                Images: stripe.StringSlice([]string{cart.Image}),
            },
            UnitAmount: stripe.Int64(int64(cart.Price) * 100),
        },
        Quantity: stripe.Int64(cart.Quantity),
    })
}



params := &stripe.CheckoutSessionParams{
    Mode:          stripe.String(string(stripe.CheckoutSessionModePayment)),
    LineItems:     stripeItems,
    CustomerEmail: &stripeBody.Address.Email,
    SuccessURL:    stripe.String(domain + "/success"),
    CancelURL:     stripe.String(domain + "/cancel"),
}
s, err := session.New(params)

今天关于《使用Stripe API和Go:将多个产品从模型发送到结账会话》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>