#react-native #stripe-payments #strong-customer-authentication
#react-native #stripe-платежи #строгая проверка подлинности клиента
Вопрос:
Я добавляю Stripe 3D secure в приложение React-Native, следуя документу по адресу https://stripe.com/docs/payments/save-and-reuse — сохраните карту и списывайте средства после завершения сеанса, когда услуга будет завершена.
Для сохранения карты мое приложение использует компонент WebView для загрузки HTML, используя <script src="https://js.stripe.com/v3/"></script>
. Он успешно сохранил секрет клиента и вышел из формы карты.
Вопрос: Во время оплаты позже, в случае, если требуется следующее действие для строгой аутентификации клиента, как снова получить объект stripe для вызова stripe.confirmCardPayment()
?
Я пробовал ниже, но потерпел неудачу — catch (ошибка), и ошибка пуста.
import {loadStripe} from '@stripe/stripe-js';
confirmPayment = async () => {
try {
const stripe = await loadStripe("pk_test_...");
// stripe
// .confirmPaymentIntent('{PAYMENT_INTENT_CLIENT_SECRET}', {
// payment_method: '{PAYMENT_METHOD_ID}',
// return_url: 'https://example.com/return_url',
// })
// .then(function(result) {
//
// });
} catch(error) {
console.error(`failed to load stripe ${JSON.stringify(error)}`);
}
Ответ №1:
Вы можете использовать stripe.confirmCardPayment
различными способами. В вашем случае у вас, вероятно, уже есть ИДЕНТИФИКАТОР PaymentMethod, что означает, что вы можете подтвердить клиентскую сторону PaymentIntent этим идентификатором PaymentMethod вместо объекта Elements:
stripe
.confirmCardPayment('{PAYMENT_INTENT_CLIENT_SECRET}', {
payment_method: '{PAYMENT_METHOD_ID}',
})
.then(function(result) {
// Handle result.error or result.paymentIntent
});
Комментарии:
1. Как мне получить объект stripe? Спасибо.
2. Вам нужно будет включить и инициализировать Stripe.js на вашей странице: stripe.com/docs/js/initializing