Viewing file: StripeCheckoutPayment.php (3.13 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Modules\PaymentGateway\TopUpProvider;
use Illuminate\Support\Facades\Log;
class StripeCheckoutPayment implements PaymentInterface { public $numberReq; public $redirect_url; public $error_message; public $return_view; public $will_redirect = false;
public function __construct() {
}
public function pay() { // TODO: Implement pay() method. }
public function number_request($numberReq) { $this->numberReq = $numberReq; return $this; }
public function topUpRequest($topup_request){ $this->topup_request=$topup_request; return $this; }
public function getCredentials() { $credentials = json_decode(get_settings('payment_gateway')); if (!$credentials->stripe_pub_key || !$credentials->stripe_secret_key) { throw new \Exception('Credentials not found. Please contact with the administrator'); } return $credentials; }
public function request($request) { $this->request = $request; return $this; }
public function amount($amount) { $this->amount = $amount; return $this; }
public function will_redirect() { // TODO: Implement will_redirect() method. return $this->will_redirect; }
public function redirect_url() { // TODO: Implement redirect_url() method. return $this->redirect_url; }
public function return_view() { // TODO: Implement redirect_url() method. return $this->return_view; }
public function error_message() { // TODO: Implement error_message() method. return $this->error_message; }
public function process() { // dd('lol'); try { $credentials= $this->getCredentials();
\Stripe\Stripe::setApiKey($credentials->stripe_secret_key); $success = route('paymentgateway::topup.stripe.success',['user'=>auth('customer')->user(), 'topup_request'=>$this->topup_request->id]);
$stripe = new \Stripe\StripeClient( $credentials->stripe_secret_key ); $product= $stripe->products->create([ 'name' => 'price_'.$this->amount, ]);
$price= $stripe->prices->create([ 'unit_amount' => $this->amount *100, 'currency' => 'usd', 'product' => $product->id, ]);
$checkout_session = \Stripe\Checkout\Session::create([ 'line_items' => [[ 'price' => $price->id, 'quantity' => 1, ]], 'mode' => 'payment', 'success_url' => $success, 'cancel_url' => route('paymentgateway::payment.process.cancel'), ]); $this->redirect_url = $checkout_session->url; $this->will_redirect = true; $this->return_view = null;
} catch (\Exception $ex) { Log::error($ex->getMessage()); $this->error_message= $ex->getMessage(); } }
/*Custom Function*/
}
|