Моя транзакция работает нормально. Мне нужно получить идентификатор транзакции после оплаты. Я использую функцию ниже, чтобы получить детали транзакции
$ response = $ provider-> getTransactionDetails ($ token);
Я использую {$ payment_status = $ this-> provider-> doExpressCheckoutPayment ($ cart, $ token, $ PayerID);} Я застрял в том, как получить идентификатор транзакции, потому что платеж успешен.
Вот моя функция. Как я могу получить идентификатор транзакции.
public function getExpressCheckoutSuccess(Request $request)
{
$recurring = ($request->get('mode') === 'recurring') ? true : false;
$token = $request->get('token');
$PayerID = $request->get('PayerID');
$cart = $this->getCheckoutData($recurring);
// Verify Express Checkout Token
$response = $this->provider->getExpressCheckoutDetails($token);
if (in_array(strtoupper($response['ACK']), ['SUCCESS', 'SUCCESSWITHWARNING'])) {
if ($recurring === true) {
$response = $this->provider->createMonthlySubscription($response['TOKEN'], 9.99, $cart['subscription_desc']);
if (!empty($response['PROFILESTATUS']) && in_array($response['PROFILESTATUS'], ['ActiveProfile', 'PendingProfile'])) {
$status = 'Processed';
} else {
$status = 'Invalid';
}
} else {
// Perform transaction on PayPal
$payment_status = $this->provider->doExpressCheckoutPayment($cart, $token, $PayerID);
$tstat = $this->provider->getTransactionDetails($token);
print_r($tstat);exit;// I dont get the transaction id here
$status = $payment_status['PAYMENTINFO_0_PAYMENTSTATUS'];
}
$invoice = $this->createInvoice($cart, $status);
if ($invoice->paid) {
session()->put(['code' => 'success', 'message' => "Order $invoice->id has been paid successfully!"]);
} else {
session()->put(['code' => 'danger', 'message' => "Error processing PayPal payment for Order $invoice->id!"]);
}
}
}