Я пытаюсь интегрировать платежный шлюз Razorpay в проект Django-Oscar по умолчанию. Я не уверен, как передать созданный checkout.js идентификатор платежа на сервер Django для захвата платежа.
Насколько я ограниченно понимаю, код checkout.js Razorpay генерирует уникальный идентификатор платежа каждый раз, когда пользователь заполняет платежную информацию и инициирует авторизацию.
from django.conf import settings
from oscar.apps.payment.exceptions import UnableToTakePayment, InvalidGatewayRequestError
import razorpay
class Facade(object):
def __init__(self):
client = razorpay.Client(auth=("rzp_test_XXUUnrrBmW42gL", "32Cqrj2UvxOT24nUbtO7Zacr"))
@staticmethod
def get_friendly_decline_message(error):
return 'The transaction was declined by your bank - please check your bankcard details and try again'
@staticmethod
def get_friendly_error_message(error):
return 'An error occurred when communicating with the payment gateway.'
def charge(self,
order_number,
total,
card,
currency=settings.STRIPE_CURRENCY,
description=None,
metadata=None,
**kwargs):
try:
return client.payment.capture(card, total)
except razorpay.error.CardError as e:
raise UnableToTakePayment(self.get_friendly_decline_message(e))
except razorpay.error.RazorpayError as e:
raise InvalidGatewayRequestError(self.get_friendly_error_message(e))
Поскольку процесс оформления заказа Razorpay аналогичен Stripe, я использовал тот же процесс оформления заказа, что и при интеграции Stripe. Если бы я только мог получить идентификатор платежа, сгенерированный интерфейсом, сбор платежей мог бы быть успешным.
Я пытаюсь интегрировать платежный шлюз Razorpay в проект Django-Oscar по умолчанию. Я не уверен, как передать созданный checkout.js идентификатор платежа на сервер Django для захвата платежа.
Насколько я ограниченно понимаю, код checkout.js Razorpay генерирует уникальный идентификатор платежа каждый раз, когда пользователь заполняет платежную информацию и инициирует авторизацию.
[code]from django.conf import settings from oscar.apps.payment.exceptions import UnableToTakePayment, InvalidGatewayRequestError
import razorpay
class Facade(object): def __init__(self): client = razorpay.Client(auth=("rzp_test_XXUUnrrBmW42gL", "32Cqrj2UvxOT24nUbtO7Zacr"))
@staticmethod def get_friendly_decline_message(error): return 'The transaction was declined by your bank - please check your bankcard details and try again'
@staticmethod def get_friendly_error_message(error): return 'An error occurred when communicating with the payment gateway.'
Поскольку процесс оформления заказа Razorpay аналогичен Stripe, я использовал тот же процесс оформления заказа, что и при интеграции Stripe. Если бы я только мог получить идентификатор платежа, сгенерированный интерфейсом, сбор платежей мог бы быть успешным.