forked from LiveCarta/PayPal-PHP-SDK
Update Webhooks API
This commit is contained in:
213
lib/PayPal/Api/VerifyWebhookSignature.php
Normal file
213
lib/PayPal/Api/VerifyWebhookSignature.php
Normal file
@@ -0,0 +1,213 @@
|
||||
<?php
|
||||
|
||||
namespace PayPal\Api;
|
||||
|
||||
use PayPal\Common\PayPalResourceModel;
|
||||
use PayPal\Validation\ArgumentValidator;
|
||||
use PayPal\Api\VerifyWebhookSignatureResponse;
|
||||
use PayPal\Rest\ApiContext;
|
||||
use PayPal\Validation\UrlValidator;
|
||||
|
||||
/**
|
||||
* Class VerifyWebhookSignature
|
||||
*
|
||||
* Verify webhook signature.
|
||||
*
|
||||
* @package PayPal\Api
|
||||
*
|
||||
* @property string auth_algo
|
||||
* @property string cert_url
|
||||
* @property string transmission_id
|
||||
* @property string transmission_sig
|
||||
* @property string transmission_time
|
||||
* @property string webhook_id
|
||||
* @property \PayPal\Api\WebhookEvent webhook_event
|
||||
*/
|
||||
class VerifyWebhookSignature extends PayPalResourceModel
|
||||
{
|
||||
/**
|
||||
* The algorithm that PayPal uses to generate the signature and that you can use to verify the signature. Extract this value from the `PAYPAL-AUTH-ALGO` response header, which is received with the webhook notification.
|
||||
*
|
||||
* @param string $auth_algo
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function setAuthAlgo($auth_algo)
|
||||
{
|
||||
$this->auth_algo = $auth_algo;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* The algorithm that PayPal uses to generate the signature and that you can use to verify the signature. Extract this value from the `PAYPAL-AUTH-ALGO` response header, which is received with the webhook notification.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getAuthAlgo()
|
||||
{
|
||||
return $this->auth_algo;
|
||||
}
|
||||
|
||||
/**
|
||||
* The X.509 public key certificate. Download the certificate from this URL and use it to verify the signature. Extract this value from the `PAYPAL-CERT-URL` response header, which is received with the webhook notification.
|
||||
*
|
||||
* @param string $cert_url
|
||||
* @throws \InvalidArgumentException
|
||||
* @return $this
|
||||
*/
|
||||
public function setCertUrl($cert_url)
|
||||
{
|
||||
UrlValidator::validate($cert_url, "CertUrl");
|
||||
$this->cert_url = $cert_url;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* The X.509 public key certificate. Download the certificate from this URL and use it to verify the signature. Extract this value from the `PAYPAL-CERT-URL` response header, which is received with the webhook notification.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getCertUrl()
|
||||
{
|
||||
return $this->cert_url;
|
||||
}
|
||||
|
||||
/**
|
||||
* The ID of the HTTP transmission. Contained in the `PAYPAL-TRANSMISSION-ID` header of the notification message.
|
||||
*
|
||||
* @param string $transmission_id
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function setTransmissionId($transmission_id)
|
||||
{
|
||||
$this->transmission_id = $transmission_id;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* The ID of the HTTP transmission. Contained in the `PAYPAL-TRANSMISSION-ID` header of the notification message.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getTransmissionId()
|
||||
{
|
||||
return $this->transmission_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* The PayPal-generated asymmetric signature. Extract this value from the `PAYPAL-TRANSMISSION-SIG` response header, which is received with the webhook notification.
|
||||
*
|
||||
* @param string $transmission_sig
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function setTransmissionSig($transmission_sig)
|
||||
{
|
||||
$this->transmission_sig = $transmission_sig;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* The PayPal-generated asymmetric signature. Extract this value from the `PAYPAL-TRANSMISSION-SIG` response header, which is received with the webhook notification.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getTransmissionSig()
|
||||
{
|
||||
return $this->transmission_sig;
|
||||
}
|
||||
|
||||
/**
|
||||
* The date and time of the HTTP transmission. Contained in the `PAYPAL-TRANSMISSION-TIME` header of the notification message.
|
||||
*
|
||||
* @param string $transmission_time
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function setTransmissionTime($transmission_time)
|
||||
{
|
||||
$this->transmission_time = $transmission_time;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* The date and time of the HTTP transmission. Contained in the `PAYPAL-TRANSMISSION-TIME` header of the notification message.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getTransmissionTime()
|
||||
{
|
||||
return $this->transmission_time;
|
||||
}
|
||||
|
||||
/**
|
||||
* The ID of the webhook as configured in your Developer Portal account.
|
||||
*
|
||||
* @param string $webhook_id
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function setWebhookId($webhook_id)
|
||||
{
|
||||
$this->webhook_id = $webhook_id;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* The ID of the webhook as configured in your Developer Portal account.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getWebhookId()
|
||||
{
|
||||
return $this->webhook_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* The webhook notification, which is the content of the HTTP `POST` request body.
|
||||
*
|
||||
* @param \PayPal\Api\WebhookEvent $webhook_event
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function setWebhookEvent($webhook_event)
|
||||
{
|
||||
$this->webhook_event = $webhook_event;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* The webhook notification, which is the content of the HTTP `POST` request body.
|
||||
*
|
||||
* @return \PayPal\Api\WebhookEvent
|
||||
*/
|
||||
public function getWebhookEvent()
|
||||
{
|
||||
return $this->webhook_event;
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies a webhook signature.
|
||||
*
|
||||
* @param ApiContext $apiContext is the APIContext for this call. It can be used to pass dynamic configuration and credentials.
|
||||
* @param PayPalRestCall $restCall is the Rest Call Service that is used to make rest calls
|
||||
* @return VerifyWebhookSignatureResponse
|
||||
*/
|
||||
public function post($apiContext = null, $restCall = null)
|
||||
{
|
||||
$payLoad = $this->toJSON();
|
||||
$json = self::executeCall(
|
||||
"/v1/notifications/verify-webhook-signature",
|
||||
"POST",
|
||||
$payLoad,
|
||||
null,
|
||||
$apiContext,
|
||||
$restCall
|
||||
);
|
||||
$ret = new VerifyWebhookSignatureResponse();
|
||||
$ret->fromJson($json);
|
||||
return $ret;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user