Paypal的Express Checkout In-Context集成

3
所以,我已经基本完成了PayPal的快速结账系统,感谢以下指南:http://www.sanwebe.com/2012/07/paypal-expresscheckout-with-php
但是现在我想集成上下文体验,但是文档再次完全无用:https://developer.paypal.com/docs/classic/express-checkout/in-context/integration/
所以,根据我应该采取的步骤,我将分解我所拥有的问题:
1. Update your redirect URL to: https://www.paypal.com/checkoutnow/

什么是重定向URL?这是返回或取消URL吗?还是API端点?我不知道应该替换什么或在哪里进行替换。

  1. 我需要在网站上添加以下代码:

    <form id="myContainer" method="post" action="/checkout"></form>

    <script> window.paypalCheckoutReady = function () { paypal.checkout.setup('<Your-Merchant-ID>', { environment: 'sandbox', container: 'myContainer' }); }; </script> <script src="//www.paypalobjects.com/api/checkout.js" async></script>

很好。但是,action="/checkout"表示什么?它本身无法工作,那我应该实际放什么在那里呢?一个URL?这是否应该是我的服务器上的文件?如果是,我需要在那个文件中做什么?它想要什么?

我想这些是我目前遇到的主要问题。我很惊讶关于如何设置这个事情,竟然有这么少的信息。


1
我的天啊 - 这绝对是一些极其糟糕的文档。 - Simon_Weaver
2个回答

3
在上下文中,In-Context 更多地是指最终针对您现有的“重定向” Express Checkout 集成所做的“前端”更改。因此,可以这样说:
他们所指的“重定向”是当前在获取 ec 令牌后重定向到的 Paypal URL。
  • 这个示例可能更好,正如你所看到的它被用在了(第51行)
    var url = paypal.checkout.urlPrefix +token;

  • 正如所示,你获取的 token (就像你现在做的那样)被添加到“新的重定向URL”中——如果你检查浏览器控制台中的paypal.checkout.urlPrefix变量,你会看到它的值是那个“新的重定向URL”(沙盒环境):
    https://www.sandbox.paypal.com/checkoutnow?token=

  • 因此,/checkout只是一个示例,向你展示如何调用你(已有的)后端EC实现来获取EC token,在这一点上,你不需要自己进行HTTP重定向,而是将其传递给前端,使其可以通过In-Context流程处理。

希望对你有帮助...


2

您可以在现有的Express Checkout代码上尝试这个方法,不需要修改任何内容,因此这是一个纯粹的“前端”更改。

  1. 在结账页面引用JavaScript。

<script>
  (function(d, s, id) {
    var js, ref = d.getElementsByTagName(s)[0];
    if (!d.getElementById(id)) {
      js = d.createElement(s);
      js.id = id;
      js.async = true;
      js.src = "//www.paypalobjects.com/js/external/paypal.v1.js";
      ref.parentNode.insertBefore(js, ref);
    }
  }(document, "script", "paypal-js"));
</script>

将您的PayPal结账按钮标签替换为以下内容,表单操作参数无需更改。

<input type="image" data-paypal-button="true" data-paypal-sandbox="true" src="https://www.paypalobjects.com/webstatic/en_US/i/buttons/checkout-logo-large.png" alt="Check out with PayPal" />

这与developer.paypal.com上的说明略有不同,作为一种替代解决方案可避免麻烦,但不建议使用此方法。


谢谢您,我花了一个多小时设置各种垃圾来启动集成,而我所需要做的就是使用这个。 - David Nguyen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接