#stripe-payments
Вопрос:
Я создаю и обрабатываю платеж в полоску, подобный этому:
// Create payment intent
const { data } = await axios.post('/api/payments/get-payment-intent', { slug: post.slug })
// Use payment intent to charge the card
const result = await stripe.confirmCardPayment(data.paymentIntentSecert, {
payment_method: {
card: elements.getElement(CardElement),
},
})
Чтобы иметь возможность выполнить заказ, мне нужно иметь возможность передать некоторые данные ( id
о продукте и username
покупателе) на веб-крючок, который выполняется после успешного завершения оплаты ( payment_intent.succeeded
событие).
Как я могу это сделать?
Я попытался добавить metadata
ключ к confirmCardPayment()
подобному:
const result = await stripe.confirmCardPayment(data.paymentIntentSecert, {
payment_method: {
card: elements.getElement(CardElement),
metadata: {
username: user.username,
postId: post.id
}
},
})
Но метаданные не отображаются на объекте, полученном веб-крючком.
Ответ №1:
Невозможно обновить метаданные PaymentIntent с помощью confirmCardPayment()
.
Сначала вы захотите передать имя пользователя и почтовый идентификатор на свой сервер.
Пример
const { data } = await axios.post('/api/payments/get-payment-intent', {
username:user.username,
postId: post.Id
});
И затем создайте запрос платежа с метаданными.
Node.js пример создания платежного документа
const paymentIntent = await stripe.paymentIntents.create({
amount: 2000,
currency: 'usd',
metadata: {
username,
postId
},
});