【问题标题】:Rest API: Obtaining Payment ID after redirect back to merchant siteRest API:重定向回商家网站后获取付款ID
【发布时间】:2013-08-22 17:56:41
【问题描述】:

此问题专门针对使用 PayPal 帐户付款。

所以,这是基本的工作流程:

  1. 我初始化付款并将用户重定向到 PayPal 的身份验证页面。
  2. 用户登录并授权支付,然后被重定向回商家网站。
  3. 通过获取并传递paymentId和payerId来执行支付。

在第一步中,在重定向到 PayPal 网站进行用户授权之前,会返回一个付款 ID。在第三步中,我需要第一步中的付款 ID 才能成功执行付款。有没有办法在不将其存储在会话中的情况下获取付款 ID? *payer*Id 在重定向回商家站点时作为 URL 参数传回。还有一个令牌值传递,但我不确定它的用途。我只知道我要查找的不是 paymentId。

任何帮助将不胜感激。

【问题讨论】:

标签: rest paypal


【解决方案1】:

目前它必须是 session 或 DB 或类似的行。我们建议您为交易生成一个唯一 ID,并使用该 ID 映射到您在响应中收到的 PaymentId。

【讨论】:

  • 这令人失望。我也一直在想同样的事情。我不明白的是,为什么 PayPal 除了付款人 ID 和令牌外,还不能传回付款 ID。这样我们就不需要在用户会话中存储支付 ID。 PayPal 拥有执行此操作的所有信息,因此他们应该这样做。我的另一个抱怨是,官方 PayPal 文档中没有提到这些。
【解决方案2】:

代码可能如下所示:

$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;
}

【讨论】:

    猜你喜欢
    • 2013-10-16
    • 2012-11-19
    • 2015-10-14
    • 2019-05-30
    • 2019-06-05
    • 2013-05-26
    • 1970-01-01
    • 2014-02-22
    • 2015-03-27
    相关资源
    最近更新 更多