0

私は、人々が私の Web サイトから得られるサービスに対して支払いを行えるようにするコードを作成しようとしています。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,
})

私が直面している問題は、フォームが正常に送信され、支払いゲートウェイが、このフォーム POST への応答でユーザーがクレジット カードの詳細などを選択するのに役立つ大量の html で応答することです (details that i am not)。私のウェブサイトで収集します)。これは all_results (f.read()) で確認できます。

私の質問は、フォーム POST の結果としてこれを取得するため、ユーザーにこのページを表示するにはどうすればよいかということです。この応答を html ファイルに保存し、HTTPResponse をそのページにリダイレクトする必要があります。HTTPResponseRedirect は完全なトランザクション用であり、中間応答用ではないと想定しています。

では、基本的に、ユーザーがペイメントゲートウェイサイトに送られ、手続きが完了した後に私のサイトに戻ってくる状況をどのように処理すればよいでしょうか?

ありがとう

4

1 に答える 1

1

まず、米国に住んでいるなら、Stripe (または同様のもの) をチェックしてください。お支払いプロセスの説明方法は、少し複雑すぎるようです。

そうは言っても、(そして私はこれが事実であるとは思えませんが)ほとんどから返されたHTMLがあなたのウェブサイトに表示するのに正しいフォーマットであれば、それをHttpResponse(スプリントでなければなりません)に貼り付けることができます。

HttpResponse(html)を返す

それ以外の場合は、BeautifulSoup、Scrape.py、または同様のものを使用して RAM 内でフォーマットしてから、HttpResponse を使用します。変更のためにファイルシステムに書き込むことはありません。

于 2013-01-22T05:29:32.123 に答える