0

我没有典型的商店,您事先知道自己在卖什么。我在旅途中创建了人们可以购买的定制产品(需要填写几个表格),所以在他们离开贝宝支付网站之前(我使用 Paypal Standard 和 django-paypal 没有问题)我需要将产品存储在DB,因此如果付款,它会使用发票号与 IPN 相关联。

即使用户没有按下“立即购买”按钮,我也可以存储用户所做的每一个组合,但这样数据库就会增长得太快。我知道我可以让一个 cron 进程删除那些未付款的产品。但老实说,我对贝宝很陌生,而且 IPN 有时会失败,所以我最终可能会得到一个付费的产品,而我在数据库中已经没有了,所以退款将是唯一的选择,这意味着失去了生意。

任何人都知道如何解决这个问题?我唯一能想到的就是操纵 django-paypal 的表单来调用我自己的视图,该视图存储产品,然后手动将表单发布到 paypal。

4

1 回答 1

0

我自己也有类似的问题。这是我遵循的路径:

我创建了一个包含贝宝按钮图像的页面,但它只是将最终产品信息提交到我的网站。那时,我将用户询问的内容保存在数据库中,并返回一个包含贝宝表单的页面,并在加载时自动提交。就是这样

<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() 可以让我用它的输出替换上面所有的 paypal 表单内容。唯一的问题可能是我宁愿页面中没有任何可见的东西(除了“如果此表单没有将您重定向到贝宝,请单击此处..),这意味着我可能需要修改渲染功能因此它可以选择允许覆盖按钮显示.. 或者在文档加载时删除带有一些 js 的按钮..

抱歉缺少详细信息,但我还没有完成的代码/产品)。

让我知道这是否有帮助。

迪奥梅德斯

于 2011-03-16T23:45:07.090 回答