【发布时间】:2022-01-25 09:27:14
【问题描述】:
请帮忙! 我正在用 Django 编写一个简单的捐赠网站。 我想使用 LiqPay 支付系统。
我已经描述了一个从用户那里获取数据的表单(默认捐赠), 但我不知道如何将这些数据传递给另一个函数(PayView 类,def get)
我尝试创建一个用户,然后从中获取“金额”字段,但我不想强迫用户注册。
'PayView' 在 'def 捐赠' 中的 'submit' 之后立即呈现
我的代码:
views.py
def donation(request):
if request.method == 'POST':
form = CheckoutForm(request.POST)
if form.is_valid():
Donation.objects.create(**form.cleaned_data)
return redirect('pay_view')
else:
form = CheckoutForm()
return render(request, 'donation/donation.html', {'form': form})
class PayView(TemplateView):
template_name = 'donation/pay.html'
def get(self, request, *args, **kwargs):
liqpay = LiqPay(settings.LIQPAY_PUBLIC_KEY, settings.LIQPAY_PRIVATE_KEY)
params = {
'action': 'pay',
'amount': '1',
'currency': 'UAH',
'description': 'Допомога фонду',
'order_id': 'order_id_1',
'version': '3',
'sandbox': 1, # sandbox mode, set to 1 to enable it
'server_url': '', # url to callback view
}
signature = liqpay.cnb_signature(params)
data = liqpay.cnb_data(params)
return render(request, self.template_name, {'signature': signature, 'data': data})
forms.py
from django import forms
class CheckoutForm(forms.Form):
amount = forms.IntegerField()
first_name = forms.CharField()
last_name = forms.CharField()
phone = forms.CharField()
email = forms.EmailField()
抱歉这个愚蠢的问题。我对此很陌生。
谢谢!
【问题讨论】: