PayPal Payments Advanced--验证发送用于确认和取消页面的参数

PayPal Payments Advanced--验证发送用于确认和取消页面的参数,paypal,Paypal,我正在使用PayPal Payments Advanced with TEMPLATE=TEMPLATEC。我已经知道如何创建IFRAME并从PayPal接收确认/取消/静默的帖子回复。但我找不到任何方法来验证我的确认/取消/静默发布页面收到的参数。有没有办法确保这些参数来自PayPal,而不仅仅是由任意用户发送的?关于最佳选择,您可以在显示iframe之前,针对从PayPal收到的安全令牌和安全令牌ID运行查询事务(TRXTYPE=I)。如果运行了事务,则该调用将从事务中为您提供事务ID(PN

我正在使用PayPal Payments Advanced with TEMPLATE=TEMPLATEC。我已经知道如何创建IFRAME并从PayPal接收确认/取消/静默的帖子回复。但我找不到任何方法来验证我的确认/取消/静默发布页面收到的参数。有没有办法确保这些参数来自PayPal,而不仅仅是由任意用户发送的?

关于最佳选择,您可以在显示iframe之前,针对从PayPal收到的安全令牌和安全令牌ID运行查询事务(
TRXTYPE=I
)。如果运行了事务,则该调用将从事务中为您提供事务ID(PNREF)。(根据您的情况,PNREF可能是您所需要的全部。)如果这与买家返回给您的PNREF相匹配,那么其余数据很有可能是真实的

例如:

请求:
USER=******&VENDOR=******&PARTNER=******&PWD=******&TRXTYPE=I&SECURETOKEN=7tGDq6ILZeEmATCwTXrSRkwjz&SECURETOKENID=76ac5819ee01475daf15b2af038da977&VERBOSITY=HIGH

答复:
RESULT=0&PNREF=E79P4ABEC9DE&TRANSSTATE=8&ORIGRESULT=0&ORIGPNREF=E19P4BFB14B2&RESPMSG=Approved&AUTHCODE=111111&AVSADDR=Y&AVSZIP=Y&CVV2MATCH=Y&CVV2MATCH=Y&ORIGPPREF=1XR06058R58346646&CORRELATIONID=bdd79cb3c7fbb6&PROCAVS=X&proccv2=M&结算日期=2013-04-07:22:06&TRANSTIME=2013-04-2307:22:06&LASTNAME=NotProvided&AMT=24.99&ACCT=3698&EXPDATE=1214&CARDTYPE=0&IAVS=N

ORIGRESULT
是原始事务的结果(
0
是成功的;其他任何操作都是失败的。)


ORIGPNREF
是原始事务的PNREF。

您还可以在静默帖子URL中放置一个长且唯一的“token”参数。差不多

“http://www.my-web-site.com/confirm payment?token=2348349u21034ms39n899”


并将其与服务器端脚本所期望的相同标记进行匹配。由于静默帖子URL存储在您的PayPal manager帐户中,因此令牌是机密的,甚至整个URL也是机密的。此外,交易信息也会传递到此静默post URL,允许您将信息与签出时保存在数据库中的交易进行匹配。这是一个很好的安全方法来确认付款是否正确。在payments advanced iframe(也称为托管结账页面)上,这篇无声的帖子将适用于“使用paypal支付”和“直接信用卡支付”两种方式。此外,您还可以再检查一次,看看PayPal是否是最可靠的(当然,单凭PayPal本身是不可信的)。

谢谢您的建议。我尝试使用
CUSTREF
存储我的订单id。它可以工作(尽管只有在
USER*
参数之前设置)。所以,现在我可以使用
TRXTYPE=I
,它给了我订单id。目前这就是我所需要的。