私はdjangoアプリを持っており、支払いゲートウェイ機能を実装しています。今私が試していたのは
トランザクションが成功した後、応答の詳細を表示する別のページにユーザーをリダイレクトする必要があるためHttpresponseRedirect
、ページをリダイレクトするために使用していますが、応答の詳細response
を含むビューに変数があるため、この変数をコンテキストとして送信する必要がありますテンプレートをレンダリングするリダイレクト URL。これにより、その応答変数を使用して結果を表示できます。
上記の機能のために、私は3つの方法を得ました
- 変数をクエリ パラメータとして送信する (機密性の高いクレジット カード取引の詳細であるため、このメソッドでは安全ではありません)
- 私の場合は機能していないセッションフレームワークを使用すると、コードは以下になります
- 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