Fastapi и vue интегрируют полосы платежей, могу ли я отказаться от элементов полосы?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Fastapi и vue интегрируют полосы платежей, могу ли я отказаться от элементов полосы?

Сообщение Anonymous »

В настоящее время наш проект использует FastAPI в качестве серверной части и Vue в качестве внешнего интерфейса. Мы генерируем идентификатор платежного намерения на серверной стороне, а внешний интерфейс создает соответствующий платеж, используя этот идентификатор. После успешной оплаты вебхук Stripe отправляет событие во внутренний API. Однако мы столкнулись с некоторыми проблемами во время процесса оплаты на внешнем интерфейсе. Сначала я опубликую код:
Бэкэнд-код:

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

@router.post("/create_payment_intent")
async def create_payment_intent(
request: Request,
order_id: str = Form(...),
order_amount: int = Form(...),
currency: str = Form("gbp")
):
metadata = {
'user_id': "",
'order_id': order_id
}
# Create payment intent
intent = stripe.PaymentIntent.create(
amount=order_amount,
currency=currency,
receipt_email=user_email,
metadata=metadata,
automatic_payment_methods={'enabled': True}
)

res = {
"client_secret": intent.client_secret,
"payment_intent_id": intent.id
}
return JSONResponse(RestResult(code=Code.TRUE, msg=Message.SUCCESS_CREATE_PAYMENT_INTENT, data=res).__dict__)
Код интерфейса:

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

import { RequestApi } from '@/api/RequestApi';
import { loadStripe } from '@stripe/stripe-js';

export class StripeUtil {
static pay(params: any) {
return new Promise((resolve, reject) => {
RequestApi.createPayment(params).then(async res => {
const stripe = await loadStripe(import.meta.env.VITE_STRIPE_KEY);
if (!stripe) {
return reject('stripe load failed');
}
const { client_secret, payment_intent_id } = res.data;

const { error } = await stripe.confirmPayment({
clientSecret: client_secret,
confirmParams: {
payment_method: payment_intent_id,
return_url: 'https://example.com/order/123/complete',
},
});
if (error.type) {
showDialog({ message: error.message }).then();
reject(error.message);
}
}).catch(error => {
return reject(error);
});
});
}
}
Сообщение об ошибке:

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

{
"code": "resource_missing",
"doc_url": "https://stripe.com/docs/error-codes/resource-missing",
"message": "No such PaymentMethod: 'pi_...'; It's possible this PaymentMethod exists on one of your connected accounts, in which case you should retry this request on that connected account.  Learn more at https://stripe.com/docs/connect/authentication",
"param": "payment_method",
"payment_intent": {
"id": "pi_...",
"object": "payment_intent",
"amount": 1512,
"amount_details": {
"tip": {}
},
"automatic_payment_methods": {
"allow_redirects": "always",
"enabled": true
},
"canceled_at": null,
"cancellation_reason": null,
"capture_method": "automatic_async",
"client_secret": "pi_..._secret_...",
"confirmation_method": "automatic",
"created": 1731412378,
"currency": "gbp",
"description": null,
"last_payment_error": null,
"livemode": false,
"next_action": null,
"payment_method": null,
"payment_method_configuration_details": null,
"payment_method_types": [
"card"
],
"processing": null,
"receipt_email": "[email protected]",
"setup_future_usage": null,
"shipping": null,
"source": null,
"status": "requires_payment_method"
},
"request_log_url": "https://dashboard.stripe.com/test/logs/req_fsqWt4IIR3rXhM?t=1731412381",
"type": "invalid_request_error"
}
Из сообщения об ошибке видно, что ошибка указывает на require_pay_method. Однако как следует создавать метод Payment_method? Ключевой вопрос заключается в том, что мы не планируем использовать Stripe’s Elements для сбора информации о картах пользователей. Как нам с этим справиться? Я проверил документацию Stripe, но не нашел подходящего решения, возможно, из-за моего ограниченного владения английским языком и отсутствия некоторой ключевой информации.
Я надеюсь получить некоторые рекомендации. Заранее большое спасибо за вашу помощь, особенно за то, что нашли время помочь мне в вашем плотном графике. Ваша поддержка и идеи очень ценятся. Спасибо большое!

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

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

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

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

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

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