2

摘要:我想用returnUrl作为交易已被PayPal接受的证明。

我正在实施一个基于 PayPal 的非常基本的购买工作流程。

一切正常,用户点击pay,用户转到 PayPal,PayPal 将用户发送到我的returnURL ...我在最后一步接受付款。

我知道我必须实现一个IPN端点并在那里接受付款,但是这个项目非常基础,而且我太老或太懒了,无法实现所有这些异步行为,这可能是一种极端情况。

如果我能让returnUrl更加自信,难以伪造,那就太好了。

我在想,在returnURL中可能会包含一个校验和签名,该签名基于存储在 PayPal 帐户和实际交易令牌中的密钥

我不知道这是否存在,我没有在文档中找到任何这些,欢迎任何使returnUrl更有信心的建议。

此外,如果有人认为我完全错了,并且returnUrl永远不会成为交易已被接受的证据,请表达你自己。

4

2 回答 2

2

当您只是在执行返回 URL 时,您需要再次发布到 PayPal 以使用您的 PDT 令牌验证交易。

假设您的返回 URL 是Thanks.aspx:

“从Thanks.aspx 的代码隐藏中,您将解析tx 值并使用以下参数向https://www.paypal.com/cgi-bin/webscr进行HTTP POST :cmd=_notify-synch&tx= [TransactionID]&at=[PDTIdentityToken]。”

这将响应该请求是否有效。

问题是不能保证这个页面会被点击。用户可以关闭他们的浏览器,或者他们的互联网可能会被切断,或者其他任何事情。

IPN 将受到 PayPals 服务器的攻击,你真的无法击败它。

它很容易设置,但我建议通读本文档,该文档将解释 PDT 和 IPN 方法,并提供一种简单的方法来确定您需要什么。

http://www.codeproject.com/Articles/42894/Introduction-to-PayPal-for-C-ASP-NET-developers?msg=4382854#xx4382854xx

于 2013-05-28T20:45:12.143 回答
0

在完成 Express Checkout 的安装后,我意识到它是如何被利用的。

即使我正在创建一个唯一的发票编号并返回以将其标记为已付款,我发现它仍然可能被用户更改返回链接中的发票参数所利用。当然,已经有检查以确保任何发票只能支付一次,但我需要让它成为黑客证明。

所以我最后要做的是添加一些额外的检查以确保有问题的发票是分配给该用户的最后一张发票。是的,在访问 Paypal 并返回后,会保持相同的会话 ID。

于 2013-07-25T17:51:33.690 回答