forked from LiveCarta/PayPal-PHP-SDK
76 lines
2.0 KiB
PHP
76 lines
2.0 KiB
PHP
<?php
|
|
|
|
namespace PayPal\Api;
|
|
|
|
use PayPal\Rest\ApiContext;
|
|
use PayPal\Transport\PayPalRestCall;
|
|
|
|
/**
|
|
* Class FuturePayment
|
|
*
|
|
* @package PayPal\Api
|
|
*/
|
|
class FuturePayment extends Payment
|
|
{
|
|
|
|
/**
|
|
* Extends the Payment object to create future payments
|
|
*
|
|
* @param null $apiContext
|
|
* @param string|null $clientMetadataId
|
|
* @return $this
|
|
*/
|
|
public function create($apiContext = null, $clientMetadataId = null)
|
|
{
|
|
if ($apiContext == null) {
|
|
$apiContext = new ApiContext(self::$credential);
|
|
}
|
|
$headers = array();
|
|
if ($clientMetadataId != null) {
|
|
$headers = array(
|
|
'PAYPAL-CLIENT-METADATA-ID' => $clientMetadataId
|
|
);
|
|
}
|
|
$payLoad = $this->toJSON();
|
|
$call = new PayPalRestCall($apiContext);
|
|
$json = $call->execute(
|
|
array('PayPal\Handler\RestHandler'),
|
|
"/v1/payments/payment",
|
|
"POST",
|
|
$payLoad,
|
|
$headers
|
|
);
|
|
$this->fromJson($json);
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
/**
|
|
* Get a Refresh Token from Authorization Code
|
|
*
|
|
* @param $authorizationCode
|
|
* @param ApiContext $apiContext
|
|
* @return string|null refresh token
|
|
*/
|
|
public static function getRefreshToken($authorizationCode, $apiContext = null)
|
|
{
|
|
$apiContext = $apiContext ? $apiContext : new ApiContext(self::$credential);
|
|
$credential = $apiContext->getCredential();
|
|
return $credential->getRefreshToken($apiContext->getConfig(), $authorizationCode);
|
|
}
|
|
|
|
/**
|
|
* Updates Access Token using long lived refresh token
|
|
*
|
|
* @param string|null $refreshToken
|
|
* @param ApiContext $apiContext
|
|
* @return void
|
|
*/
|
|
public function updateAccessToken($refreshToken, $apiContext)
|
|
{
|
|
$apiContext = $apiContext ? $apiContext : new ApiContext(self::$credential);
|
|
$apiContext->getCredential()->updateAccessToken($apiContext->getConfig(), $refreshToken);
|
|
}
|
|
}
|