【问题标题】:How to get SecureToken using Payflow Gateway SDK for Payflow Link integration如何使用 Payflow Gateway SDK 获取 SecureToken 以进行 Payflow Link 集成
【发布时间】:2014-06-16 01:46:21
【问题描述】:

我试图弄清楚如何使用 PayPal Payflow Gateway SDK 接收要在 Payflow Link IFrame 中使用的 SecureToken。我还在使用 Paypal 的 Layout C,以便用户在 PayPal IFrame 中输入他们的信用卡信息,同时它嵌入到我的网站中(从而防止我的网站有 CC 信息)。

为 IFrame 生成 HTML 的代码最好如下所示:

iframeHTML = "<iframe src='https://payflowlink.paypal.com?SECURETOKEN="
    + secureToken + "&SECURETOKENID=" + secureTokenID + "&MODE=" + mode
    + "' width='490' height='565' border='0' frameborder='0' scrolling='no'"
    + " allowtransparency='true'>\n</iframe>";

我已经阅读了Developer Guide 并且一直无法找到我可以使用的对象。我尝试过创建各种交易,但它们都需要发送投标(完整的信用卡信息)。我也查看了PayPal's Payflow Gateway SDK Example not workingHow to get secure token when using "Hosted Checkout Pages" and RestApiSDK - ASP.Net 的问题,但找不到我想要的答案。

我是否缺少某些对象或功能?我不希望使用名称-值集合并手动创建请求和响应来检索 SecureToken,但如果这是唯一的方法。

【问题讨论】:

    标签: asp.net paypal payment-gateway payflowlink


    【解决方案1】:

    在深入挖掘之后,我最终在 SDK 中找到了一个名为“ExtendData”的对象,并且能够将这些实例添加到我的事务中以获得所需的令牌。它将该信息附加到请求字符串中,因此您可以将 ExtendData 用于您将为其创建名称/值对的任何内容,该名称/值对尚未在 SDK 中指定。

    var edCreateSecureToken = new ExtendData("CREATESECURETOKEN", "Y");
    var edSecureTokenID = new ExtendData("SECURETOKENID", strRequestID);
    
    var transaction = new SaleTransaction(payPalUser, payflowConnection, invoice, null, strRequestID);
    transaction.AddToExtendData(edCreateSecureToken);
    transaction.AddToExtendData(edSecureTokenID);
    
    Response response = transaction.SubmitTransaction();
    
    string token = string.Empty;
    if (response != null && response.TransactionResponse != null && response.TransactionResponse.Result == 0)
    {
        token = (from ExtendData test in response.ExtendDataList
                 where test.ParamName == "SECURETOKEN"
                 select test.ParamValue).FirstOrDefault();
    }
    
    paypalContent.InnerHtml = "<iframe src='https://payflowlink.paypal.com?SECURETOKEN=" + token + "&SECURETOKENID=" +
                  strRequestID + "&MODE=" + Config.PayflowMode +
                  "' width='490' height='565' border='0' frameborder='0' scrolling='no' allowtransparency='true'>\n</iframe>";
    

    这似乎工作正常(布局 C 显示嵌入在我的页面中,没有错误)并且允许我避免指定投标。

    【讨论】:

      【解决方案2】:

      以下是直接来自 PayPal 开发者网站的一些示例代码,它将帮助您创建安全令牌 ID:

      curl https://pilot-payflowpro.paypal.com -kd
      "PARTNER=PayPal&
      VENDOR=MyMerchantID&
      USER=UserID&
      PWD=UserPassword&
      TRXTYPE=S&
      AMT=40&
      CREATESECURETOKEN=Y&
      SECURETOKENID=12528208de1413abc3d60c86cb15"
      

      以下是有关设置托管结帐页面的信息: Hosted Checkout Pages

      【讨论】:

      • 感谢您的调查,但我应该知道我也发现了这一点。不幸的是,它使用了不属于 Payflow SDK 的 Curl。它很可能比使用我自己的流读取器/流写入器来执行请求/响应更好,所以如果它最终成为最佳解决方案,我会将其标记为已接受的答案。
      猜你喜欢
      • 2020-09-23
      • 2012-02-28
      • 2014-09-12
      • 2015-04-29
      • 2018-06-14
      • 2019-12-04
      • 2015-09-11
      • 2021-07-23
      • 2016-07-04
      相关资源
      最近更新 更多