我有一个用于条纹付费链接的自定义返回页面。 它返回 session_id (我得到的)。但它显示错误:
Fatal error: Uncaught (Status 404) (Request 'some string') No such checkout.session: "session_id" thrown in public_html/wp-content/plugins/yith-stripe-connect-for-woocommerce-premium/vendor/stripe/stripe-php/lib/Exception/ApiErrorException.php on line 38.
该行位于网站不同区域使用的插件上,但不适用于此特定页面,也许这是冲突的。
我检查了仪表板,可以看到 session_id,这是正确的。所以我不确定哪里出了问题。
我使用以下代码:
$stripe = new \Stripe\StripeClient('API key');
$session = $stripe->checkout->sessions->retrieve($_GET['session_id']);
然后对会话数据执行一些操作。
就我而言,也可能是许多其他人的情况,这是因为我使用的是 Stripe Connect,并且我没有提供连接帐户的 AccountId。 通过不传递连接帐户的 AccountId,它会在我的平台(父)帐户中查找结帐会话,而实际上结帐会话是在连接帐户下创建的。
下面展示了如何使用 C# 传入 AccountId,或者参阅 stripe php 文档 了解更多 PHP 示例。
var service = new Stripe.Checkout.SessionService();
var requestOptions = new RequestOptions
{
StripeAccount = request.AccountId,
};
var checkoutSession = await service.GetAsync(request.CheckoutSessionId, requestOptions: requestOptions);