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);
}
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()); }