摘要:我想使用 returnUrl 作为PayPal接受交易的证据。
我实施了基于PayPal的非常基本的购买流程。
一切正常,用户点击支付,用户转到PayPal,PayPal将用户发送到我的 returnURL ...我接受了最后一步付款。
我知道我必须实现一个 IPN 端点并接受那里的付款,但这个项目非常基础,而且我太老或太懒,无法实现所有这些异步行为可能是一堆边缘案件。
如果我只是让 returnUrl 更自信,更难以伪造,那会很好。
我原以为 returnURL 中可能存在基于密钥存储的校验和签名的可能性在PayPal帐户和实际交易令牌
中我不知道这是否存在,我在文档中找不到任何此类内容,欢迎任何使 returnUrl 更自信的建议。
如果有人认为我完全错了,并且 returnUrl 永远不会证明交易已被接受,请表达自己。
答案 0 :(得分:2)
当您刚刚执行返回URL时,您需要再次发布到PayPal以使用您的PDT令牌验证交易。
说你的回复网址是Thanks.aspx:
“从Thanks.aspx的代码隐藏中,您将使用以下参数解析tx值并使用https://www.paypal.com/cgi-bin/webscr进行HTTP POST:cmd = _notify-synch& tx = [TransactionID]&在= [PDTIdentityToken]“。
这将回应该请求是否有效。
问题是此页面无法保证会被点击。用户可以关闭他们的浏览器,或者他们的互联网可能被切断,或其他任何东西。
IPN将受到PayPals服务器的攻击,你真的无法击败它。
设置非常简单,但我建议阅读本文档,该文档将解释PDT和IPN方法,并提供一种简单的方法来确定您的需求。
答案 1 :(得分:0)
完成Express Checkout的安装后,我意识到它可以被利用。
即使我创建了一个唯一的发票编号并返回标记为已付款,我发现它仍然可以被用户更改返回链接中的invoice参数来利用。当然已经有检查以确保任何发票只能支付一次,但我需要进行黑客证明。
所以我最后做的是添加一些额外的检查以确保相关发票是分配给该用户的最后一张发票。是的,访问Paypal后返回相同的会话ID。