8

我在将PayPal PayFlow Pro集成到我的网站时遇到了一些困难 - 并找到了当前文档。

PayFlow Link 这里有一个类似的问题 - https://stackoverflow.com/questions/15808604/result-1-respmsg-userauthenticationfailed-in-test-transaction-for-mastercard - 但我想深入了解细节。

我想将透明重定向功能与SILENTTRAN选项一起使用,以便:

  1. 信用卡数据直接发送到网关(即不通过我的服务器)
  2. 用户被重定向回指定页面以确认交易或错误(响应页面)。

我目前正在阅读这份文件: 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 页,该过程应为:

  1. 客户点击购买在您的网站上购买商品。[完毕]
  2. 您通过将安全令牌 ID 传递给网关服务器来请求安全令牌。在请求中,您传递名称-值对 SILENTTRAN=TRUE。此名称-值对阻止显示托管页面。[完毕]
  3. 网关服务器将安全令牌和您的令牌 ID 返回到您的网站。[完毕]
  4. 您在网站的结帐页面中向客户显示信用卡字段。[完毕]
  5. 客户在信用卡字段中输入他们的信用卡号、到期日期和其他敏感数据,然后单击提交。[完成] 浏览器将支付数据直接发布到网关服务器,避开您的网站并放宽您的 PCI 合规要求。[这里的问题]

以下是透明重定向的安全令牌请求示例。我使用占位符代替我实际的实时 PayFlow Pro 帐户详细信息(此帐户在 manager.paypal.com 服务摘要中声明“Payflow SDK/API(完全访问)实时”),但我在实际要求。同样,我使用可公开访问的页面作为返回 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

我使用服务器端代码执行令牌事务,我可以看到我收到了这样的响应:

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&RESPMSG=用户认证失败

这不应该让我回到我的错误页面吗?或者它是否在流程的早期失败,以至于网关甚至从不尝试解释令牌和重定向?我尝试将我的返回 URL 设置为实时网站 URL,但似乎没有什么不同。我也尝试过从可公开访问的网络服务器而不是本地主机发布此内容,但结果是一样的。

我遇到的另一个问题是查找相关文档。这里有一个“Payflow 服务测试”文档: 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 应用程序。

总之,我的问题是:

  1. 我是否使用正确的逻辑来处理信用卡交易?
  2. 如果没有,有人可以指出我哪里出错了,我在哪里可以找到最相关和最新的文档
  3. 最新测试程序文档的链接

我的下一个想法是尝试使用以下说明设置使用测试帐户: 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用于令牌请求。这确实允许我使用透明重定向进入我的确认页面(这是一个很好的结果),但我使用“payflowlink”而不是“payflowpro”对我来说没有多大意义网关。我还发现本教程似乎支持此https://go.developer.ebay.com/developers/community/blogs/ppintegrationsnate/new-payflow-gateway-tutorial

任何人都可以使用 PayFlow Pro 透明产品,请确认这是正确的(或其他)。

4

1 回答 1

8

如果您要使用与托管结帐页面相关的任何功能,您需要重定向到 -https://payflowlink.paypal.comhttps://pilot-payflowlink.paypal.com

Payflow Pro URL 专门用于 API 调用,您不应该通过它们来重定向买家。

您的帐户还需要是正确的类型才能使用托管结帐功能。您可以通过登录并检查右侧查看您的帐户启用了哪些产品来查看您的帐户可用的选项。

透明重定向的文档很少。X.com 上有几篇文章,但这些文章还没有移到其他地方。

于 2013-07-17T14:47:51.677 回答