我有一个小型商店应用程序,根据选择的物品数量,将只有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
答案 0 :(得分:2)
无法在订单创建时直接定义订单的运送信息-您需要使用您提到的回调approach,其中Stripe将订单详细信息发送给第三方或您的自定义服务器,以计算订单上的运费。
在这种情况下,建议您不要在这里使用Order对象,而直接使用stripe.charges.create
创建费用并在代码中计算该费用的前期金额。