PayPal Express Checkout 集成未完全完成交易
Posted
技术标签:
【中文标题】PayPal Express Checkout 集成未完全完成交易【英文标题】:PayPal Express Checkout Integration does not fully complete the transaction 【发布时间】:2020-08-06 19:03:12 【问题描述】:我正在实施 v2 Express Checkout Paypal 集成;它工作正常,但是它没有完全完成交易(企业帐户没有收到付款)。
我正在沙盒上运行测试。
生成令牌以及订单 ID。
我将给定的链接复制并粘贴到 URL 栏中,然后按 Enter 继续完成交易。 https://www.sandbox.paypal.com/checkoutnow?token=2463323E24235WQ
.
事务完成并重定向到新的 URL https://example.com/return?token=2463323E24235WQ&PayerID=UEJ2NE9233DS5W
。
一切似乎都运行良好,但是当我来查看沙盒业务帐户的通知时(付款应该去的),它没有显示任何付款。
一切似乎都已相应设置,但付款并没有转到我的帐户。
【问题讨论】:
【参考方案1】:交易完成
不,错了;买方批准了付款。没有交易。
为了创建交易,当买家返回时,例如https://example.com/return?token=2463323E24235WQ&PayerID=UEJ2NE9233DS5W
,您必须显示订单查看页面并使用适当的 API 调用捕获订单。
如果您想立即获取订单(跳过订单审核页面的显示),您可以在初始订单设置中指定此项,以便买家点击“继续”按钮返回您的网站,而不是显示“付款现在”。
【讨论】:
谢谢,但让我看看我是否理解。假设我已经显示了一个订单审核页面,用户点击了“进行付款”按钮,然后,将生成付款订单并将其信息保存在数据库中;之后用户会被重定向到这个示例 URLhttps://example.com/return?token=2463323E24235WQ&PayerID=UEJ2NE9233DS5W
(交易完成的地方),对吧?
您需要告诉 PayPal 将最终按钮设为“立即付款”而不是继续。当用户登陆该 URL 时,您需要立即执行 API 调用来捕获订单。如果失败,您需要告诉用户这一点。但实际上,有一个更好的问题 --- 你为什么要使用重定向?
不要使用重定向。根本不要使用任何重定向。重定向对于现代网站来说是一种糟糕的体验。相反,让您的网站在后台加载并显示一个上下文窗口。这是你需要的前端代码:developer.paypal.com/demo/checkout/#/pattern/server
好吧,老实说,我以前从未做过集成(裸露在外),所以我从基础开始。我正在使用文件OrdersCreateTest.php
直接创建付款订单(用于测试目的)。这个订单给了我订单 ID,结帐 URL,例如:https://www.sandbox.paypal.com/checkoutnow?token=02H52232KS42123
等。当我访问结帐 URL 时,它会显示付款方式、总额和商品描述,然后我选择一种付款方式并单击“支付”它将我重定向到https://example.com/return?token=02H52232KS42123&PayerID=R2F3233233DS5W
。
好吧,默认情况下它可能会显示“付费与继续”,但无论哪种方式,您都需要在重定向回您的站点后通过 API 捕获它。这就是所有 PayPal 结帐 API 的工作方式。更重要的是,使用 JS SDK 获取订单 ID 并显示一个窗口,因此您不必重定向。以上是关于PayPal Express Checkout 集成未完全完成交易的主要内容,如果未能解决你的问题,请参考以下文章
php 更改YITH PayPal Express Checkout for WooCommerce的Set Express Checkout Request参数
PayPal Express Checkout 通行证 transactionID
如何访问 Paypal Express Checkout 的响应?
如何为 PayPal Express Checkout 配置 IPN?