【问题标题】:Paypal subscription process flowPaypal订阅流程
【发布时间】:2015-12-09 15:18:19
【问题描述】:

我在 Django 中使用 paypal。这就是场景。 用户已登录,他还没有为服务付费。付款后,我必须将他的用户资料更新为“已付款 = True”。然后他就可以访问整个网站。

我很难理解这必须如何与贝宝集成。我使付款成功。但是,当 paypal 向用户收费时,我的服务器如何知道它将是哪个用户呢?

我认为必须有一个字段供我发送到贝宝,例如用户 ID,然后贝宝在付款时必须将其发送给我,这样我才能看到它是哪个用户?

您如何使用 paypal 实现这一点?

创建按钮

paypal_dict = {
    "cmd": "_xclick-subscriptions",
    "business": settings.PAYPAL_RECEIVER_EMAIL,
    "a3": "5.00",                      # monthly price
    "p3": 1,                           # duration of each unit (depends on unit)
    "t3": "M",                         # duration unit ("M for Month")
    "src": "1",                        # make payments recur
    "sra": "1",                        # reattempt payment on payment error
    "no_note": "1",                    # remove extra notes (optional)
    "item_name": "Test monthly subscription",
    "notify_url": "http://localhost:8000/payment/",
    "return_url": "http://localhost:8000/",
    "cancel_return": "http://localhost:8000/",
    "custom":request.user.get_profile().pk
}

# Create the instance.
ppform = PayPalPaymentsForm(initial=paypal_dict, button_type="subscribe")

【问题讨论】:

标签: django django-paypal


【解决方案1】:

我认为payer id 应该适合您的需求。

付款人对象

此对象包含有关付款人的信息,包括付款 方法、资金工具和付款人的详细信息。

您可以保存 id,并将其与您的用户连接,然后您将知道应该向哪个用户收费,并使用此 id 向 PayPal 提出请求

这里是link了解更多信息。

【讨论】:

  • 首先如何将payer_id 连接到正确的用户?
  • @knbk 你的意思是在第一次付款之前?
  • 用户按下按钮,转到贝宝,付款,这时您第一次收到payer_id。我只是不确定如何将您在第一个 IPN 中首次收到的payer_id 连接到用户,您只有在生成按钮时才知道。
  • 这么多,您如何将注册与用户联系起来?
  • 是的,我明白了。我似乎在这一点上你是对的。他需要在订阅按钮中添加一些独特的值,提交后将从贝宝返回到服务器,并提供识别用户的机会。像
【解决方案2】:

您可以将"invoice" 设置为每个用户的唯一值。确保该值以某种方式保存并连接到用户。该特定订阅的每个 PayPal IPN 都将包含您通过 paypal 按钮发送的发票 ID。

HTML Variables for Recurring Payments Buttons

【讨论】:

  • 应该放在paypal_dict中吗?
  • "invoice":request.user.pk 是我的想法
  • PayPal sais : 此发票已支付。如需更多信息,请联系商家。
  • 每个订阅的发票必须是唯一的。我会为用户创建一个带有 FK 的模型,它会保存一个您可以使用的随机 uuid。这样,如果他们取消了他们的第一个订阅并稍后获得一个新订阅,您将不会有任何问题。
  • 发票参数会在信号中得到,对吧?知道这里有什么问题:stackoverflow.com/questions/32551562/…
猜你喜欢
  • 2013-08-20
  • 2010-11-08
  • 2018-06-11
  • 2012-08-03
  • 2016-03-31
  • 2015-01-08
  • 2014-04-07
  • 2021-08-19
  • 2020-12-05
相关资源
最近更新 更多