diff --git a/classes/PayPalOrder.php b/classes/PayPalOrder.php index 6e2dbf4..babe873 100644 --- a/classes/PayPalOrder.php +++ b/classes/PayPalOrder.php @@ -157,9 +157,26 @@ class PayPalOrder extends ObjectModel public static function getTransactionDetails($payment) { $transactionId = pSQL($payment->id); + $transaction = $payment->transactions[0]; + + try { + // Search for a more usable transaction id in the payment object + $relatedResources = $transaction->related_resources; + foreach ($relatedResources as $rr) + { + if (!is_null($rr->sale)) + { + $transactionId = $rr->sale->id; + break; + } + } + } + catch (Exception $e) { + // Continue with $payment->id + } + $paymentId = pSQL($payment->id); $payerId = pSQL($payment->payer->payer_info->payer_id); - $transaction = $payment->transactions[0]; return [ 'currency' => pSQL($payment->transactions[0]->amount->currency),