在创建订单时指定运送-条带

时间:2019-01-18 14:37:51

标签: stripe-payments

我有一个小型商店应用程序,根据选择的物品数量,将只有3种可能的邮资选项。如果它的x项少于3个,则x项大于2但小于5个,且x项大于或等于5。

我希望能够在购买时指定。我的POST请求看起来像这样:

Movie (Id)              Number of Users
Star Wars               50
John Wick               32
Fifty Shades of Grey    9000
...

但是当我尝试提交付款时,出现以下错误:

router.post('/pay', (req, res) => {

    var totalItems = 1;
    var itemPrice = 495
    var shipping;

    if (totalItems < 2) {
        shipping = 150
    } else if (totalItems > 2 && totalItems < 5) {
        shipping = 250
    } else {
        shipping = 350
    }

    const token = req.body.stripeToken;

    const charge = stripe.charges.create({
        amount: totalItems * itemPrice,
        currency: 'gbp',
        description: 'Example charge',
        source: token
    });

    const order = stripe.orders.create({
        currency: 'gbp',
        email: 'test@me.com',
        items: [
          {
            type: 'sku',
            parent: 'sku_EMfaxNyIExLS8I',
            quantity: totalItems,
          },
          {
            type: "shipping",
            amount: shipping,
            currency: "gbp",
            description: "Shipping",
            parent: "shipping",
            quantity: 1,
          }
        ],
        shipping: {
          name: 'George',
          address: {
            line1: '1234 Main Street',
            city: 'San Francisco',
            state: 'CA',
            postal_code: '94111',
            country: 'US',
          },
        },

    });

})

我真的很想能够以此级别指定发货,因为我不了解有关返回here的200条状态码等的Stripe文档。我对服务器端编码不太熟悉。

如果有人可以提供帮助,我将不胜感激。

非常感谢,

G

1 个答案:

答案 0 :(得分:2)

无法在订单创建时直接定义订单的运送信息-您需要使用您提到的回调approach,其中Stripe将订单详细信息发送给第三方或您的自定义服务器,以计算订单上的运费。

在这种情况下,建议您不要在这里使用Order对象,而直接使用stripe.charges.create创建费用并在代码中计算该费用的前期金额。