2012-05-08 125 views
5

上午有很多的麻烦我的脑袋解决此宝付款的东西...贝宝订阅PDT/IPN - 请

如何确认用户已成功注册订阅?

我知道0关于IPN,但例如:如果用户用[email protected]注册我的网站,但使用paypal帐户[email protected]支付,那么我如何匹配用户。

我读过PDT不发送重复(订阅)付款的交易ID(tx)是否正确?

只需要一切帮助...诚实,轻松:)

谢谢。

回答

3

是的,有时很难理解贝宝及其所有文件,但对于任何种类的订阅,我会推荐贝宝IPN。您在您的PayPal帐户中设置IPN URL,例如:http://www.domain.com/ipn.php。然后创建在PayPal帐户的订阅按钮,在这里你可以设定的价格,经常性的价格等

更多关于贝宝IPN你可以在这里阅读: https://www.paypal.com/ipn

在创建PayPal按钮,你还可以添加一些自定义字段这可以帮助您确定哪个客户真正付款。因此,例如,您有一个用户数据库,并且存在userid = 100,username = Nickname和[email protected]的用户。现在您可以决定添加userid = 100作为自定义字段并将其添加到paypal按钮。例如CUSTOM = 100。

ipn.php在这种情况下是一个处理所有逻辑的脚本。当用户付款时,Paypal将任何状态发送到http://www.domain.com/ipn.php(您在PayPal账户中将其设置为IPN URL)。所以在这种情况下,ipn.php需要检查付款是否完成,状态是否正常。然后检索一个CUSTOM字段($ _POST ['custom']),在这种情况下为100(userid)。然后更新您的数据库与用户,并以某种方式标记该用户支付当然,如果状态是完成。

希望这会有所帮助。但在这种情况下,从哪个PayPal账户用户支付并且哪些在您的数据库中注册并不重要。所有你需要的是你以某种方式将它链接在一起。在这种情况下,用户名或类似的东西。

+0

在使用沙盒测试的情况下,哪些返回的URL和帐户应该使用?谢谢 –

+0

是的,这是另一种痛苦:)你注册一个新的沙箱帐户使用您的真实电子邮件地址(https://developer.paypal.com/)。之后,您将您的电子邮件和密码登录到paypal SANDBOX帐户,然后您可以在那里创建不同的TEST帐户。您可以创建一个商业账户,例如一个或多个个人账户。请记住,这只是TEST帐户,但真正用作真实帐户。一旦你进入Pay​​Pal沙箱,点击新建立的商业账户,并设置IPN网址,就像真正的Paypal账户一样。您也可以在那里生成付款按钮。 – StudioArena

+0

然后创建至少一个TEST用户的帐户,以便您可以尝试付款是否真的有效。测试时,只需将该按钮的HTML源代码从business = YOUR_REAL_EMAIL_or_YOUR_REAL_BUSINESS_CODE更改为商业TEST帐户(从PayPal沙箱)的电子邮件地址或业务代码即可。同样在您的IPN文件(ipn.php - 您将其设置为IPN URL)中,您需要更改将数据发送回PayPal的URL。所以,而不是真正的贝宝URL你使用沙箱网址。点击这里查看PHP示例:https://cms.paypal.com/cms_content/US/en_US/files/developer/IPN_PHP_41.txt – StudioArena

2

如果你想实现贝宝IPN和您的客户不要使用相同的电子邮件从我的经验,你可以使用窗体验证用户

  • 用户登录您的网站上有[email protected]
  • 用户点击您的项目,并与[email protected]支付
  • 他付出,才能将他重定向到一个表单,他们可以与网站账户
  • 是用者自付那么你的IPN将每次合并Paypal帐户后由他提供的信息覆盖
  • 您应该保存他的付款信息以备后用。