Viewing file: StripePayment.php (3.3 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Modules\PaymentGateway\WHNPurchaseGateway;
use App\Models\BillingRequest;
use App\Models\Number;
use Carbon\Carbon;
use Illuminate\Support\Facades\Log;
class StripePayment 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 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 number($number)
{
$this->number = $number;
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()
{
try {
$number = $this->number;
$request = $this->request;
$payment = $this->stripePayment($number, $request);
if (isset($payment->id)) {
$number_request = $this->numberReq;
$number_request->status = 'accepted';
$number_request->save();
$customer=auth('customer')->user();
$time = Carbon::now()->addMonths(1);
$customer->whatsapp_numbers()->create(['number_id' => $number->id, 'number' => $number->number,'expire_date' => $time, 'cost' => $number->sell_price]);
}
$this->redirect_url = null;
$this->return_view = null;
} catch (\Exception $ex) {
Log::error($ex->getMessage());
$this->error_message= $ex->getMessage();
}
}
/*Custom Function*/
function stripePayment($number, $req)
{
$credentials = json_decode(get_settings('payment_gateway'));
if (!$credentials->stripe_pub_key || !$credentials->stripe_secret_key) {
throw new \Exception(trans('Invalid payment'));
}
$stripe = new \Stripe\StripeClient($credentials->stripe_secret_key);
return $stripe->charges->create([
'amount' => $number->sell_price * 100,
'currency' => "USD",
'source' => $req->stripeToken,
'description' => 'User:' . auth('customer')->user()->email . ' changed number to ' . $number->title,
]);
}
}
|