我正在努力用 PHP 完成 Amazon Pay 交易。
首先,我遵循本指南https://developer.amazon.com/de/docs/amazon-pay-checkout/get-set-up-for-integration.html并实施了 Amazon Pay 的第 2 版。为了实现,我使用了以下 PHP Amazon Pay SDK:https ://github.com/amzn/amazon-pay-api-sdk-php
直到第 4 点(设置付款信息),我一切正常。但在这里我被困住了。4.2 表示响应包含必须将用户重定向到的 amazonPayRedirectUrl。
我的问题如下:我正在使用一种遗留软件,在线商店中有很多表格。提交这些表单时,它们总是发布到相同的 url,并且根据有效负载数据,加载不同的视图以在结帐过程中继续进行。当我现在通过生成的 amazonPayRedirectUrl(使用 PHP 的标头函数)重定向用户时,用户被重定向到商店登录页面(由于 htaccess 配置)而不是在结帐过程中逻辑上应该遵循的页面/视图,因为重定向不包括提交表单的有效负载数据。
我已经尝试将所需的结帐会话 ID(作为 amazonPayRedirectUrl 的查询参数附加)保存到会话中,以在不重定向用户的情况下完成交易,但这不起作用。调用 $client->completeCheckoutSession 时,我在响应中收到一条错误消息:InvalidCheckoutSessionStatus 您试图在处于不允许该操作的状态的 Checkout Session 上调用操作。响应中结帐会话的状态是“打开”而不是“完成”。我认为发生此错误是因为我没有重定向用户(虽然不确定)。
在结帐过程中将用户重定向到正确的逻辑以下视图/页面的最佳方法是什么?我是否必须在调用 amazonPayRedirectUrl 时以某种方式收集提交数据并执行包含此有效负载数据的 ajax 调用,或者如何防止被重定向到商店登录页面分别加载正确的以下视图/表单?
提前致谢!