Как передать динамическое значение функции firebase cloud с помощью оплаты полосами в react native

# #javascript #firebase #react-native #google-cloud-functions #stripe-payments

Вопрос:

Я использую платежный шлюз stripe в своем приложении React Native с использованием облачных функций firebase. Теперь я столкнулся с проблемой, связанной с передачей динамических значений в строку PaymentIntent, таких как сумма и валюта.

Вот мой код

 exports.paymentSheet = functions.https.onRequest(async (req, res) => {
  console.log("req", req);
  const customer = await stripe.customers.create();
  const ephemeralKey = await stripe.ephemeralKeys.create(
      {customer: customer.id},
      {apiVersion: "2020-08-27"},
  );
  const paymentIntent = await stripe.paymentIntents.create({
    amount: 2000 * 100,
    currency: "usd",
    customer: customer.id,
  });
  res.json({
    paymentIntent: paymentIntent.client_secret,
    ephemeralKey: ephemeralKey.secret,
    customer: customer.id,
  });
});
 

Приведенная выше функция является облачной функцией firebase, я должен передать динамическое значение в сумму и валюту, но я не могу этого сделать.

Вот код, в котором я получаю ответ в моем другом компоненте:

 const response = await fetch(
            'https://domainName/paymentSheet',
            {
              method: 'POST',
              headers: {
                'Content-Type': 'application/json',
              },
              body: formData,
            },
          );

          const { paymentIntent, ephemeralKey, customer } = await response.json();
          setCustomer(customer)
          setClientSecret(paymentIntent);
          return {paymentIntent, ephemeralKey,customer};
 

Комментарии:

1. Вам нужно передать некоторые параметры с вашим formData значением, которые затем можно будет использовать при вызовах API Stripe. Что находится formData в данном случае?

2. FormData-это объект, содержащий всю необходимую информацию, такую как константа цены и валюты FormData = новые FormData(); FormData.append («цена», 8766); FormData.append («валюта», «доллар США»);

3. В частности, эти параметры будут доступны в вашей функции для объекта запроса req.body . Есть ли какая-то особая причина, по которой вы используете FormData, а не JSON?

4. @JonathanSteele Не могли бы вы, пожалуйста, объяснить немного больше, потому что я не получаю это через req.body.

5. Когда вы console.log(req.body) выполняете свою paymentSheet функцию, каково ее содержание?