为啥我的 PayPal Checkout 按钮无法打开指向 PayPal Sandbox 的链接?

Posted

技术标签:

【中文标题】为啥我的 PayPal Checkout 按钮无法打开指向 PayPal Sandbox 的链接?【英文标题】:Why are my PayPal Checkout buttons not opening a link to the PayPal Sandbox?为什么我的 PayPal Checkout 按钮无法打开指向 PayPal Sandbox 的链接? 【发布时间】:2021-11-16 08:23:57 【问题描述】:

我第一次尝试使用 Web 表单在 ASP.NET Web 应用程序中实现 PayPal Checkout 解决方案(又名 PayPal 商务平台)。我为沙盒设置了一个新的 REST API,并按照 PayPal 的Set up server-side SDK 指导在我的 .NET 项目中安装了 SDK。 PayPal 的button demo 现在让我使用新创建的 Sandbox 用户名登录 Sandbox 并进行测试付款,确认成功。到目前为止,一切顺利。

我的下一步是创建一个 PayPalButton.aspx 页面,其中包含与 Paypal 按钮演示页面上使用的完全相同的代码。然后我所有更新的代码都上传到我的实时站点。那是我遇到问题的时候,因为 PayPal 按钮在我的实时站点上不起作用(PayPal 登录窗口只是短暂闪烁然后消失)。作为 Paypal Checkout 流程的新手,我很可能犯了一些非常基本的错误。

我唯一能想到的是我的问题可能与Set up server-side SDK 中涉及修改HTTP 请求标头的部分有关?我不明白那个部分要我做什么。

【问题讨论】:

如果您正在寻找 ASP.NET - C# 中 PayPal 的最新解决方案,请查看此演示:techtolia.com/PayPal 【参考方案1】:

您在哪些路线/路径上实现了创建订单和捕获订单功能?他们返回什么数据?使用此信息更新您的问题。对于创建订单路由,数据是否是有效的 JSON 对象,在 id 键中具有 PayPal 订单 ID?

您是否在“PayPalButton.aspx”html/JS 代码中设置了路径来调用上述路由?您的问题不包括有关正在发生的事情的任何具体信息,即您的按钮代码和来自浏览器的开发人员工具“网络”选项卡的fetch 调用的结果(响应正文)。

【讨论】:

我不明白你所说的“实现路由/路径”是什么意思。您指的是哪个 Paypal 文档中的哪一步? 标准 SDK 代码仅被修改为用我自己的 Sandbox ClientID 和 Secret 替换对“PAYPAL-SANDBOX-CLIENT-ID”和“PAYPAL-SANDBOX-CLIENT-SECRET”的引用。按钮代码与 Paypal 演示中使用的代码相同。 我现在在developer.paypal.com/docs/checkout/integrate 找到了相关指南。我明天去看看,看看我能走多远…… 很明显,您复制的演示代码是在服务器上调用路由/路径。如果你没有看到这个,你需要阅读你复制的代码 您需要在自己的服务器上实现相应的路由,并设置您的按钮代码来调用您在服务器上设置的具体路由,这些路由必须实现创建和捕获订单的必要操作。 【参考方案2】:

今天早上,我设法解决了我的 PayPalButton.aspx 页面的问题,只是短暂地闪现了 PayPal 登录页面。如前所述,它包含从 PayPal 的button demo 复制的脚本。然后我意识到它与Integrate Checkout 页面上提供的示例脚本不同。

我创建了一个包含此替代脚本的新 PayPalButton2.aspx 页面,并且与 PayPalButton.aspx 不同,它运行良好。在这两种情况下,我都替换了自己的 Sandbox ClientID。

【讨论】:

以上是关于为啥我的 PayPal Checkout 按钮无法打开指向 PayPal Sandbox 的链接?的主要内容,如果未能解决你的问题,请参考以下文章

为啥无法处理 PayPal 请求?

PayPal Express Checkout 按钮在单击按钮时进行验证

PayPal Express Checkout - 错误 400 错误请求

Paypal Express Checkout 窗口不断加载

如何将值从我的 Laravel 应用程序的 Sqlite 数据库传递到 .js 文件以允许 Paypal Checkout 按钮起作用?

PayPal按钮和PayPal Express Checkout之间有什么区别?