У меня есть приложение Express, которое я успешно протестировал с токенизацией платежей.Поскольку я нахожусь в Великобритании и буду принимать в основном британские карты, я считаю, что мне нужно внедрить обработку 3D Secure.Я действительно изо всех сил пытаюсь понять официальную документацию - примеров, на мой взгляд, мало и далеко друг от друга.Из следующего: https://stripe.com/docs/sources/three-d-secure
У меня работают Источники вместо карточных платежей с использованием токенов.Это шаг 1. Шаг 2 требует, чтобы я определил, поддерживает ли карта 3D Secure.Я занимался этим на стороне клиента, но не уверен, как с этим справиться впоследствии - я пытался отправить пользователя на карточный платеж, если 3D Secure не требуется.НО, если это требуется, мне нужно создать еще один источник?И я делаю это на стороне сервера или клиента?Я также не могу заставить поле return_url что-либо делать - карты 3D Secure просто перестают работать.
Существуют ли какие-нибудь примеры, которые могли бы мне помочь?Я нахожу, что официальные документы просто говорят вам, что делать с небольшим количеством «как» делать вещи.
Я должен добавить, что я использую v3 с элементами, а НЕ с оформлением заказа.
Спасибо за любую помощь.
изменить: приведенная ниже серверная часть, кажется, ничего не делает:
stripe.sources.create({
amount: 6500,
currency: 'gbp',
type: "three_d_secure",
three_d_secure: {
card: stripeSource,
},
redirect: {
return_url: "http://example.com"
}
})
В документации говорится "Чтобы ваш клиент мог подтвердить свою личность, используя3D Secure, перенаправьте их на URL-адрес, указанный в атрибуте redirect [url] исходного объекта. "
Мой исходный объект не содержит этого поля?
edit: это то, что у меня естьсейчас.Перенаправление работает, но как только я авторизую платеж, карта отклоняется:
stripe.customers.create({
email: cust_email,
source: stripeSource
}).then(function(customer){
return stripe.charges.create({
amount: fee,
description: "Client Ref: " + clientref,
currency: "gbp",
customer: customer.id,
metadata: {
'allocation:': allocate
},
receipt_email: cust_email,
source: request.query.source,
})
}
).catch(err => {
console.log(err)
})
stripe.sources.create({
amount: fee,
currency: 'gbp',
type: "three_d_secure",
three_d_secure: {
card: stripeSource,
},
redirect: {
return_url: "http://localhost:8000/charge"
}
}).then(function(test) {
response.redirect(test.redirect.url)
})