Open Journal Systems  3.3.0
lib/vendor/omnipay/paypal/src/RestGateway.php
1 <?php
6 namespace Omnipay\PayPal;
7 
12 
153 {
154 
155  // Constants used in plan creation
156  const BILLING_PLAN_TYPE_FIXED = 'FIXED';
157  const BILLING_PLAN_TYPE_INFINITE = 'INFINITE';
162  const BILLING_PLAN_STATE_CREATED = 'CREATED';
163  const BILLING_PLAN_STATE_ACTIVE = 'ACTIVE';
164  const BILLING_PLAN_STATE_INACTIVE = 'INACTIVE';
165  const BILLING_PLAN_STATE_DELETED = 'DELETED';
166  const PAYMENT_TRIAL = 'TRIAL';
167  const PAYMENT_REGULAR = 'REGULAR';
168 
169  public function getName()
170  {
171  return 'PayPal REST';
172  }
173 
174  public function getDefaultParameters()
175  {
176  return array(
177  'clientId' => '',
178  'secret' => '',
179  'token' => '',
180  'testMode' => false,
181  );
182  }
183 
184  //
185  // Tokens -- methods to set up, store and retrieve the OAuth 2.0 access token.
186  //
187  // @link https://developer.paypal.com/docs/api/#authentication--headers
188  //
189 
199  public function getClientId()
200  {
201  return $this->getParameter('clientId');
202  }
203 
214  public function setClientId($value)
215  {
216  return $this->setParameter('clientId', $value);
217  }
218 
228  public function getSecret()
229  {
230  return $this->getParameter('secret');
231  }
232 
243  public function setSecret($value)
244  {
245  return $this->setParameter('secret', $value);
246  }
247 
254  public function getToken($createIfNeeded = true)
255  {
256  if ($createIfNeeded && !$this->hasToken()) {
257  $response = $this->createToken()->send();
258  if ($response->isSuccessful()) {
259  $data = $response->getData();
260  if (isset($data['access_token'])) {
261  $this->setToken($data['access_token']);
262  $this->setTokenExpires(time() + $data['expires_in']);
263  }
264  }
265  }
266 
267  return $this->getParameter('token');
268  }
269 
275  public function createToken()
276  {
277  return $this->createRequest('\Omnipay\PayPal\Message\RestTokenRequest', array());
278  }
279 
286  public function setToken($value)
287  {
288  return $this->setParameter('token', $value);
289  }
290 
296  public function getTokenExpires()
297  {
298  return $this->getParameter('tokenExpires');
299  }
300 
307  public function setTokenExpires($value)
308  {
309  return $this->setParameter('tokenExpires', $value);
310  }
311 
317  public function hasToken()
318  {
319  $token = $this->getParameter('token');
320 
321  $expires = $this->getTokenExpires();
322  if (!empty($expires) && !is_numeric($expires)) {
323  $expires = strtotime($expires);
324  }
325 
326  return !empty($token) && time() < $expires;
327  }
328 
342  public function createRequest($class, array $parameters = array())
343  {
344  if (!$this->hasToken() && $class != '\Omnipay\PayPal\Message\RestTokenRequest') {
345  // This will set the internal token parameter which the parent
346  // createRequest will find when it calls getParameters().
347  $this->getToken(true);
348  }
349 
350  return parent::createRequest($class, $parameters);
351  }
352 
353  //
354  // Payments -- Create payments or get details of one or more payments.
355  //
356  // @link https://developer.paypal.com/docs/api/#payments
357  //
358 
371  public function purchase(array $parameters = array())
372  {
373  return $this->createRequest('\Omnipay\PayPal\Message\RestPurchaseRequest', $parameters);
374  }
375 
386  public function fetchPurchase(array $parameters = array())
387  {
388  return $this->createRequest('\Omnipay\PayPal\Message\RestFetchPurchaseRequest', $parameters);
389  }
390 
402  public function listPurchase(array $parameters = array())
403  {
404  return $this->createRequest('\Omnipay\PayPal\Message\RestListPurchaseRequest', $parameters);
405  }
406 
414  public function completePurchase(array $parameters = array())
415  {
416  return $this->createRequest('\Omnipay\PayPal\Message\RestCompletePurchaseRequest', $parameters);
417  }
418 
419  // TODO: Update a payment resource https://developer.paypal.com/docs/api/#update-a-payment-resource
420 
421  //
422  // Authorizations -- Capture, reauthorize, void and look up authorizations.
423  //
424  // @link https://developer.paypal.com/docs/api/#authorizations
425  // @link https://developer.paypal.com/docs/integration/direct/capture-payment/
426  //
427 
439  public function authorize(array $parameters = array())
440  {
441  return $this->createRequest('\Omnipay\PayPal\Message\RestAuthorizeRequest', $parameters);
442  }
443 
453  public function void(array $parameters = array())
454  {
455  return $this->createRequest('\Omnipay\PayPal\Message\RestVoidRequest', $parameters);
456  }
457 
469  public function capture(array $parameters = array())
470  {
471  return $this->createRequest('\Omnipay\PayPal\Message\RestCaptureRequest', $parameters);
472  }
473 
474  // TODO: Authorizations with payment_method == paypal.
475 
485  public function refundCapture(array $parameters = array())
486  {
487  return $this->createRequest('\Omnipay\PayPal\Message\RestRefundCaptureRequest', $parameters);
488  }
489 
490  //
491  // Sale Transactions -- Get and refund completed payments (sale transactions).
492  // @link https://developer.paypal.com/docs/api/#sale-transactions
493  //
494 
506  public function fetchTransaction(array $parameters = array())
507  {
508  return $this->createRequest('\Omnipay\PayPal\Message\RestFetchTransactionRequest', $parameters);
509  }
510 
522  public function refund(array $parameters = array())
523  {
524  return $this->createRequest('\Omnipay\PayPal\Message\RestRefundRequest', $parameters);
525  }
526 
527  //
528  // Vault: Store customer credit cards securely.
529  //
530  // @link https://developer.paypal.com/docs/api/#vault
531  //
532 
545  public function createCard(array $parameters = array())
546  {
547  return $this->createRequest('\Omnipay\PayPal\Message\RestCreateCardRequest', $parameters);
548  }
549 
562  public function deleteCard(array $parameters = array())
563  {
564  return $this->createRequest('\Omnipay\PayPal\Message\RestDeleteCardRequest', $parameters);
565  }
566 
567  //
568  // Billing Plans and Agreements -- Set up recurring payments.
569  // @link https://developer.paypal.com/docs/api/#billing-plans-and-agreements
570  //
571 
585  public function createPlan(array $parameters = array())
586  {
587  return $this->createRequest('\Omnipay\PayPal\Message\RestCreatePlanRequest', $parameters);
588  }
589 
600  public function updatePlan(array $parameters = array())
601  {
602  return $this->createRequest('\Omnipay\PayPal\Message\RestUpdatePlanRequest', $parameters);
603  }
604 
605  // TODO: Retrieve a plan
606 
607 
618  public function listPlan(array $parameters = array())
619  {
620  return $this->createRequest('\Omnipay\PayPal\Message\RestListPlanRequest', $parameters);
621  }
622 
632  public function createSubscription(array $parameters = array())
633  {
634  return $this->createRequest('\Omnipay\PayPal\Message\RestCreateSubscriptionRequest', $parameters);
635  }
636 
646  public function completeSubscription(array $parameters = array())
647  {
648  return $this->createRequest('\Omnipay\PayPal\Message\RestCompleteSubscriptionRequest', $parameters);
649  }
650 
660  public function cancelSubscription(array $parameters = array())
661  {
662  return $this->createRequest('\Omnipay\PayPal\Message\RestCancelSubscriptionRequest', $parameters);
663  }
664 
674  public function suspendSubscription(array $parameters = array())
675  {
676  return $this->createRequest('\Omnipay\PayPal\Message\RestSuspendSubscriptionRequest', $parameters);
677  }
678 
688  public function reactivateSubscription(array $parameters = array())
689  {
690  return $this->createRequest('\Omnipay\PayPal\Message\RestReactivateSubscriptionRequest', $parameters);
691  }
692 
708  public function searchTransaction(array $parameters = array())
709  {
710  return $this->createRequest('\Omnipay\PayPal\Message\RestSearchTransactionRequest', $parameters);
711  }
712 
713  // TODO: Update an agreement
714  // TODO: Retrieve an agreement
715  // TODO: Set outstanding agreement amounts
716  // TODO: Bill outstanding agreement amounts
717 }
Omnipay\PayPal\RestGateway\getSecret
getSecret()
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:228
Omnipay\PayPal\RestGateway\completeSubscription
completeSubscription(array $parameters=array())
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:646
Omnipay\PayPal\RestGateway\BILLING_PLAN_TYPE_FIXED
const BILLING_PLAN_TYPE_FIXED
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:156
Omnipay\PayPal\RestGateway\BILLING_PLAN_STATE_ACTIVE
const BILLING_PLAN_STATE_ACTIVE
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:163
Omnipay\PayPal\RestGateway\getClientId
getClientId()
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:199
Omnipay\PayPal\Message\ProAuthorizeRequest
Definition: lib/vendor/omnipay/paypal/src/Message/ProAuthorizeRequest.php:8
Omnipay\PayPal\RestGateway\PAYMENT_REGULAR
const PAYMENT_REGULAR
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:167
Omnipay\PayPal\RestGateway\getTokenExpires
getTokenExpires()
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:296
Omnipay\PayPal\RestGateway\createRequest
createRequest($class, array $parameters=array())
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:342
Omnipay\PayPal\RestGateway\createToken
createToken()
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:275
Omnipay\PayPal\RestGateway\BILLING_PLAN_STATE_DELETED
const BILLING_PLAN_STATE_DELETED
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:165
Omnipay\PayPal\RestGateway\getDefaultParameters
getDefaultParameters()
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:174
Omnipay\PayPal\RestGateway\setSecret
setSecret($value)
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:243
Omnipay\Common\AbstractGateway
Definition: lib/vendor/omnipay/common/src/Omnipay/Common/AbstractGateway.php:45
Omnipay\PayPal
Definition: lib/vendor/omnipay/paypal/src/ExpressGateway.php:3
Omnipay\PayPal\RestGateway\suspendSubscription
suspendSubscription(array $parameters=array())
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:674
Omnipay\PayPal\RestGateway\authorize
authorize(array $parameters=array())
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:439
Omnipay\PayPal\RestGateway\listPlan
listPlan(array $parameters=array())
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:618
Omnipay\PayPal\RestGateway\createPlan
createPlan(array $parameters=array())
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:585
Omnipay\PayPal\RestGateway\refundCapture
refundCapture(array $parameters=array())
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:485
Omnipay\PayPal\RestGateway\BILLING_PLAN_FREQUENCY_DAY
const BILLING_PLAN_FREQUENCY_DAY
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:158
Omnipay\Common\AbstractGateway\getParameter
getParameter($key)
Definition: lib/vendor/omnipay/common/src/Omnipay/Common/AbstractGateway.php:138
Omnipay\PayPal\RestGateway
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:152
Omnipay\PayPal\RestGateway\updatePlan
updatePlan(array $parameters=array())
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:600
Omnipay\PayPal\RestGateway\PAYMENT_TRIAL
const PAYMENT_TRIAL
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:166
Omnipay\PayPal\RestGateway\BILLING_PLAN_FREQUENCY_YEAR
const BILLING_PLAN_FREQUENCY_YEAR
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:161
Omnipay\PayPal\RestGateway\BILLING_PLAN_FREQUENCY_WEEK
const BILLING_PLAN_FREQUENCY_WEEK
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:159
Omnipay\PayPal\RestGateway\BILLING_PLAN_TYPE_INFINITE
const BILLING_PLAN_TYPE_INFINITE
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:157
Omnipay\PayPal\RestGateway\setTokenExpires
setTokenExpires($value)
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:307
Omnipay\PayPal\RestGateway\BILLING_PLAN_STATE_INACTIVE
const BILLING_PLAN_STATE_INACTIVE
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:164
Omnipay\PayPal\RestGateway\hasToken
hasToken()
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:317
Omnipay\PayPal\RestGateway\refund
refund(array $parameters=array())
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:522
Omnipay\PayPal\RestGateway\reactivateSubscription
reactivateSubscription(array $parameters=array())
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:688
Omnipay\PayPal\RestGateway\createCard
createCard(array $parameters=array())
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:545
Omnipay\PayPal\RestGateway\capture
capture(array $parameters=array())
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:469
Omnipay\PayPal\RestGateway\listPurchase
listPurchase(array $parameters=array())
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:402
Omnipay\PayPal\RestGateway\cancelSubscription
cancelSubscription(array $parameters=array())
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:660
Omnipay\PayPal\RestGateway\setToken
setToken($value)
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:286
Omnipay\PayPal\RestGateway\purchase
purchase(array $parameters=array())
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:371
Omnipay\PayPal\RestGateway\createSubscription
createSubscription(array $parameters=array())
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:632
Omnipay\PayPal\RestGateway\BILLING_PLAN_FREQUENCY_MONTH
const BILLING_PLAN_FREQUENCY_MONTH
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:160
Omnipay\PayPal\RestGateway\searchTransaction
searchTransaction(array $parameters=array())
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:708
Omnipay\PayPal\RestGateway\void
void(array $parameters=array())
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:453
Omnipay\PayPal\Message\RefundRequest
Definition: lib/vendor/omnipay/paypal/src/Message/RefundRequest.php:8
Omnipay\PayPal\RestGateway\setClientId
setClientId($value)
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:214
Omnipay\PayPal\RestGateway\BILLING_PLAN_STATE_CREATED
const BILLING_PLAN_STATE_CREATED
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:162
Omnipay\PayPal\Message\CaptureRequest
Definition: lib/vendor/omnipay/paypal/src/Message/CaptureRequest.php:8
Omnipay\Common\AbstractGateway\setParameter
setParameter($key, $value)
Definition: lib/vendor/omnipay/common/src/Omnipay/Common/AbstractGateway.php:148
Omnipay\PayPal\RestGateway\fetchPurchase
fetchPurchase(array $parameters=array())
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:386
Omnipay\PayPal\RestGateway\getToken
getToken($createIfNeeded=true)
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:254
Omnipay\PayPal\RestGateway\getName
getName()
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:169
Omnipay\PayPal\RestGateway\deleteCard
deleteCard(array $parameters=array())
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:562
Omnipay\Common\AbstractGateway\$parameters
$parameters
Definition: lib/vendor/omnipay/common/src/Omnipay/Common/AbstractGateway.php:53
Omnipay\PayPal\RestGateway\fetchTransaction
fetchTransaction(array $parameters=array())
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:506
Omnipay\PayPal\RestGateway\completePurchase
completePurchase(array $parameters=array())
Definition: lib/vendor/omnipay/paypal/src/RestGateway.php:414