Интеграция Stripe приводит к проблемам с сетью и ошибкам Cors.Javascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Интеграция Stripe приводит к проблемам с сетью и ошибкам Cors.

Сообщение Anonymous »

Я пытался заставить эту интеграцию API работать, когда я использую почтальона, чтобы попробовать http://localhost:5001/api/stripe/create ... ut-session POST, я также получаю 200k и идентификатор сеанса взамен как использование завитка. Когда я пытаюсь выполнить фактическое перенаправление на своей странице выставления счетов, при нажатии кнопки «Активировать подписку» ничего не происходит, и консоль выдает сетевую ошибку:

Код: Выделить всё

    Billing-7ca61e132a5214f3.js:1 Error creating checkout session:
V
code
:
"ERR_NETWORK"
config
:
{transitional: {…}, adapter: Array(3), transformRequest: Array(1),
transformResponse: Array(1), timeout: 0, …}
message
:
"Network Error"
name
:
"AxiosError"
request
:
XMLHttpRequest {onreadystatechange: null, readyState: 4, timeout: 0,
withCredentials: false, upload: XMLHttpRequestUpload, …}
stack
:
"AxiosError: Network Error\n    at m.onerror
(http://localhost:3001/_next/static/chunks/988-fcb0a835e46419aa.js:1:39051)\n
at ts.request (http://localhost:3001/_next/static/chunks/988-
fcb0a835e46419aa.js:1:46641)\n    at async i
(http://localhost:3001/_next/static/chunks/pages/billing/Billing-
7ca61e132a5214f3.js:1:1042)"
[[Prototype]]
:
Error
i   @   Billing-7ca61e132a5214f3.js:1
и проблема: убедитесь, что значения заголовка ответа CORS действительны.
Запрос совместного использования ресурсов между источниками (CORS) был заблокирован из-за недопустимых или отсутствующих заголовков ответа запроса или связанного с ним предварительный запрос.
Чтобы устранить эту проблему, убедитесь, что в ответе на запрос CORS и/или связанный с ним предварительный запрос не отсутствуют заголовки, и используйте допустимые значения заголовков.
Обратите внимание: если непрозрачный ответ достаточно, режим запроса может быть установлен на no-cors, чтобы получить ресурс с отключенным CORS; Таким образом, заголовки CORS не требуются, но содержимое ответа недоступно (непрозрачно).
1 запрос
Состояние запроса Предварительный запрос (если проблема) Проблема заголовка Недопустимое значение (если доступно)
create-checkout-session заблокирован
create-checkout-session Access-Control-Allow-Origin отсутствует заголовок

Подробнее: Cross-Origin Совместное использование ресурсов (CORS)
iv попробовал несколько вещей, но не смог заставить их работать. Любая помощь или информация будут полезны.
мой сервер index.js

Код: Выделить всё

    const express = require("express");
const cors = require("cors");
require("dotenv").config();

const app = express();
const PORT = process.env.PORT || 5001;

// Middleware
app.use(cors());
app.use(express.json());

// Import routes
const stripeRoutes = require("./routes/stripe");
app.use("/api/stripe", stripeRoutes);

// Test route
app.get('/api/test', (req, res) => {
res.send('API is working!');
});

// Start server
app.listen(PORT, () => console.log(`Server is running on port ${PORT}`));
мой интерфейс billing.js

Код: Выделить всё

    import React from "react";
import { loadStripe } from "@stripe/stripe-js";
import { Elements } from "@stripe/react-stripe-js";
import { useUser } from '../../context/UserContext';
import axios from 'axios';

const stripePromise = loadStripe("your-publishable-key");

const Billing = () => {
const userContext = useUser();
const subscriptionStatus = userContext?.subscriptionStatus;
const setSubscriptionStatus = userContext?.setSubscriptionStatus;

const handleSubscriptionChange = async (priceId) => {
try {
console.log('Creating checkout session...');
const response = await axios.post('http://localhost:5001/api/stripe/create-
checkout-session', {
name: "Basic Plan",
price: 1000,
successUrl: "http://localhost:3001/success",
cancelUrl: "http://localhost:3001/cancel"
}, {
headers: {
'Content-Type': 'application/json'
}
});
const { id } = response.data;
console.log('Checkout session created:', id);
const stripe = await stripePromise;
const { error } = await stripe.redirectToCheckout({ sessionId: id });
if (error) {
console.error('Error redirecting to checkout:', error);
}
} catch (error) {
console.error('Error creating checkout session:', error);
console.error('Error details:', error.response ? error.response.data :
error.message);
}
};

return (


Billing
Manage your billing information here.
Current subscription status: {subscriptionStatus}

handleSubscriptionChange('price_1Hh1Y2I4s2eZvKYlo2L8U7c2')}>Activate
Subscription

handleSubscriptionChange('price_1Hh1Y2I4s2eZvKYlo2L8U7c3')}>Deactivate
Subscription


);
};

export default Billing;

Код: Выделить всё

    stripe.js:
`
const express = require('express');
const router = express.Router();
const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);

router.post('/create-checkout-session', async (req, res) => {
const { name, price, successUrl, cancelUrl } = req.body;

console.log('Received request to create checkout session');
console.log('Request body:', req.body);

try {
const session = await stripe.checkout.sessions.create({
payment_method_types: ['card'],
line_items: [
{
price_data: {
currency: 'usd',
product_data: {
name: name,
},
unit_amount: price,
},
quantity: 1,
},
],
mode: 'payment',
success_url: successUrl,
cancel_url: cancelUrl,
});

console.log('Checkout session created:', session.id);
res.json({ id: session.id });
} catch (error) {
console.error('Error creating checkout session:', error);
res.status(500).json({ error: error.message });
}
});

module.exports = router;
`
я попробовал изменить заголовок шнура, убедился, что URL-адрес API правильный, перезапустил сервер, но результат все равно тот же

Подробнее здесь: https://stackoverflow.com/questions/793 ... ors-issues
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»