forked from LiveCarta/PayPal-PHP-SDK
Merge pull request #836 from xiaoleih41/master
Add getToken() to Payment class to get the EC token from the Approval URL
This commit is contained in:
@@ -544,7 +544,19 @@ class Payment extends PayPalResourceModel
|
||||
{
|
||||
return $this->getLink(PayPalConstants::APPROVAL_URL);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get token from Approval Link
|
||||
*
|
||||
* @return null|string
|
||||
*/
|
||||
public function getToken()
|
||||
{
|
||||
$parameter_name = "token";
|
||||
parse_str(parse_url($this->getApprovalLink(), PHP_URL_QUERY), $query);
|
||||
return !isset($query[$parameter_name]) ? null : $query[$parameter_name];
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates and processes a payment. In the JSON request body, include a `payment` object with the intent, payer, and transactions. For PayPal payments, include redirect URLs in the `payment` object.
|
||||
*
|
||||
|
||||
@@ -29,6 +29,27 @@ class PaymentTest extends \PHPUnit_Framework_TestCase
|
||||
return new Payment(self::getJson());
|
||||
}
|
||||
|
||||
public function testGetToken_returnsNullIfApprovalLinkNull()
|
||||
{
|
||||
$payment = new Payment();
|
||||
$token = $payment->getToken();
|
||||
$this->assertNull($token);
|
||||
}
|
||||
|
||||
public function testGetToken_returnsNullIfApprovalLinkDoesNotHaveToken()
|
||||
{
|
||||
$payment = new Payment('{"links": [ { "href": "https://api.sandbox.paypal.com/v1/payments//cgi-bin/webscr?cmd=_express-checkout", "rel": "approval_url", "method": "REDIRECT" } ]}');
|
||||
$token = $payment->getToken();
|
||||
$this->assertNull($token);
|
||||
}
|
||||
|
||||
public function testGetToken_returnsNullIfApprovalLinkHasAToken()
|
||||
{
|
||||
$payment = new Payment('{"links": [ { "href": "https://api.sandbox.paypal.com/v1/payments//cgi-bin/webscr?cmd=_express-checkout&token=EC-60385559L1062554J", "rel": "approval_url", "method": "REDIRECT" } ]}');
|
||||
$token = $payment->getToken();
|
||||
$this->assertNotNull($token);
|
||||
$this->assertEquals($token, 'EC-60385559L1062554J');
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests for Serialization and Deserialization Issues
|
||||
|
||||
Reference in New Issue
Block a user