【问题标题】:Paypal Digital Goods Using startFlow Method For Dynamic List Of Items?Paypal Digital Goods 使用 startFlow 方法获取动态项目列表?
【发布时间】:2012-12-01 17:48:39
【问题描述】:

我还在尝试给同一只猫剥皮:Controlling order of javascript execution PayPal Objects

简而言之,我有一个可供购买的数字歌曲数据库。我想要一个不断变化的列表,比如 50 首歌曲供购买。

Paypal 的文档非常糟糕 IMO。并且示例 - 每个人 - 似乎都需要硬编码您要出售的元素(按钮)的 ID,因为您需要页面页脚中的脚本来实际“触发”对 PayPal 的调用

<script type="text/javascript">
  var embeddedPPFlow1 = new PAYPAL.apps.DGFlow( {trigger : 'buysong_1'});
</script>

...因此,如果您有 50 个“购买”按钮,则需要在加载时在页脚中声明 50 个 PAYPAL.apps.DGFlow 对象,并且它们当然必须具有正确的 ID。这使得从数据库中提取不同的项目有点棘手(更不用说制作非常重的页面了。)

PayPal 文档表明应该能够通过使用单个对象但使用 URL 和 startFlow 方法而不是触发器来解决此问题,但他们的网站上没有示例,我在互联网上找不到任何工作示例.

embeddedPPFlow = new PAYPAL.apps.DGFlow();
// url = (paypal url?)
this.embeddedPPFlow.startFlow(url);

但我不知道 URL 应该是什么......是从 PayPal 获得的令牌吗?如果是这样,在调用 PayPal NVP 之前如何获得令牌?

简而言之:-someone- 是否有一个可行的示例,或者知道如何将 startFlow 与动态分配的购买按钮一起使用?我曾尝试在 X 开发者论坛上发帖,但没有收到任何回复。

【问题讨论】:

    标签: paypal express-checkout digital paypal-digital-goods


    【解决方案1】:

    我在搜索相同内容时偶然发现了您的问题,并找到了对我有用的答案,我希望这会有所帮助....

    网址是您要在灯箱内调用的位置。根据您使用的 API(和 SDK)而有所不同。就我而言,我使用的是 Merchant API SDK。 https://github.com/paypal/merchant-sdk-php

    SDK里面有一个文件DGsetExpressCheckout.php,文件底部是url:

    https://www.sandbox.paypal.com/incontext?token=$token
    

    我不太确定“incontext”部分是什么意思,但是当我使用该链接(以及最后的令牌)时,PayPal 想通了并定向到:

    https://www.sandbox.paypal.com/webapps/checkout/webflow/sparta/expresscheckoutvalidatedataflow?execution=e1s3
    

    这允许登录和支付流程的其余部分。

    我的 JavaScript 看起来像这样(使用 jQuery):

    //setup the PayPal digital goods flow
    var dg = new PAYPAL.apps.DGFlow({
      //don't trigger the flow with a button (we're going to submit manually)
      trigger: null
    }),
    //post object for payment
    post = {
      amount: '1.00',
      currencyId: 'USD'
      //.... whatever else you need to pass to $_POST ....
    };
    //process checkout
    $.post("/url/to/your/sdk/method", post, function(token) {
      //if successful...
      if ( token ) {
        //direct the dialog box for our digital goods pay flow to the correct place
        var flowUrl = 'https://www.sandbox.paypal.com/incontext?token='+token;
        dg.startFlow( flowUrl );
      }
    });
    

    您可能需要根据您的情况调整 SDK。您还必须确保在 DGdoExpressCheckout.php 中执行这些操作,它应该设置为在支付流之后运行的 returnUrl,此时您运行:

    dg.closeFlow(); 
    

    关闭对话框并覆盖。

    【讨论】:

      猜你喜欢
      • 2013-01-17
      • 1970-01-01
      • 2013-04-26
      • 2014-07-30
      • 2013-11-20
      • 2012-08-01
      • 2013-12-19
      • 2013-05-30
      • 1970-01-01
      相关资源
      最近更新 更多