0

何を売っているのか事前にわかっている典型的な店はありません。私は外出先でカスタム製品を作成し (いくつかのフォームに記入する必要があります)、人々が購入できるようにするため、PayPal 支払い Web サイトに移動する前に (問題なく django-paypal で Paypal Standard を使用しています)、製品をDB、したがって、支払いの場合、請求書番号を使用して IPN に関連付けられます。

「今すぐ購入」ボタンを押さなくても、ユーザーが作成したすべての組み合わせを保存できますが、DB が急速に大きくなりすぎます。cron プロセスで未払いの製品を削除できることはわかっています。しかし、正直なところ、私はペイパルにまったく慣れておらず、IPNが時々失敗するため、DBにもうない製品が支払われる可能性があるため、払い戻しが唯一の選択肢になります。つまり、ビジネスを失いました。

誰でもこれを解決する方法について何か考えがありますか? 私が考えることができる唯一のことは、django-paypalのフォームを操作して自分のビューを呼び出し、製品を保存してから手動でフォームをpaypalに投稿することです。

4

1 に答える 1

0

私自身も同様の問題を抱えています。これが私がたどっている道です:

Paypal ボタンの画像を含むページを作成しますが、最終的な製品情報をサイトに送信するだけです。その時点で、ユーザーが要求した内容を DB に保存し、paypal フォームを含むページとロード時の自動送信で応答します。そのように

<head>
<script src="{{ STATIC_URL }}js/jquery.js"></script>
  <script>
  $(document).ready(function () {
  $("#paypalform").submit() 
});
  </script>
</head>

<form id="paypalform" name="_xclick" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
    <input type="hidden" name="cmd" value="_xclick">
    <input type="hidden" name="business" value="boo_1300035015_biz@foo.com">
    <input type="hidden" name="amount" value="0.20">
    <input type="hidden" name="custom" value="{{translation.id}}">
    <input type="hidden" id="quantity" name="quantity" value="{{translation.cnt_words}}">
    <input type="hidden" name="item_name" value="Some Name">
<img alt="" border="0" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>

</script>

django_paypal を見ると、 form.render() を使用すると、上記のすべてのペイパル フォームをその出力に置き換えることができるようです。唯一の問題は、ページに何も表示されないようにしたいということです (「このフォームでペイパルにリダイレクトされない場合はここをクリックしてください..」以外に)。つまり、レンダリング機能を変更する必要があるかもしれません。オプションでボタン表示のオーバーライドを可能にするため....または、ドキュメントの読み込み時にいくつかのjsを使用してボタンを削除することもできます..

詳細が不足していて申し訳ありませんが、完成したコード/製品はまだありません)。

それが役立つかどうか教えてください。

ディオメデス

于 2011-03-16T23:45:07.090 に答える