2019-07-16 11:58:38 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Bluesquare\BillingBundle\Service;
|
|
|
|
|
2019-07-16 14:44:22 +02:00
|
|
|
use Symfony\Component\DependencyInjection\ContainerInterface;
|
|
|
|
|
2019-07-16 11:58:38 +02:00
|
|
|
class BillingSrv
|
|
|
|
{
|
2019-07-16 14:44:22 +02:00
|
|
|
private $container;
|
|
|
|
|
|
|
|
public function __construct(ContainerInterface $container)
|
2019-07-16 11:58:38 +02:00
|
|
|
{
|
2019-07-16 14:44:22 +02:00
|
|
|
$this->container = $container;
|
|
|
|
}
|
2019-07-16 14:58:49 +02:00
|
|
|
|
2019-07-16 18:08:09 +02:00
|
|
|
public function createPurchase($user_email, $items, $cbFormatter)
|
2019-07-16 14:44:22 +02:00
|
|
|
{
|
|
|
|
$apiKey = $this->container->getParameter('stripe_api_key_secret');
|
|
|
|
|
|
|
|
\Stripe\Stripe::setApiKey($apiKey);
|
2019-07-16 11:58:38 +02:00
|
|
|
|
2019-07-16 18:08:09 +02:00
|
|
|
$line_items = [];
|
|
|
|
|
2019-07-16 18:23:05 +02:00
|
|
|
foreach ($items as $item) $line_items[] = $cbFormatter($item);
|
2019-07-16 18:08:09 +02:00
|
|
|
|
2019-07-17 16:46:37 +02:00
|
|
|
$ngrok_url = $this->container->getParameter('dev_ngrok_prefix');
|
|
|
|
|
2019-07-16 14:44:22 +02:00
|
|
|
return (
|
|
|
|
\Stripe\Checkout\Session::create([
|
2019-07-16 18:08:09 +02:00
|
|
|
'customer_email' => $user_email,
|
|
|
|
'payment_method_types' => $this->container->getParameter('payment_method'),
|
|
|
|
'line_items' => $line_items,
|
2019-07-17 16:46:37 +02:00
|
|
|
'success_url' => $ngrok_url . $this->container->getParameter('stripe_success_url'),
|
|
|
|
'cancel_url' => $ngrok_url . $this->container->getParameter('stripe_cancel_url'),
|
2019-07-16 14:44:22 +02:00
|
|
|
])
|
|
|
|
);
|
2019-07-16 11:58:38 +02:00
|
|
|
}
|
|
|
|
}
|