Если вы не используете новую Stripe-only-checkout только для клиента , невозможно обрабатывать платежи в пользовательских интеграциях Stripe без какого-либо серверного кода.
Как вы заметили, официальный Документы для React Stripe. js включают только код на стороне клиента. Однако примеры кода на этой странице не представляют собой полную интеграцию, необходимую для обработки платежа. Примеры демонстрируют только то, как вы собираете и токенизируете данные кредитной карты во внешнем интерфейсе с помощью React Stripe. js и функции createPaymentMethod . Документы были написаны таким образом, чтобы было легче следить за примерами кода и запускать их в браузере, не настраивая сервер.
Хорошее место для начала, чтобы получить представление о том, какие API-интерфейсы участвуют в конечном итоге. Интеграция платежа до конца:
https://stripe.com/docs/payments/accept-a-payment
( tip каждый образец кода в приведенном выше руководстве имеет React
версия, в которую вы можете перейти)
Если вы заинтересованы в том, чтобы увидеть полную работающую интеграцию, основанную на этих примерах React, я бы порекомендовал проверить следующую демонстрацию, которую мы создали для недавнего эпизода работы в офисе разработчика :
https://github.com/tmarek-stripe/demo-react-stripe-js
В частности, я бы рекомендовал рассмотреть серверную часть (здесь) , которая создает намерение оплаты, и клиентская часть (здесь) , которая создает способ оплаты и подтверждает намерение платежа.
Это много для обзора! Если хотите, вы можете просто посмотреть видео, где мы go рассказываем, как создать (почти полную) интеграцию с React Stripe. js:
React Stripe. js - Разработчик Часы работы офиса | Youtube
Как только основы будут рассмотрены, я бы порекомендовал рассмотреть другой пример для более полной сквозной интеграции:
Безопасные для типов платежи с Next. js, TypeScript и Stripe
При просмотре этой полной заметки об интеграции не требуется создавать способ оплаты вручную при использовании Stripe. js. Это необязательно, потому что успешное намерение оплаты автоматически создаст для вас способ оплаты.
Намерение платежа создается на стороне сервера:
// Create a PaymentIntent with the specified amount.
const response = await fetchPostJSON('/api/payment_intents', {
amount: input.customDonation
});
https://github.com/stripe-samples/nextjs-typescript-react-stripe-js/blob/master/components/ElementsForm.tsx#L84 -L88
И подтверждается на стороне клиента без createPaymentMethod
необходимы звонки!
const cardElement = elements!.getElement(CardElement);
// Use your card Element with other Stripe.js APIs
const { error, paymentIntent } = await stripe!.confirmCardPayment(
response.client_secret,
{
payment_method: {
card: cardElement!,
billing_details: { name: input.cardholderName }
}
}
);
https://github.com/stripe-samples/nextjs-typescript-react-stripe-js/blob/master/components/ElementsForm.tsx#L99 -L110
В двух словах:
Надеюсь, это поможет!