0

我正在尝试构建允许人们为他们从我的网站获得的服务付费的代码。我已经使用 django 中可用的 forms.Form 模型构建了表单。我还使用以下模式来构建我的视图。

if request.method == 'POST'
    form = ContactForm(request.POST) 
    if form.is_valid(): # All validation rules pass
        conn = urllib2.Request(payment_gateway_url,urllib.urlencode(my_dat_in_dict))
        f= urrlib2.urlopen(conn)
        all_results=f.read()

        return HttpResponseRedirect('/thanks/') # Redirect after POST
else:
    form = ContactForm() # An unbound form

return render(request, 'contact.html', {
    'form': form,
})

我面临的问题是我的表单提交正常,支付网关用一大堆 html 回复我,帮助用户在响应此表单 POST 时选择信用卡详细信息等(我不是的详细信息在我的网站上收集)。我可以在 all_results (f.read()) 中看到这一点。

我的问题是我如何向用户显示此页面,因为我是通过我的表单 POST 得到的。我是否应该将此响应保存在 html 文件中并将 HTTPResponse 重定向到该页面。我假设 HTTPResponseRedirect 更适合完整的事务,而不是中间响应。

那么,基本上我该如何处理用户将被发送到支付网关站点然后在完成程序后返回我的站点的情况?

谢谢

4

1 回答 1

1

首先,我想说,如果你住在美国,请查看 Stripe(或类似的东西)。您描述付款流程的方式似乎有点过于复杂。

话虽如此,如果(我怀疑是这种情况),从大多数返回的 HTML 以正确的格式显示在您的网站上,您可以将其粘贴到 HttpResponse(必须是 sprint)

返回 HttpResponse(html)

否则,使用 BeautifulSoup、Scrape.py 或类似的东西在 RAM 中对其进行格式化,然后使用 HttpResponse。我不会将其写入文件系统进行修改。

于 2013-01-22T05:29:32.123 回答