我在集成 - 并找到当前文档 - 将 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 页,该过程应为:
以下是用于透明重定向的安全 token 请求的示例。我使用占位符代替了我实际的实时 PayFlow Pro 帐户详细信息(该帐户在 manager.paypal.com 服务摘要中声明了“Payflow SDK/API(完全访问权限)Live”),但我在实际请求。同样,我使用可公开访问的页面作为返回 URL:
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
我使用服务器端代码执行 token 事务,我可以看到我收到了如下响应:
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>
请注意,我使用了与 token 响应中返回的相同的 token ID 和 token - 这些是占位符。我还使用了实际的信用卡号和其他信用卡字段值。
这是将我发布到 https://payflowpro.paypal.com ,它只是说明了响应(在页面正文中):
RESULT=1&RESPMSG=User authentication failed
这不应该让我回到我的错误页面吗?或者它是否在该过程的早期失败,以至于网关甚至从未尝试解释 token 和重定向?我已经尝试将我的返回 URL 设置为实时网站 URL,但似乎并没有什么不同。我还尝试从可公开访问的网络服务器而不是本地主机发布此内容,但结果是相同的。
我遇到的另一个问题是查找相关文档。这里有一个“Payflow Service Testing”文档:
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 值仅在安全 token 请求中是必需的。我已经在上面的交易请求表中对此进行了评论,但这并没有解决问题。我们还确认可以使用我的帐户详细信息向 https://pilot-payflowpro.paypal.com/ 发出非安全 token (即非透明重定向)请求。
编辑 2:PayPal 指示我使用 https:// payflowlink .paypal.com/(不是 https:// payflowpro .paypal.com),但要继续使用 post_a 进行 URL 交易 token 请求。这确实允许我使用透明重定向进入我的确认页面(这是一个很好的结果),但对我来说我使用的是“payflowlink”而不是“payflowpro”并没有多大意义网关。我还发现这个教程似乎支持这个 https://payflowpro.paypal.com
任何人都可以使用 PayFlow Pro 透明产品,请确认这是正确的(或不正确)。
最佳答案
如果您要使用与托管结账页面相关的任何功能,您需要重定向到 - https://payflowlink.paypal.com
或 https://pilot-payflowlink.paypal.com
Payflow Pro URL 专门用于 API 调用,您不应该通过它们重定向买家。
您的帐户还需要是正确的类型才能使用托管结帐功能。您可以通过登录并检查右侧以查看您的帐户启用了哪些产品来检查您的帐户可用的选项。
透明重定向的文档很少。 X.com 上有一些帖子,但这些文章还没有移到其他地方。
关于transactions - 具有透明重定向的 PayPal PayFlow Pro - 用户身份验证失败问题/文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17635386/