Полосная интеграция с 3D Secure - PullRequest
0 голосов
/ 05 июня 2018

У меня есть приложение 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)
 })
...