mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-11-03 20:18:33 -05:00 
			
		
		
		
	Scaffold GoCardlessPaymentDriver
This commit is contained in:
		
							parent
							
								
									77c95b5535
								
							
						
					
					
						commit
						9ad4fabb3f
					
				
							
								
								
									
										79
									
								
								app/PaymentDrivers/GoCardlessPaymentDriver.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								app/PaymentDrivers/GoCardlessPaymentDriver.php
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,79 @@
 | 
			
		||||
<?php
 | 
			
		||||
/**
 | 
			
		||||
 * Invoice Ninja (https://invoiceninja.com).
 | 
			
		||||
 *
 | 
			
		||||
 * @link https://github.com/invoiceninja/invoiceninja source repository
 | 
			
		||||
 *
 | 
			
		||||
 * @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
 | 
			
		||||
 *
 | 
			
		||||
 * @license https://opensource.org/licenses/AAL
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
namespace App\PaymentDrivers;
 | 
			
		||||
 | 
			
		||||
use App\Models\ClientGatewayToken;
 | 
			
		||||
use App\Models\GatewayType;
 | 
			
		||||
use App\Models\Payment;
 | 
			
		||||
use App\Models\PaymentHash;
 | 
			
		||||
use App\Models\SystemLog;
 | 
			
		||||
use App\Utils\Traits\MakesHash;
 | 
			
		||||
 | 
			
		||||
class GoCardlessPaymentDriver extends BaseDriver
 | 
			
		||||
{
 | 
			
		||||
    use MakesHash;
 | 
			
		||||
 | 
			
		||||
    public $refundable = true;
 | 
			
		||||
 | 
			
		||||
    public $token_billing = true;
 | 
			
		||||
 | 
			
		||||
    public $can_authorise_credit_card = true;
 | 
			
		||||
 | 
			
		||||
    public $gateway;
 | 
			
		||||
 | 
			
		||||
    public $payment_method;
 | 
			
		||||
 | 
			
		||||
    public static $methods = [
 | 
			
		||||
        GatewayType::BANK_TRANSFER => ACH::class,
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    const SYSTEM_LOG_TYPE = SystemLog::TYPE_GOCARDLESS;
 | 
			
		||||
 | 
			
		||||
    public function setPaymentMethod($payment_method_id)
 | 
			
		||||
    {
 | 
			
		||||
        $class = self::$methods[$payment_method_id];
 | 
			
		||||
 | 
			
		||||
        $this->payment_method = new $class($this);
 | 
			
		||||
 | 
			
		||||
        return $this;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function authorizeView(array $data)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->payment_method->authorizeView($data);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function authorizeResponse($request)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->payment_method->authorizeResponse($request);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function processPaymentView(array $data)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->payment_method->paymentView($data);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function processPaymentResponse($request)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->payment_method->paymentResponse($request);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function refund(Payment $payment, $amount, $return_client_response = false)
 | 
			
		||||
    {
 | 
			
		||||
        // ..
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function tokenBilling(ClientGatewayToken $cgt, PaymentHash $payment_hash)
 | 
			
		||||
    {
 | 
			
		||||
        // ..
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user