【问题标题】:payment processing with django使用 django 处理付款
【发布时间】:2013-01-22 05:22:52
【问题描述】:

我正在尝试构建允许人们为他们从我的网站获得的服务付费的代码。我已经使用 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 更适用于完整的事务,而不是中间响应。

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

谢谢

【问题讨论】:

    标签: django payment-gateway


    【解决方案1】:

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

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

    返回 HttpResponse(html)

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

    【讨论】:

    • 我在印度。我试过了,它确实渲染了页面。但我认为我面临的问题是,当情况如下时,处理上述模式中的代码的一般方法是什么 - 正确的表单字段是通过 urrlib2.urlopen() 发布的。支付网关供应商将您重定向到您输入 CC 信息的他的网站。提交详细信息后,供应商返回交易的最终状态,然后可以将其存储在自己的数据库中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    • 2018-11-07
    • 2011-12-19
    • 2011-12-11
    • 2011-01-28
    • 2021-10-11
    • 2017-08-18
    相关资源
    最近更新 更多