Omnipay\PayPal\Message\RestAuthorizeResponse::getTransactionReference PHP Method

getTransactionReference() public method

    public function getTransactionReference()
    {
        // The transaction reference for a paypal purchase request or for a
        // paypal create subscription request ends up in the execute URL
        // in the links section of the response.
        $completeUrl = $this->getCompleteUrl();
        if (empty($completeUrl)) {
            return parent::getTransactionReference();
        }
        $urlParts = explode('/', $completeUrl);
        // The last element of the URL should be "execute"
        $execute = end($urlParts);
        if (!in_array($execute, array('execute', 'agreement-execute'))) {
            return parent::getTransactionReference();
        }
        // The penultimate element should be the transaction reference
        return prev($urlParts);
    }

Usage Example

 public function testRestPurchaseWithoutCardSuccess()
 {
     $httpResponse = $this->getMockHttpResponse('RestPurchaseWithoutCardSuccess.txt');
     $response = new RestAuthorizeResponse($this->getMockRequest(), $httpResponse->json(), $httpResponse->getStatusCode());
     $this->assertTrue($response->isSuccessful());
     $this->assertSame('PAY-3TJ47806DA028052TKTQGVYI', $response->getTransactionReference());
     $this->assertNull($response->getMessage());
     $this->assertNull($response->getRedirectData());
     $this->assertSame('GET', $response->getRedirectMethod());
     $this->assertSame('https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-5KV58254GL528393N', $response->getRedirectUrl());
 }