Введение: Мой друг владеет несколькими небольшими винодельнями в Италии и владеет 3-4 небольшими складами в разных европейских странах. Он хочет, чтобы его онлайн-клиенты (покупатели вина) решали, с какого склада они хотят получить вино, сравнивая цены отгрузки.
Цель: Рассчитать цену отгрузки для каждого склада, зная адрес клиента.
Мое решение: Vue, Firebase , Stripe будут использоваться для сборки магазин. До сих пор я сделал CheckoutSession облачную функцию, которая успешно возвращает sessionId :
exports.CheckoutSession = functions.https.onRequest((request, response) => {
cors(request, response, () => {
stripe.checkout.sessions.create(
{
success_url: 'https://example.com/success',
cancel_url: 'https://example.com/cancel',
payment_method_types: ['card'],
line_items: [
{
name: 'T-shirt',
description: 'Comfortable cotton t-shirt',
amount: 1500,
currency: 'eur',
quantity: 2,
},
],
},
function(err, session) {
response.send(session)
if (err) {
// ...
}
}
)
})
})
Затем я запускаю:
await stripe.redirectToCheckout({ sessionId: this.sessionId })
И платеж обрабатывается - я вижу доход в приборной панели Stripe.
1) Как узнать стоимость доставки? В соответствии с этим do c, я должен получить «items»: Array , который содержит объекты с типом «shipping» после создания заказа с помощью stripe.orders.create () . Но этот API устарел и в соответствии с этим do c, stripe.checkout.sessions.create () полезная нагрузка должна содержать "line_items" - список товаров, которые покупатель покупает : нет упоминаний о доставке ... Так что я немного растерялся: возможно ли даже передать стоимость доставки в stripe.checkout.sessions.create () ?
2) Можно ли выбрать несколько адресов? В https://dashboard.stripe.com/settings/orders# Я вижу только один адрес отправителя ...