此问题特定于使用PayPal帐户付款。
所以,这是基本的工作流程:
在第一步中,在重定向到PayPal的网站以进行用户授权之前,会返回付款ID。在第三步中,我需要第一步的付款ID才能成功执行付款。有没有办法获得付款ID而不将其存储在会话中?当重定向回商家网站时,* payer * Id作为URL参数传回。还传递了一个令牌值,但我不确定它用于什么。我所知道的是,这不是我正在寻找的paymentId。
非常感谢任何帮助。
答案 0 :(得分:3)
目前它必须是会话或数据库或类似的行。我们建议您为交易生成唯一ID,并使用该ID映射到您在回复中收到的PaymentId。
答案 1 :(得分:0)
代码可能如下所示:
$approvalUrl = $payment->getApprovalLink();
if ( preg_match( '/token=(EC\-[A-Z0-9]+)/', $approvalUrl, $matches ) ) {
$token = $matches[1];
$_SESSION['PAYPAL_PAYMENT'][ $token ] = $payment->getId();
} else {
// Error message here
return false;
}