我在整合方面遇到了一些困难 - 并找到了当前的文档 - 将 PayPal PayFlow Pro 整合到我的网站中。
PayFlow Link有一个类似的问题 - https://stackoverflow.com/questions/15808604/result-1-respmsg-userauthenticationfailed-in-test-transaction-for-mastercard - 但我想详细说明。
我想将透明重定向功能与 SILENTTRAN 选项一起使用,以便:
我目前正在阅读这份文件: https://www.paypalobjects.com/webstatic/en_US/developer/docs/pdf/payflowgateway_guide.pdf
此页面上列出了 Payflow Gateway开发人员指南(PDF) - https://developer.paypal.com/webapps/developer/docs/classic/products/payflow-gateway/ - 所以我假设它是当前的文档。
根据第28页,该过程应该是:
以下是透明重定向的安全令牌请求示例。我已使用占位符代替我实际的PayFlow Pro帐户详细信息(此帐户在manager.paypal.com服务摘要中说明了' Payflow SDK / API(完全访问)直播),但我在实际请求中使用了我真实的PayPal凭证。同样,我使用可公开访问的网页作为我的返回网址:
USER=MYUSER&VENDOR=MYUSER&PARTNER=VSA&PWD=MYPASSWORD&BILLTOFIRSTNAME=John&BILLTOLASTNAME=Doe&BILLTOSTREET=123 Fake Street&BILLTOSTREET2=&BILLTOCITY=Sydney&BILLTOZIP=2000&BILLTOPHONENUM=5555555555&EMAIL=me@email.com&BILLTOSTATE=NSW&AMT=0.05&RETURNURL=http://www.example.com&CANCELURL=http://www.example.com&ERRORURL=http://www.example.com&TRXTYPE=A&SILENTTRAN=TRUE&VERBOSITY=HIGH&CREATESECURETOKEN=Y&TENDER=C&SECURETOKENID=VDUOBDNLSXTLYAAAAAATLSEBLAAAAAAAAAA
我使用服务器端代码执行令牌事务,我可以看到我收到的回复是这样的:
RESULT=0&SECURETOKEN=TOKENWASHEREsdsdfjkj&SECURETOKENID=VDUOBDNLSXTLYAAAAAATLSEBLAAAAAAAAAA&RESPMSG=Approved
因此,此处的帐户似乎正确验证。我已在Fiddler中确认我将此请求发布到https://payflowpro.paypal.com。
然后我接受了这个回复并将其放入一个HTML表单中,该表单会回发到网关,例如:
<form id="form" action="https://payflowpro.paypal.com" method="post">
<!-- <input name="MODE" class="inpPPField" id="hdn_pp_mode" type="hidden" value="Test"> -->
<input name="SECURETOKEN" class="inpPPField" id="hdn_pp_securetoken" type="hidden" value="TOKENWASHEREsdsdfjkj">
<input name="SECURETOKENID" class="inpPPField" id="hdn_pp_securetokenid" type="hidden" value="VDUOBDNLSXTLYAAAAAATLSEBLAAAAAAAAAA">
<input name="CARDNUM" class="inpPPField" id="hdn_pp_CardNum" type="hidden" value="4111111111111111">
<input name="EXPMONTH" class="inpPPField" id="hdn_pp_expMonth" type="hidden" value="11">
<input name="EXPYEAR" class="inpPPField" id="hdn_pp_expYear" type="hidden" value="16">
<input name="CVV2" class="inpPPField" id="hdn_pp_cvv2" type="hidden" value="123">
<!--<input name="SILENTTRANS" class="inpPPField" id="hdn_pp_silenttrans" type="hidden" value="Y">-->
<input name="VERBOSITY" class="inpPPField" id="hdn_pp_verbosity" type="hidden" value="HIGH">
<input class="inpPPField" type="submit" value="Submit" />
</form>
</body>
请注意,我使用了与令牌响应中返回的相同的令牌ID和令牌 - 这些是占位符。我还使用了实际的信用卡号和其他信用卡字段值。
这是将我发送到https://payflowpro.paypal.com,它只是说明了回复(在页面正文中):
RESULT = 1&amp; RESPMSG =用户身份验证失败
这不应该让我回到我的错误页面吗?或者它是否在此过程中失败,以便网关甚至不会尝试解释令牌和重定向?我已经尝试将我的返回网址设置为实时网站网址,但它似乎没有什么区别。我也试过从可公开访问的网络服务器而不是localhost发布这个,但结果是一样的。
我遇到的另一个问题是找到相关文档。有一个“付费流程服务测试”&#39;文件在这里: https://ppmts.custhelp.com/app/answers/detail/a_id/456/kw/payflow%20pro%20transparent%20redirect%20error%20page%20get%20codes
此页面的日期为2007年,使用Payflow Pro进行测试标题下的链接(即该指南在x.com上提供)已损坏。该指南有点模糊,我发现的唯一代码示例是PHP(参见https://go.developer.ebay.com/developers/community/blogs/pp_integrations_nate/payflow-transparent-redirect)。我已经将示例中的逻辑重写为ASP.Net应用程序。
总之,我的问题是:
我的下一个想法是尝试使用这些说明设置使用测试帐户: https://ppmts.custhelp.com/app/answers/detail/a_id/929/ 显然这是针对托管的PayFlow页面,但我怀疑只要我指定SILENTTRAN选项,程序应该是相似的。我尝试在本周早些时候让测试帐户工作失败,但这似乎是下一个合乎逻辑的尝试。
我已经开通了PayPal工程师开放的支持券,他们正在研究这个问题,但很高兴知道社区中是否有人设法解决了类似的问题。
编辑:根据PayPal工程师的说法,我只是在安全令牌请求中需要使用 SILENTTRANS 值。我在上面的交易申请表中对此进行了评论,但这并没有解决问题。我们还确认可以使用我的帐户详细信息向https://pilot-payflowpro.paypal.com/执行非安全令牌(即非透明重定向)请求。编辑2:我已被PayPal指示使用https:// payflowlink .paypal.com /(不是https:// payflowpro .paypal.com)对于事务发布URL,但继续使用https://payflowpro.paypal.com作为令牌请求。这确实允许我使用透明重定向进入我的确认页面(这是一个很好的结果),但对我来说,我使用&#39; payflowlink&并不是很有意义。 #39;而不是'payflowpro&#39;网关。我还发现这个教程似乎支持这个https://go.developer.ebay.com/developers/community/blogs/ppintegrationsnate/new-payflow-gateway-tutorial
使用PayFlow Pro透明产品的任何人都可以确认这是正确的(或其他方式)。
答案 0 :(得分:7)
如果您要使用与托管结帐页面相关的任何功能,则需要重定向到 - https://payflowlink.paypal.com
或https://pilot-payflowlink.paypal.com
Payflow Pro网址专门用于API调用,而不是您应该重定向买家的内容。
您的帐户也必须是正确的类型才能使用托管结帐功能。您可以登录并选中右侧以查看您帐户中启用的产品,以查看您的帐户可用的选项。
透明重定向的文档很稀疏。 X.com上有一些帖子,但那些文章尚未被移动到其他地方。