我有一个 django 应用程序并实现了支付网关功能。现在我正在尝试的是
成功转换后,需要将用户重定向到显示响应详细信息的另一个页面,因此我正在使用HttpresponseRedirect
重定向页面,但我response
在视图中有包含响应详细信息的变量,所以我需要将此变量作为上下文发送到呈现模板的重定向 url,以便我可以使用该响应变量来显示结果。
所以对于上述功能,我有三种方法
- 将变量作为查询参数发送(在此方法中不安全,因为它是敏感的信用卡交易详细信息)
- 使用在我的情况下不起作用的会话框架,代码如下
- Django 消息传递框架(在这种情况下不是很有用)
视图.py
def payment(request):
amount = 1
if request.method == 'POST':
form = CreditCardForm(request.POST)
if form.is_valid():
data = form.cleaned_data
...........
...........
response = stripe.payment_purchase(amount,data)
request.session['response'] = response
return HttpResponseRedirect(reverse('paygate:payment_success'))
else:
form = CreditCardForm(initial={'number':'4242424242424242'})
return render_to_response('payment/stripe_payment_form.html',{'form': form,
'response':response,},
context_instance=RequestContext(request))
payment_success url 视图
class PaymentSuccess(TemplateView):
template_name = 'payment/payment_success.html'
我试图访问response
模板中的变量,但什么也没显示
payment_success.html
{% extends "base.html" %}
{% block main_title %}Payment{% endblock %}
{% block title %}Success{% endblock %}
{% block content %}
<h1>Response Details</h1>
<p>Your status is <span>{{ request.session.response }}</span></p>
{% endblock %}
credit card payment details
因此,任何人都可以让我知道将上下文变量(在这种情况下)发送到使用方法重定向 url的各种不同的安全HttpResponseRedirect
方法