����JFIF��x�x����'
| Server IP : 78.140.185.180 / Your IP : 216.73.216.170 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/builderbox/./././www/common/Billing/Gateways/Paypal/ |
Upload File : |
<?php namespace Common\Billing\Gateways\Paypal;
use Common\Billing\GatewayException;
use Common\Billing\Gateways\Contracts\GatewayInterface;
use Common\Settings\Settings;
use Illuminate\Http\Request;
use Omnipay\Omnipay;
use Omnipay\PayPal\RestGateway;
class PaypalGateway implements GatewayInterface
{
/**
* @var RestGateway
*/
private $gateway;
/**
* @var PaypalPlans
*/
private $plans;
/**
* @var PaypalSubscriptions
*/
private $subscriptions;
/**
* @param Settings $settings
*/
public function __construct(Settings $settings)
{
$this->gateway = Omnipay::create('PayPal_Rest');
$this->gateway->initialize([
'clientId' => config('services.paypal.client_id'),
'secret' => config('services.paypal.secret'),
'testMode' => $settings->get('billing.paypal_test_mode'),
]);
$this->plans = new PaypalPlans($this->gateway);
$this->subscriptions = new PaypalSubscriptions($this->gateway, $this->plans);
}
/**
* Get paypal plans service instance.
*
* @return PaypalPlans
*/
public function plans()
{
return $this->plans;
}
/**
* Get paypal subscriptions service instance.
*
* @return PaypalSubscriptions
*/
public function subscriptions()
{
return $this->subscriptions;
}
/**
* Check if specified webhook is valid.
*
* @param Request $request
* @return bool
* @throws GatewayException
*/
public function webhookIsValid(Request $request)
{
$payload = [
'auth_algo' => $request->header('PAYPAL-AUTH-ALGO'),
'cert_url' => $request->header('PAYPAL-CERT-URL'),
'transmission_id' => $request->header('PAYPAL-TRANSMISSION-ID'),
'transmission_sig' => $request->header('PAYPAL-TRANSMISSION-SIG'),
'transmission_time' => $request->header('PAYPAL-TRANSMISSION-TIME'),
'webhook_id' => config('services.paypal.webhook_id'),
'webhook_event' => $request->all(),
];
$response = $this->gateway->createRequest(PaypalVerifyWebhookRequest::class)->sendData($payload);
if ( ! $response->isSuccessful()) {
throw new GatewayException("Could not validate paypal webhook: {$response->getMessage()}");
}
return $response->getData()['verification_status'] === 'SUCCESS';
}
}