多次尝试捕获时出现 Paypal 错误消息 'Buyer cannot pay.'

Paypal Error Message 'Buyer cannot pay.' when trying to capture multiple times

我使用 Paypal 的 Express Checkout。问题是,当我多次尝试获取授权时。我收到失败响应。

本次付款总额为800。

我想获取每个项目的授权。

这是第一个请求。我尝试在 'L_AMT0'

中捕获项目数量
    $captureData = array(
        'AUTHORIZATIONID'   => $payment->payment_id,
        'AMT'               => $amount,  // '41.00'
        'COMPLETETYPE'      => 'Complete',
        'CURRENCYCODE'      => 'SGD',
    );

    $response = $merchant->doCapture($captureData);

这是捕获第一个项目后的第一个响应的某些部分。 一切看起来都很好。

'ACK' => string 'Success' (length=7)
'TRANSACTIONTYPE' => string 'cart' (length=4)
'PAYMENTTYPE' => string 'instant' (length=7)
'AMT' => string '800.00' (length=6)
'L_AMT0' => string '759.00' (length=6)
'L_AMT1' => string '41.00' (length=5)

所以我做了第二个金额并得到了这个错误。

'AUTHORIZATIONID' => string '*****************' (length=17)
'TIMESTAMP' => string '2015-09-09T09:14:51Z' (length=20)
'CORRELATIONID' => string '*************' (length=13)
'ACK' => string 'Failure' (length=7)
'VERSION' => string '115' (length=3)
'BUILD' => string '17972692' (length=8)
'L_ERRORCODE0' => string '10606' (length=5)
'L_SHORTMESSAGE0' => string 'Buyer cannot pay.' (length=17)
'L_LONGMESSAGE0' => string 'Transaction rejected, please contact the buyer.' (length=47)
'L_SEVERITYCODE0' => string 'Error' (length=5)

那么你能帮我找出我的请求有什么问题吗?

好的,我现在找到了解决方案。

只需将第一次和后续捕获的 COMPLETETYPE 更改为 'NotComplete'。

然后在最后一次捕获时将其更改为'Complete'。

https://developer.paypal.com/docs/classic/api/merchant/DoCapture_API_Operation_NVP/